крашится скрипт после ввода команды

Cypher

Активный
Автор темы
224
55
Версия MoonLoader
.026-beta
Суть скрипта: когда у меня остается менее 30хп во время файта к примеру, чтобы он писал /kiss на чела который последний нанес мне дамаг, после шоб я юзал нарко, и сбивалось чатом
После ввода /razeb скрипт просто крашится
xyeta:
local sampev = require 'lib.samp.events'
local shot = nil
local act = false
require 'lib.moonloader'
lua_thread.create_suspended(thread_function)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("razeb")
    sampAddChatMessage('[razeb]: Active', -1)
    while true do
        wait(0)   
    end
end

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
   shot = playerId
end

function razeb()
   act = not act
   sampAddChatMessage("[razeb]: Active", 0xFFFFFF)
   hp = getCharHealth(PLAYER_PED)
   if hp < 30 then
      thr:run()
   end
end

function thread_function()
   sampSendChat('kiss'.. shot)
   wait(100)
   sampSendChat('/usedrugs 3')
   wait(100)
   sampSendChat('1')
end
помогите говнокодеру
 
  • Эм
Реакции: qdIbp

Cypher

Активный
Автор темы
224
55
Всё очень грустно, попробуй с начала изучить то, что используешь

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

Теперь другая проблема
Мне надо сделать так мое хп проверялось ВСЕГДА
и если остается менее 30хп то в чат писалось /kiss ид того кто последний нанес мне урон
потом юседругс 3
и сбив на 1 в чат

На деле когда ввожу /razeb ничего не работает, очевидно потому что проверка на хп только в момент ввода команды
в общем вы поняли, надеюсь поможете пофиксить
1212:
local sampev = require 'lib.samp.events'
local shot = nil
local act = false
require 'lib.moonloader'
lua_thread.create_suspended(thread_function)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("razeb", razeb)
    sampAddChatMessage('{FF0000}[Razeb]: {FFFFFF}Active', -1)
    while true do
        wait(0)   
    end
end

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
   shot = playerId
end

function razeb()
   act = not act
   sampAddChatMessage("{FF0000}[Razeb]: {FFFFFF}Готов к бою", -1)
   hp = getCharHealth(PLAYER_PED)
   if hp < 30 then
      thr:run()
   end
end

function thread_function()
   sampSendChat('kiss'.. shot)
   wait(100)
   sampSendChat('usedrugs 3')
   wait(100)
   sampSendChat('1')
end
 
Последнее редактирование:

why ega

РП игрок
Модератор
2,540
2,233
Понял, затупил, ща переделаю если чето не выйдет сюда же отпишу чтоб новую тему не создавать

Теперь другая проблема
Мне надо сделать так мое хп проверялось ВСЕГДА
и если остается менее 30хп то в чат писалось /kiss ид того кто последний нанес мне урон
потом юседругс 3
и сбив на 1 в чат

На деле когда ввожу /razeb ничего не работает, очевидно потому что проверка на хп только в момент ввода команды
в общем вы поняли, надеюсь поможете пофиксить
1212:
local sampev = require 'lib.samp.events'
local shot = nil
local act = false
require 'lib.moonloader'
lua_thread.create_suspended(thread_function)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("razeb", razeb)
    sampAddChatMessage('{FF0000}[Razeb]: {FFFFFF}Active', -1)
    while true do
        wait(0)  
    end
end

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
   shot = playerId
end

function razeb()
   act = not act
   sampAddChatMessage("{FF0000}[Razeb]: {FFFFFF}Готов к бою", -1)
   hp = getCharHealth(PLAYER_PED)
   if hp < 30 then
      thr:run()
   end
end

function thread_function()
   sampSendChat('kiss'.. shot)
   wait(100)
   sampSendChat('usedrugs 3')
   wait(100)
   sampSendChat('1')
end
в while true do перетащи проверку на хп

Lua:
local sampev = require 'lib.samp.events'
local shot = nil
local act = false
require 'lib.moonloader'
lua_thread.create_suspended(thread_function)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("razeb", razeb)
    sampAddChatMessage('{FF0000}[Razeb]: {FFFFFF}Active', -1)
    while true do wait(0)
        local hp = getCharHealth(PLAYER_PED)
           if hp < 30 then
              thr:run()
           end
    end
end

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
   shot = playerId
end

