Активация по нажатию определённой кнопки. Когда вам показывают паспорт, вы нажимаете допустим на "Alt+E" и скрипт вводит автоматически команду /omid id(того кто показал паспорт), далее при нажатии повторной кнопки допустим Alt+R скрипт начинает повышать человека на один ранг вперёд с отыгровкой.
Пример отыгровки:
/me передал лычки ст.сержанта бойцу "Имя Фамилия"
/giverank "ID" "звание"
/time+F8 автоматически
Сервер Samp Rp, всего 14 званий, так же ещё нужны разные отыгровки. С рядового (1) по старшину (6) нужна отыгровка "/me передал лычки старшины бойцу "Имя Фамилия", а с прапорщика по полковника "/me передал погоны ст.лейтенанта бойцу "Имя Фамилия"
Чат лог паспорта:
[TBODY] [/TBODY]
[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 показал(а) свой паспорт
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
Последнее редактирование: