TwiX! Posted December 18, 2012 Posted December 18, 2012 @Memory function onResStart () executeSQLQuery ( "CREATE TABLE IF NOT EXISTS Points ( serial TEXT, points INTEGER DEFAULT 0 )" ); end addEventHandler ( "onResourceStart", getResourceRootElement ( getThisResource ( ) ), onResStart ) -------------------------------- function onJoin ( ) local serial = getPlayerSerial ( source ); local getPoints = executeSQLQuery ( "SELECT points FROM Points WHERE serial=?", serial ); if type ( getPoints ) == "table" and #getPoints > 0 and getPoints[1] and getPoints[1].points then setElementData ( source, "Points", tonumber ( getPoints[1].points ) ); else executeSQLQuery ( "INSERT INTO Points VALUES ( ?, ? )", serial, 0 ); setElementData ( source, "Points", 0 ); end end addEventHandler ( "onPlayerJoin", root, onJoin) ---------------------------------------- function onPlayerQuit ( ) local getActualPoints = tonumber ( getElementData ( source, "Points" ) ); local serial = getPlayerSerial ( source ); local sql = executeSQLQuery ( "SELECT points FROM Points WHERE serial=?", serial ); executeSQLQuery ( "UPDATE Points SET points=? WHERE serial=?", getActualPoints, serial ); end addEventHandler("onPlayerQuit", root, onPlayerQuit) @~Gangsta~ на обоих - Working on [php/HTML/Mysql/Lua/Java Scripts/Web Design/3D Modeling]
Memory Posted December 18, 2012 Posted December 18, 2012 Спасибо Ingame name: [sV]Kostya Name in scripts: Kostya
TwiX! Posted December 18, 2012 Posted December 18, 2012 Спасибо - Working on [php/HTML/Mysql/Lua/Java Scripts/Web Design/3D Modeling]
el_motoblock Posted December 19, 2012 Posted December 19, 2012 (edited) --[id], model , Slot, Name, Ammo, Price, Damage wpShopTable = { {0, 0, "Unarmed", 1, 0, "5-25"}, {1, 0, "Brass Knuckles", 1, 5, "5-25"}, {2, 1, "Golf Club", 1, 5, "10-25"}, {3, 1, "Nightstick", 1, 5, "10-25"}, {4, 1, "Knife", 1, 20, "10-25"}, {5, 1, "Baseball Bat", 1, 5, "10-25"}, {6, 1, "Shovel", 1, 5, "10-25"}, {7, 1, "Pool Cue", 1, 5, "10-25"}, {8, 1, "Katana", 1, 50, "10-25"}, {9, 1, "Chainsaw", 1, 250, "25-100"}, {22, 2, "Pistol", 17, 170, 25}, {23, 2, "Silenced Pistol", 17, 180, 40}, {24, 2, "Desert Eagle", 7, 100, 70}, {25, 3, "Shotgun", 1, 20, 10}, {26, 3, "Sawn-Off Shotgun", 2, 50, 10}, {27, 3, "SPAZ-12", 7, 70, 15}, {28, 4, "Uzi", 50, 500, 20}, {29, 4, "MP5", 30, 300, 25}, {32, 4, "TEC-9", 50, 500, 20}, {30, 5, "AK-47", 30, 600, 30}, {31, 5, "M4", 50, 1000, 30}, {33, 6, "Country Rifle", 1, 25, 75}, {34, 6, "Sniper Rifle", 1, 30, 125}, {35, 7, "Rocket Launcher", 1, 100, 75}, {36, 7, "Heat-Seeking RPG", 1, 120, 75}, {37, 7, "Flamethrower", 50, 500, 25}, {38, 7, "Minigun", 500, 5000, 140}, {16, 8, "Grenade", 1, 70, 75}, {17, 8, "Tear Gas", 1, 50, 75}, {18, 8, "Molotov Cocktails", 1, 60, 75}, {39, 8, "Satchel Charges", 1, 100, 75}, {41, 9, "Spraycan", 500, 200, 1}, {42, 9, "Fire Extinguisher", 500, 200, 1}, {43, 9, "Camera", 36, 100, 0}, {10, 10, "Long Dil**", 1, 5, "10-25"}, {11, 10, "Short Dil**", 1, 5, "10-25"}, {12, 10, "Vibra***", 1, 5, "10-25"}, {14, 10, "Flowers", 1, 5, "10-25"}, {15, 10, "Cane", 1, 5, "10-25"}, {44, 11, "NV Googles", 1, 50, 0}, {45, 11, "IR Goorles", 1, 50, 0}, {46, 11, "Parachute", 1, 100, 0}, {40, 12, "Satchel Detonator", 1, 0, 0} } wpShopWin1 = guiCreateWindow(492, 207, 500, 394, "|Weapon_Shop|", false) guiWindowSetSizable(wpShopWin1, false) wpShopGridlist1 = guiCreateGridList(10, 25, 481, 313, false, wpShopWin1) guiGridListAddColumn(wpShopGridlist1, "ID", 0.1) guiGridListAddColumn(wpShopGridlist1, "Slot", 0.05) guiGridListAddColumn(wpShopGridlist1, "Name", 0.45) guiGridListAddColumn(wpShopGridlist1, "Damage", 0.1) guiGridListAddColumn(wpShopGridlist1, "Ammo", 0.14) guiGridListAddColumn(wpShopGridlist1, "Price", 0.14) wpShopBtnBuy = guiCreateButton(114, 348, 328, 27, "Buy", false, wpShopWin1) guiSetProperty(wpShopBtnBuy, "NormalTextColour", "FFAAAAAA") wpShopBtnClose = guiCreateButton(10, 348, 61, 27, "Close", false, wpShopWin1) guiSetProperty(wpShopBtnClose, "NormalTextColour", "FFAAAAAA") guiSetVisible(wpShopWin1, false) function GetWeaponIDFromModelID( iModelID ) for i, v in pairs( WeaponsIds ) do if v == iModelID then return i end end return false end function addRowWPSGUI() -- If the column was successfully created for i, v in ipairs( wpShopTable ) do --Loop through all the players, adding them to the table local iRow = guiGridListAddRow( wpShopGridlist1 ) guiGridListSetItemText(wpShopGridlist1, iRow, 1, tostring ( v[1] ), false, false) guiGridListSetItemText(wpShopGridlist1, iRow, 2, tostring ( v[2] ), false, false) guiGridListSetItemText(wpShopGridlist1, iRow, 3, tostring ( v[3] ), false, false) guiGridListSetItemText(wpShopGridlist1, iRow, 4, tostring ( v[6] ), false, false) guiGridListSetItemText(wpShopGridlist1, iRow, 5, tostring ( v[4] ), false, false) guiGridListSetItemText(wpShopGridlist1, iRow, 6, "$"..tostring (v[5]), false, false) end end addEventHandler ( "onClientResourceStart", getRootElement(), addRowWPSGUI ) function showWPSGUI () guiSetVisible(wpShopWin1, true) showCursor(true) end function closeWPSGUI ( button ) if button == "left" then guiSetVisible(wpShopWin1, false) showCursor(false) end end addEventHandler ( "onClientGUIClick", wpShopBtnClose, closeWPSGUI, false ) addCommandHandler ( "buyweap", showWPSGUI ) Как сделать чтобы при нажатии на ряд выдавалось сообщение: Id v[1], ammo v[5], $ v[6] ??? НЕ ИМЕЮ ОПЫТА С НАЖАТИЕМ НА ТАБЛИЦЫ Edited December 19, 2012 by Guest
Memory Posted December 19, 2012 Posted December 19, 2012 Подскажите пожалуйста, как отсортировать игроков, которые имеют больше всего поинтов из кода ниже. function onResStart () executeSQLQuery ( "CREATE TABLE IF NOT EXISTS Points ( serial TEXT, points INTEGER DEFAULT 0 )" ); end addEventHandler ( "onResourceStart", getResourceRootElement ( getThisResource ( ) ), onResStart ) -------------------------------- function onJoin ( ) local serial = getPlayerSerial ( source ); local getPoints = executeSQLQuery ( "SELECT points FROM Points WHERE serial=?", serial ); if type ( getPoints ) == "table" and #getPoints > 0 and getPoints[1] and getPoints[1].points then setElementData ( source, "Points", tonumber ( getPoints[1].points ) ); else executeSQLQuery ( "INSERT INTO Points VALUES ( ?, ? )", serial, 0 ); setElementData ( source, "Points", 0 ); end end addEventHandler ( "onPlayerJoin", root, onJoin) ---------------------------------------- function onPlayerQuit ( ) local getActualPoints = tonumber ( getElementData ( source, "Points" ) ); local serial = getPlayerSerial ( source ); local sql = executeSQLQuery ( "SELECT points FROM Points WHERE serial=?", serial ); executeSQLQuery ( "UPDATE Points SET points=? WHERE serial=?", getActualPoints, serial ); end addEventHandler("onPlayerQuit", root, onPlayerQuit) Попробовал сделать, но выдаёт только онлайн игроков. function top(player) for i,v in ipairs(getElementsByType("player")) do -- get all players if(getElementData ( v, "Points" )>1)then topPoints[ getPlayerName(v) ] = " points: " .. getElementData ( v, "Points" ) -- insert him into the table with his money end end for i,v in pairs(topPoints) do table.sort(topPoints) -- sorting outputChatBox("Top players " .. i .. " Points: " .. v,player) end end addCommandHandler("top",top) Ingame name: [sV]Kostya Name in scripts: Kostya
Kenix Posted December 19, 2012 Posted December 19, 2012 Вот запрос тебе SELECT points, nick FROM `Points` ORDER BY `points` DESC LIMIT 10 И кстати у тебя нету поля игрока в твоей SQL таблице, есть только поле serial ... --[[ Добавь поле nick в твою SQL таблицу ]] addCommandHandler( 'top', function( pPlayer ) outputChatBox( 'TOP 10 PLAYERS', pPlayer ) local aQuery = executeSQLQuery( 'SELECT points, nick FROM `Points` ORDER BY `points` DESC LIMIT 10' ) if type( aQuery ) == 'table' and #aQuery > 0 then for _, v in ipairs( aQuery ) do outputChatBox( 'Player:' .. v[ 'nick' ] .. ', points:' .. v[ 'points' ], pPlayer ) end end end ) http://vk.com/the_kenix Вопросы задавайте на форуме, не пишите мне в личку. Please don't pm me.
Memory Posted December 19, 2012 Posted December 19, 2012 Спасибо за код. В SQL я недавно и не знаю всех его тонкостей. Вообщем с ником проблемы. Попробовал так executeSQLQuery ( ... "CREATE TABLE IF NOT EXISTS Points ( serial TEXT, nick TEXT, points INTEGER DEFAULT 0 )" ); ... function onPlayerQuit ( ) local getActualPoints = tonumber ( getElementData ( source, "Points" ) ); local getNickPlayer = getPlayerName(source); local serial = getPlayerSerial ( source ); local sql = executeSQLQuery ( "SELECT points FROM Points WHERE serial=?", serial ); executeSQLQuery ( "UPDATE Points SET points=? WHERE serial=?", getActualPoints, serial ); executeSQLQuery ( "INSERT INTO Points (nick) VALUES ("..getNickPlayer..") ); - но тут выдаёт ошибку, что незакончено (unfinished) end addEventHandler("onPlayerQuit", root, onPlayerQuit) При этом, тоже выдавал какую-то ошибку, я думаю потому что там нечего обновлять, так как при входе туда ничего не отсылалось. executeSQLQuery ( "UPDATE Points SET nick=? WHERE serial=?", getNickPlayer, serial ); Ingame name: [sV]Kostya Name in scripts: Kostya
Jonathan.P Posted December 29, 2012 Posted December 29, 2012 Возможно тупой вопрос, но просто ответьте пожалуйста: При спавне игрока его угол поворота не соответствует углу поворота камеры. Как установить камеру в нормальное положение "за спиной", имея значение угла поворота игрока?
Kenix Posted December 29, 2012 Posted December 29, 2012 setCameraTarget Можешь ничего не расчитывать, эта функция ставит камеру со спины по дефолту если в аргументах цель = игрок. http://vk.com/the_kenix Вопросы задавайте на форуме, не пишите мне в личку. Please don't pm me.
Sergo86 Posted January 1, 2013 Posted January 1, 2013 Помогите сделать скрипт - работа механика, если не сложно)
Memory Posted January 3, 2013 Posted January 3, 2013 Здравствуйте, заказал сервер на хостинге, зашёл на него, а там не работает команда /register, вообще никак не риагирует, хотя когда пишешь /login, выдаёт, что такого имени нет, ну это понятно, а вот как исправить регистрацию? Где находятся эти команды, чтобы переустановить файл? Ingame name: [sV]Kostya Name in scripts: Kostya
Moderators Sarrum Posted January 3, 2013 Moderators Posted January 3, 2013 Здравствуйте, заказал сервер на хостинге, зашёл на него, а там не работает команда /register, вообще никак не риагирует, хотя когда пишешь /login, выдаёт, что такого имени нет, ну это понятно, а вот как исправить регистрацию? Где находятся эти команды, чтобы переустановить файл? В админ панели регистрация, она запущена?
Memory Posted January 3, 2013 Posted January 3, 2013 Как я могу открыть админ панель, если нельзя зарегистрироваться, некому давать админку. Вот я и спрашиваю как называется файл, где сохраняются данные после регистрации, чтобы в ручную добавить хотя бы себя. Ingame name: [sV]Kostya Name in scripts: Kostya
Flaker Posted January 3, 2013 Posted January 3, 2013 Как я могу открыть админ панель, если нельзя зарегистрироваться, некому давать админку. Вот я и спрашиваю как называется файл, где сохраняются данные после регистрации, чтобы в ручную добавить хотя бы себя. internal.db в папке сервера Но если у тебя не работает register, это оочень странно... Проверь автозапуск ресурсов в конфиге сервера, если там нет admin, добавь... хотя если login отвечает... То поидее админ панель включена... Кстати, если ты менял ACL, то возможно что-то напортил там... Поставь стандартный на всякий случай... А лучше просто сервер переустанови...
_Vincent_ Posted January 3, 2013 Posted January 3, 2013 Просто старейший "баг") Как уже правильно сказали: добавь ресурс admin в автозапуск (mtaserver.conf). Если он уже есть, но все равно получается фигня, проверь, есть ли он сам и нет ли у него дубликатов (папок с названием admin лежащих в разных местах). После этого заработают обе команды.
Memory Posted January 3, 2013 Posted January 3, 2013 Спасибо , точно, в конфиге не было добавлено admin. А вообще у них очень странный конфиг, где половины параметров нет, и после установки своего, он его стирает и ставит свой. Ingame name: [sV]Kostya Name in scripts: Kostya
Flaker Posted January 3, 2013 Posted January 3, 2013 Спасибо , точно, в конфиге не было добавлено admin. А вообще у них очень странный конфиг, где половины параметров нет, и после установки своего, он его стирает и ставит свой. Говнохост(
Memory Posted January 3, 2013 Posted January 3, 2013 Ну вообще, он так то нормальный, я про пинг и т.п. Но в плане установки и прочего я соглашусь. Одна ещё их не даработка всё надо перекодировать в utf-8, как на старых версиях мта Вот ещё вопрос, я в play моде недавно, до этого всё в race и не знаю как сделать, чтобы авто, которые стоят просто так или уничтоженные, исчезали через некоторое время. Подскажите, пожалуйста, как так сделать Ingame name: [sV]Kostya Name in scripts: Kostya
Kenix Posted January 3, 2013 Posted January 3, 2013 destroyElement setTimer http://vk.com/the_kenix Вопросы задавайте на форуме, не пишите мне в личку. Please don't pm me.
Memory Posted January 4, 2013 Posted January 4, 2013 Спасибо Ingame name: [sV]Kostya Name in scripts: Kostya
gold4iter Posted January 7, 2013 Posted January 7, 2013 Расскажите пожалуйста о построении гуи окошек.
Kernell Posted January 7, 2013 Posted January 7, 2013 Вопросы конкретнее задавать нужно Не оказываю поддержку посредством личных сообщений, ICQ, ВК и тому подобное. Все вопросы задавайте на форуме.
gold4iter Posted January 7, 2013 Posted January 7, 2013 Как сделать окно в котором будет отображатся топ убийц. Как сделать отсчёт этих убийств.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now