Заказываем Lua скрипты | Reborn

Статус
В этой теме нельзя размещать новые ответы.

ШPEK

Известный
1,474
525
Активация по нажатию определённой кнопки. Когда вам показывают паспорт, вы нажимаете допустим на "Alt+E" и скрипт вводит автоматически команду /omid id(того кто показал паспорт), далее при нажатии повторной кнопки допустим Alt+R скрипт начинает повышать человека на один ранг вперёд с отыгровкой.
Пример отыгровки:
/me передал лычки ст.сержанта бойцу "Имя Фамилия"
/giverank "ID" "звание"
/time+F8 автоматически

Сервер Samp Rp, всего 14 званий, так же ещё нужны разные отыгровки. С рядового (1) по старшину (6) нужна отыгровка "/me передал лычки старшины бойцу "Имя Фамилия", а с прапорщика по полковника "/me передал погоны ст.лейтенанта бойцу "Имя Фамилия"

Чат лог паспорта:

[14:44:17] -----------===[ PASSPORT ]===----------
[14:44:17] Имя: Ivan_Ivanov
[14:44:17] Возраст: 25 Телефон: 228898
[14:44:17] Фракция: Army LV Должность: Полковник
[14:44:17] Работа: Нет Разрешение на оружие: Есть
[14:44:17] Преступлений: 235
[14:44:17] Законопослушность: 100
[14:44:17] =============================
[14:44:17] Ivan_Ivanov показал(а) свой паспорт
[TBODY] [/TBODY]
Lua:
local ev = require "lib.samp.events"
local key = require "vkeys"
local ranks = {
["Рядовой"] = 1,
["Ефрейтор"] = 2,
["Младший сержант"] = 3,
["Сержант"] = 4,
["Старший сержант"] = 5,
["Старшина"] = 6,
["Прапорщик"] = 7,
["Младший лейтенант"] = 8,
["Лейтенант"] = 9,
["Старший лейтенант"] = 10,
["Капитан"] = 11,
["Майор"] = 12,
["Подполковник"] = 13
}
local rangs = {
[2] = "ефрейтор",
[3] = "младший сержант",
[4] = "сержант",
[5] = "старший сержант",
[6] = "старшина",
[7] = "прапорщик",
[8] = "младший лейтенант",
[9] = "лейтенант",
[10] = "старший лейтенант",
[11] = "капитан",
[12] = "майор",
[13] = "подполковник"
}

function sampGetPlayerIdByNickname(nick)
    if type(nick) == "string" then
        for id = 0, 1000 do
            local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
            if sampIsPlayerConnected(id) or id == myid then
                local name = sampGetPlayerNickname(id)
                if nick == name then
                    return id
                end
            end
        end
    end
end

function main()
while not isSampAvailable() do wait(100) end
    while true do
        wait(0)
        if nick and rank then
            repeat
            if isKeyJustPressed(key.VK_E) and isKeyJustPressed(key.VK_LMENU) then
               on = true
                id = sampGetPlayerNickname(nick)
                sampSendChat("/omid "..id)
            end
            until on
                repeat
                if isKeyJustPressed(key.VK_R) and isKeyJustPressed(key.VK_LMENU) then
                    local rang = ranks[rank]
                    sampSendChat("/me передал лычки \""..rangs[rang].."\" "..(nick:gsub("_", " ")))
                    wait(2000)
                    sampSendChat("/giverank "..id.." "..ranks[rank + 1])
                    wait(1000)
                    sampSendChat("/time")
                    wait(500)
                    setVirtualKeyDown(key.VK_F8, true)
                    setVirtualKeyDown(key.VK_F8, false)
                end
                until isKeyJustPressed(key.VK_0)
                nick = nil; rank = nil; id = nil
        end
    end
end

function ev.onServerMessage(_, msg)
    if msg:find("Имя: %a+_%a+") then
        nick = msg:match("Имя:%s(%a+_%a+)")
    elseif msg:find("Фракция: Army %a+ Должность: %a+") then
        rank = msg:match("Фракция:%sArmy%s%a+%sДолжность:%s(%a+)")
    end
end

Нужен скрипт который будет писать текст при 10 хп только чтобы например у меня 15 хп и у меня выстрелили с дигла и у меня сразу же 0 хп стало но чтобы оно успело прописать команду думаю поняли если нет то пишите.
А не проще проверить мёртв игрок или нет?

