Проверка спауна

xfp007

Известный
Автор темы
30
2
Версия MoonLoader
.027.0-preview
Всем привет. Решил попробовать написать простенький LUA для разноса одного нуборп. Но наткнулся на ряд трудно решаемых для моего iq проблем. Суть пошагово
1. При активации скрипт пишет /setspawn и выбирает четвертый пункт в диалоговом меню.
2. Скрипт запускает цикл который закончится в момент когда персонаж респаунится после смерти отправляя команду /donate и выбирая пункт 3

Вопросы в следующем:
1. Как реализовать проверку на то что игрок только что заспаунился? sampIsLocalPlayerSpawned работает только при запуске скрипта и всё. При респауне после смерти ничего не происходит
2. После выполнения пункта 1 диалоговые окна не закрываются, хоть действия и выполняются. Как можно закрывать диалоговые окна автоматически?



скрипт:
require "lib.moonloader"

function main()
    while not isSampAvailable() do wait(100) end
   repeat
      wait(0)
   until sampIsLocalPlayerSpawned()
   sampAddChatMessage("{ffffff}[{BA55D3}unde{ADFF2F}faded!{FFFFFF}] fast spawner for ERP loaded!",-1)
    if not isSampLoaded() or not  isSampfuncsLoaded() then return end
    while not  isSampAvailable() do wait(100) end
    while true do wait(0)
        if isKeyJustPressed(0x42) then
       sampSendChat("/setspawn")
       sampSendDialogResponse(dialogId,1, 4, nill)
       sampAddChatMessage("{ffffff}[{BA55D3}unde{ADFF2F}faded!{FFFFFF}] Spawn point changed!",-1)
       return false
        end
    end
end
 

qdIbp

Автор темы
Проверенный
1,434
1,173
Всем привет. Решил попробовать написать простенький LUA для разноса одного нуборп. Но наткнулся на ряд трудно решаемых для моего iq проблем. Суть пошагово
1. При активации скрипт пишет /setspawn и выбирает четвертый пункт в диалоговом меню.
2. Скрипт запускает цикл который закончится в момент когда персонаж респаунится после смерти отправляя команду /donate и выбирая пункт 3

Вопросы в следующем:
1. Как реализовать проверку на то что игрок только что заспаунился? sampIsLocalPlayerSpawned работает только при запуске скрипта и всё. При респауне после смерти ничего не происходит
2. После выполнения пункта 1 диалоговые окна не закрываются, хоть действия и выполняются. Как можно закрывать диалоговые окна автоматически?



скрипт:
require "lib.moonloader"

function main()
    while not isSampAvailable() do wait(100) end
   repeat
      wait(0)
   until sampIsLocalPlayerSpawned()
   sampAddChatMessage("{ffffff}[{BA55D3}unde{ADFF2F}faded!{FFFFFF}] fast spawner for ERP loaded!",-1)
    if not isSampLoaded() or not  isSampfuncsLoaded() then return end
    while not  isSampAvailable() do wait(100) end
    while true do wait(0)
        if isKeyJustPressed(0x42) then
       sampSendChat("/setspawn")
       sampSendDialogResponse(dialogId,1, 4, nill)
       sampAddChatMessage("{ffffff}[{BA55D3}unde{ADFF2F}faded!{FFFFFF}] Spawn point changed!",-1)
       return false
        end
    end
end
Lua:
local on = require 'lib.samp.events'

function on.onSendSpawn()

end
Функция срабатывает как только ты появляешься(спавн, больница). в случаи если зайдешь в инту ничего не будет

Lua:
local on = require 'lib.samp.events'
local peremen = true
function on.onShowDialog(did, dialogStyle, dialogTitle, okButtonText, cancelButtonText, dialogText)
    if did == 174 and peremen then --Eсли Dialog Id == 174 и peremen == true то диалог будет скрываться
        sampSendDialogResponse(did,0,_,_) --Может закрыть диалог и сделать какую нибуть фигню
        sampCloseCurrentDialogWithButton(0) --Просто закрывает диалог
        peremen = false -- превращает peremen в false и после этого строка не будет скрывать диалог
        return false --Скрытие диалога(ВООБЩЕ)
    end
end
в комментах написано
 
  • Нравится
Реакции: xfp007