function razeb()
   act = not act
   sampAddChatMessage("{FF0000}[Razeb]: {FFFFFF}Готов к бою", -1)
end

function thread_function()
   sampSendChat('kiss'.. shot)
   wait(100)
   sampSendChat('usedrugs 3')
   wait(100)
   sampSendChat('1')
end
так вроде.

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

Cypher

Активный
Автор темы
224
55
в while true do перетащи проверку на хп

Lua:
local sampev = require 'lib.samp.events'
local shot = nil
local act = false
require 'lib.moonloader'
lua_thread.create_suspended(thread_function)

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("razeb", razeb)
    sampAddChatMessage('{FF0000}[Razeb]: {FFFFFF}Active', -1)
    while true do wait(0)
        local hp = getCharHealth(PLAYER_PED)
           if hp < 30 then
              thr:run()
           end
    end
end

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
   shot = playerId
end

function razeb()
   act = not act
   sampAddChatMessage("{FF0000}[Razeb]: {FFFFFF}Готов к бою", -1)
end

function thread_function()
   sampSendChat('kiss'.. shot)
   wait(100)
   sampSendChat('usedrugs 3')
   wait(100)
   sampSendChat('1')
end
так вроде.

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

[ML] (error) kiss.lua: D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua:14: attempt to index global 'thr' (a nil value)
stack traceback:
D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua: in function <D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua:7>
[ML] (error) kiss.lua: Script died due to an error. (3262C87C)
когда остается менее 30хп

не работает(


[ML] (error) kiss.lua: D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua:14: attempt to index global 'thr' (a nil value)
stack traceback:
D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua: in function <D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua:7>
[ML] (error) kiss.lua: Script died due to an error. (3262C87C)
когда остается менее 30хп
поменял запуск функции на адекватный но новая проблема
[ML] (error) kiss.lua: D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua:14: attempt to index global 'thread_function' (a function value)
stack traceback:
D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua: in function <D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua:7>
[ML] (error) kiss.lua: Script died due to an error. (3BB87F94)
 
Последнее редактирование:

why ega

РП игрок
Модератор
2,540
2,233
не работает(


[ML] (error) kiss.lua: D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua:14: attempt to index global 'thr' (a nil value)
stack traceback:
D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua: in function <D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua:7>
[ML] (error) kiss.lua: Script died due to an error. (3262C87C)
когда остается менее 30хп


поменял запуск функции на адекватный но новая проблема
[ML] (error) kiss.lua: D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua:14: attempt to index global 'thread_function' (a function value)
stack traceback:
D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua: in function <D:\ARIZONA GAMES\bin\Arizona\moonloader\kiss.lua:7>
[ML] (error) kiss.lua: Script died due to an error. (3BB87F94)
Lua:
local sampev = require 'lib.samp.events'
local shot = nil
local act = false
require 'lib.moonloader'

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("razeb", razeb)
    sampAddChatMessage('{FF0000}[Razeb]: {FFFFFF}Active', -1)
    while true do wait(0)
        if act then
            local hp = getCharHealth(PLAYER_PED)
               if hp < 30 then
                   sampSendChat('kiss'.. shot)
                   wait(100)
                   sampSendChat('usedrugs 3')
                   wait(100)
                   sampSendChat('1')
               end
        end
    end
end

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
   shot = playerId
end

function razeb()
   act = not act
   sampAddChatMessage("{FF0000}[Razeb]: {FFFFFF}Готов к бою", -1)
end
так? просто несовсем понимаю, что должен делать твой скрипт
 

qdIbp

Автор темы
Проверенный
1,386
1,141
Хватит использовать thr:run(), он тебе все равно нахер не сдался
Lua:
require('lib.moonloader')
local sampev = require('lib.samp.events')

local shot = -1
local act = false

function main()
    while not isSampAvailable() do wait(0) end
        sampAddChatMessage('[razeb]: Active', -1)
        sampRegisterChatCommand("razeb",function()
            act = not act
            sampAddChatMessage('[razeb]: '..(act and 'Active' or 'Off'), 0xFFFFFF)
        end)
   
    while true do wait(0)
        if act then
            --wait(1500)
            if getCharHealth(PLAYER_PED) < 30 then
               sampSendChat('/kiss '..shot)
               wait(100)
               sampSendChat('/usedrugs 3')
            end
        end
    end
end

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
   shot = playerId
end
 
  • Нравится
Реакции: why ega