Jump to content

Общий мини "HELP ME" топик по скриптингу


Recommended Posts

Posted

@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~ на обоих

357ac0078264.jpg

- Working on [php/HTML/Mysql/Lua/Java Scripts/Web Design/3D Modeling]

Posted (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 by Guest
Posted

Подскажите пожалуйста, как отсортировать игроков, которые имеют больше всего поинтов из кода ниже.

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

Posted

Вот запрос тебе

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.

Posted

Спасибо за код. В 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

Posted

Возможно тупой вопрос, но просто ответьте пожалуйста:

При спавне игрока его угол поворота не соответствует углу поворота камеры.

Как установить камеру в нормальное положение "за спиной", имея значение угла поворота игрока?

Posted
setCameraTarget 

Можешь ничего не расчитывать, эта функция ставит камеру со спины по дефолту если в аргументах цель = игрок.

http://vk.com/the_kenix

Вопросы задавайте на форуме, не пишите мне в личку.

Please don't pm me.

Posted

Здравствуйте, заказал сервер на хостинге, зашёл на него, а там не работает команда /register, вообще никак не риагирует, хотя когда пишешь /login, выдаёт, что такого имени нет, ну это понятно, а вот как исправить регистрацию? Где находятся эти команды, чтобы переустановить файл?

Ingame name: [sV]Kostya

Name in scripts: Kostya

  • Moderators
Posted
Здравствуйте, заказал сервер на хостинге, зашёл на него, а там не работает команда /register, вообще никак не риагирует, хотя когда пишешь /login, выдаёт, что такого имени нет, ну это понятно, а вот как исправить регистрацию? Где находятся эти команды, чтобы переустановить файл?

В админ панели регистрация, она запущена?

Posted

Как я могу открыть админ панель, если нельзя зарегистрироваться, некому давать админку. Вот я и спрашиваю как называется файл, где сохраняются данные после регистрации, чтобы в ручную добавить хотя бы себя.

Ingame name: [sV]Kostya

Name in scripts: Kostya

Posted
Как я могу открыть админ панель, если нельзя зарегистрироваться, некому давать админку. Вот я и спрашиваю как называется файл, где сохраняются данные после регистрации, чтобы в ручную добавить хотя бы себя.

internal.db в папке сервера

Но если у тебя не работает register, это оочень странно... Проверь автозапуск ресурсов в конфиге сервера, если там нет admin, добавь...

хотя если login отвечает... То поидее админ панель включена...

Кстати, если ты менял ACL, то возможно что-то напортил там... Поставь стандартный на всякий случай...

А лучше просто сервер переустанови...

Posted

Просто старейший "баг")

Как уже правильно сказали: добавь ресурс admin в автозапуск (mtaserver.conf). Если он уже есть, но все равно получается фигня, проверь, есть ли он сам и нет ли у него дубликатов (папок с названием admin лежащих в разных местах).

После этого заработают обе команды.

Posted

Спасибо :) , точно, в конфиге не было добавлено admin. А вообще у них очень странный конфиг, где половины параметров нет, и после установки своего, он его стирает и ставит свой.

Ingame name: [sV]Kostya

Name in scripts: Kostya

Posted
Спасибо :) , точно, в конфиге не было добавлено admin. А вообще у них очень странный конфиг, где половины параметров нет, и после установки своего, он его стирает и ставит свой.

Говнохост(

Posted

Ну вообще, он так то нормальный, я про пинг и т.п. Но в плане установки и прочего я соглашусь. Одна ещё их не даработка всё надо перекодировать в utf-8, как на старых версиях мта :)

Вот ещё вопрос, я в play моде недавно, до этого всё в race :) и не знаю как сделать, чтобы авто, которые стоят просто так или уничтоженные, исчезали через некоторое время. Подскажите, пожалуйста, как так сделать

Ingame name: [sV]Kostya

Name in scripts: Kostya

Posted

Вопросы конкретнее задавать нужно

Не оказываю поддержку посредством личных сообщений, ICQ, ВК и тому подобное. Все вопросы задавайте на форуме.

Posted

Как сделать окно в котором будет отображатся топ убийц. Как сделать отсчёт этих убийств.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...