Переведите на Lua:
CLEO:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP

:Label000002
0001: wait 0 ms
0AFA:  is_samp_available
004D: jump_if_false @Label000002
0AF8: samp add_message_to_chat "[{ff0000}Gym {4169e1}BOT {ff0000}Pears Project{FFFFFF}] CLEO by {4169e1}Kraft1k {FFFFFF}for {818384}Blast.{0094c8}hk" color -1
0AF8: samp add_message_to_chat "[{ff0000}Gym {4169e1}BOT {ff0000}Pears Project{FFFFFF}] Активация - {0094c8}Автоматическая" color -1

:Label0000EB
0001: wait 0 ms
0B61:  samp is_local_player_spawned
004D: jump_if_false @Label0000EB

:Label0000F8
0001: wait 0 ms
00D6: if
0611:   actor $PLAYER_ACTOR performing_animation "GYM_BP_GETON"
004D: jump_if_false @Label000126
0001: wait 1000 ms
0B56: set_game_key 6 state 255

:Label000126
00D6: if
0611:   actor $PLAYER_ACTOR performing_animation "GYM_BP_UP_A"
004D: jump_if_false @Label00014F
0001: wait 1000 ms
0B56: set_game_key 6 state 255

:Label00014F
00D6: if
0611:   actor $PLAYER_ACTOR performing_animation "GYM_BP_DOWN"
004D: jump_if_false @Label000178
0001: wait 1000 ms
0B56: set_game_key 6 state 255

:Label000178
00D6: if
0611:   actor $PLAYER_ACTOR performing_animation "GYM_FREE_A"
004D: jump_if_false @Label0001A0
0001: wait 500 ms
0B56: set_game_key 6 state 255

:Label0001A0
00D6: if
0611:   actor $PLAYER_ACTOR performing_animation "GYM_FREE_LOOP"
004D: jump_if_false @Label0001CB
0001: wait 500 ms
0B56: set_game_key 6 state 255

:Label0001CB
00D6: if
0611:   actor $PLAYER_ACTOR performing_animation "GYM_FREE_DOWN"
004D: jump_if_false @Label0001F6
0001: wait 500 ms
0B56: set_game_key 6 state 255

:Label0001F6
00D6: if
0611:   actor $PLAYER_ACTOR performing_animation "GYM_FREE_B"
004D: jump_if_false @Label00021E
0001: wait 500 ms
0B56: set_game_key 6 state 255

:Label00021E
00D6: if
0611:   actor $PLAYER_ACTOR performing_animation "GYM_FREE_UP_SMOOTH"
004D: jump_if_false @Label00024E
0001: wait 500 ms
0B56: set_game_key 6 state 255

:Label00024E
0002: jump @Label0000F8
Lua:
require "moonloader"

function main()
    while not isSampAvailable() do wait(0) end
    sampAddChatMessage("[{ff0000}Gym {4169e1}BOT {ff0000}Pears Project{FFFFFF}] CLEO by {4169e1}Kraft1k {FFFFFF}for {818384}Blast.{0094c8}hk", -1)
    sampAddChatMessage("[{ff0000}Gym {4169e1}BOT {ff0000}Pears Project{FFFFFF}] Активация - {0094c8}Автоматическая", -1)
    while not sampIsLocalPlayerSpawned() do wait(0) end
    while true do
        wait(0)
        if isCharPlayingAnim(PLAYER_PED, "GYM_BP_GETON") then
            setGameKeyState(6, 255)
            wait(1000)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_BP_UP_A") then
            setGameKeyState(6, 255)
            wait(1000)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_BP_DOWN") then
            setGameKeyState(6, 255)
            wait(500)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_FREE_A") then
            setGameKeyState(6, 255)
            wait(500)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_FREE_LOOP") then
            setGameKeyState(6, 255)
            wait(500)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_FREE_DOWN") then
            setGameKeyState(6, 255)
            wait(500)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_FREE_B") then
            setGameKeyState(6, 255)
            wait(500)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_FREE_UP_SMOOTH") then
            setGameKeyState(6, 255)
            wait(500)
        end
    end
end
 
Последнее редактирование:
  • Нравится
Реакции: Shepi и Lennox##

Lennox##

Новичок
3
0
Код:
local ev = require "lib.samp.events"
locak key = require "vkeys"
local ranks = {
["Рядовой"] = 1,
["Ефрейтор"] = 2,
["Младший сержант"] = 3,
["Сержант"] = 4,
["Старший сержант"] = 5,
["Старшина"] = 6,
["Прапорщик"] = 7,
["Младший лейтенант"] = 8,
["Лейтенант"] = 9,
["Старший лейтенант"] = 10,
["Капитан"] = 11,
["Майор"] = 12,
["Подполковник"] = 13
}

function sampGetPlayerIdByNickname(nick)
    if type(nick) == "string" then
        for id = 0, 1000 do
            local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
            if sampIsPlayerConnected(id) or id == myid then
                local name = sampGetPlayerNickname(id)
                if nick == name then
                    return id
                end
            end
        end
    end
end

function main()
while not isSampAvailable() do wait(100) end
    while true do
        wait(0)
        if nick and rank then
            repeat
            if isKeyJustPressed(key.VK_E) and isKeyJustPressed(key.VK_LMENU) then
                id = sampGetPlayerNickname(nick)
                sampSendChat("/omid "..id)
            end
            until isKeyJustPressed(key.VK_E) and isKeyJustPressed(key.VK_LMENU)
                repeat
                if isKeyJustPressed(key.VK_R) and isKeyJustPressed(key.VK_LMENU) then
                    sampSendChat("/giverank "..id.." "..ranks[rank + 1])
                end
                until isKeyJustPressed(key.VK_0)
                nick = nil; rank = nil; id = nil
        end
    end
end

function ev.onServerMessage(_, msg)
    if msg:find("Имя: %a+_%a+") then
        nick = msg:match("Имя:%s(%a+_%a+)")
    elseif msg:find("Фракция: Army %a+ Должность: %a+") then
        rank = msg:match("Фракция:%sArmy%s%a+%sДолжность:%s(%a+)")
    end
end

Не работает, вроде бы всё есть, другие скрипты работают.
 

Musaigen

abobusnik
Проверенный
1,607
1,365
Код:
local ev = require "lib.samp.events"
locak key = require "vkeys"
local ranks = {
["Рядовой"] = 1,
["Ефрейтор"] = 2,
["Младший сержант"] = 3,
["Сержант"] = 4,
["Старший сержант"] = 5,
["Старшина"] = 6,
["Прапорщик"] = 7,
["Младший лейтенант"] = 8,
["Лейтенант"] = 9,
["Старший лейтенант"] = 10,
["Капитан"] = 11,
["Майор"] = 12,
["Подполковник"] = 13
}

function sampGetPlayerIdByNickname(nick)
    if type(nick) == "string" then
        for id = 0, 1000 do
            local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
            if sampIsPlayerConnected(id) or id == myid then
                local name = sampGetPlayerNickname(id)
                if nick == name then
                    return id
                end
            end
        end
    end
end

function main()
while not isSampAvailable() do wait(100) end
    while true do
        wait(0)
        if nick and rank then
            repeat
            if isKeyJustPressed(key.VK_E) and isKeyJustPressed(key.VK_LMENU) then
                id = sampGetPlayerNickname(nick)
                sampSendChat("/omid "..id)
            end
            until isKeyJustPressed(key.VK_E) and isKeyJustPressed(key.VK_LMENU)
                repeat
                if isKeyJustPressed(key.VK_R) and isKeyJustPressed(key.VK_LMENU) then
                    sampSendChat("/giverank "..id.." "..ranks[rank + 1])
                end
                until isKeyJustPressed(key.VK_0)
                nick = nil; rank = nil; id = nil
        end
    end
end

function ev.onServerMessage(_, msg)
    if msg:find("Имя: %a+_%a+") then
        nick = msg:match("Имя:%s(%a+_%a+)")
    elseif msg:find("Фракция: Army %a+ Должность: %a+") then
        rank = msg:match("Фракция:%sArmy%s%a+%sДолжность:%s(%a+)")
    end
end

Не работает, вроде бы всё есть, другие скрипты работают.
2 строчка locak на local
 

Ma[x].

Известный
185
13
Lua:
local ev = require "lib.samp.events"
local key = require "vkeys"
local ranks = {
["Рядовой"] = 1,
["Ефрейтор"] = 2,
["Младший сержант"] = 3,
["Сержант"] = 4,
["Старший сержант"] = 5,
["Старшина"] = 6,
["Прапорщик"] = 7,
["Младший лейтенант"] = 8,
["Лейтенант"] = 9,
["Старший лейтенант"] = 10,
["Капитан"] = 11,
["Майор"] = 12,
["Подполковник"] = 13
}
local rangs = {
[2] = "ефрейтор",
[3] = "младший сержант",
[4] = "сержант",
[5] = "старший сержант",
[6] = "старшина",
[7] = "прапорщик",
[8] = "младший лейтенант",
[9] = "лейтенант",
[10] = "старший лейтенант",
[11] = "капитан",
[12] = "майор",
[13] = "подполковник"
}

function sampGetPlayerIdByNickname(nick)
    if type(nick) == "string" then
        for id = 0, 1000 do
            local _, myid = sampGetPlayerIdByCharHandle(PLAYER_PED)
            if sampIsPlayerConnected(id) or id == myid then
                local name = sampGetPlayerNickname(id)
                if nick == name then
                    return id
                end
            end
        end
    end
end

function main()
while not isSampAvailable() do wait(100) end
    while true do
        wait(0)
        if nick and rank then
            repeat
            if isKeyJustPressed(key.VK_E) and isKeyJustPressed(key.VK_LMENU) then
               on = true
                id = sampGetPlayerNickname(nick)
                sampSendChat("/omid "..id)
            end
            until on
                repeat
                if isKeyJustPressed(key.VK_R) and isKeyJustPressed(key.VK_LMENU) then
                    local rang = ranks[rank]
                    sampSendChat("/me передал лычки \""..rangs[rang].."\" "..(nick:gsub("_", " ")))
                    wait(2000)
                    sampSendChat("/giverank "..id.." "..ranks[rank + 1])
                    wait(1000)
                    sampSendChat("/time")
                    wait(500)
                    setVirtualKeyDown(key.VK_F8, true)
                    setVirtualKeyDown(key.VK_F8, false)
                end
                until isKeyJustPressed(key.VK_0)
                nick = nil; rank = nil; id = nil
        end
    end
end

function ev.onServerMessage(_, msg)
    if msg:find("Имя: %a+_%a+") then
        nick = msg:match("Имя:%s(%a+_%a+)")
    elseif msg:find("Фракция: Army %a+ Должность: %a+") then
        rank = msg:match("Фракция:%sArmy%s%a+%sДолжность:%s(%a+)")
    end
end


А не проще проверить мёртв игрок или нет?


Lua:
require "moonloader"

function main()
    while not isSampAvailable() do wait(0) end
    sampAddChatMessage("[{ff0000}Gym {4169e1}BOT {ff0000}Pears Project{FFFFFF}] CLEO by {4169e1}Kraft1k {FFFFFF}for {818384}Blast.{0094c8}hk", -1)
    sampAddChatMessage("[{ff0000}Gym {4169e1}BOT {ff0000}Pears Project{FFFFFF}] Активация - {0094c8}Автоматическая", -1)
    while not sampIsLocalPlayerSpawned() do wait(0) end
    while true do
        wait(0)
        if isCharPlayingAnim(PLAYER_PED, "GYM_BP_GETON") then
            setGameKeyState(6, 255)
            wait(1000)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_BP_UP_A") then
            setGameKeyState(6, 255)
            wait(1000)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_BP_DOWN") then
            setGameKeyState(6, 255)
            wait(500)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_FREE_A") then
            setGameKeyState(6, 255)
            wait(500)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_FREE_LOOP") then
            setGameKeyState(6, 255)
            wait(500)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_FREE_DOWN") then
            setGameKeyState(6, 255)
            wait(500)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_FREE_B") then
            setGameKeyState(6, 255)
            wait(500)
        elseif isCharPlayingAnim(PLAYER_PED, "GYM_FREE_UP_SMOOTH") then
            setGameKeyState(6, 255)
            wait(500)
        end
    end
end
Вы не поняли мне нужен скрипт который будет писать текст перед смертью именно при 10 хп сделаете?
 

Ma[x].

Известный
185
13
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.