Lua Сокращ. комманды для сервера Monser Gang War

vlad667

Новичок
Автор темы
3
2
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R2
  3. 0.3.7-R3
  4. 0.3.7-R4
Сокращённые комманды для сервера Monser Gang War в .lua скрипте.
Стиллеров - нет!
Код
скрипта:
Lua:
function main()
    while not isSampAvailable() do wait(0) end
    encoding = require "encoding"
    encoding.default = "UTF-8"
    u8 = encoding.CP1251
    sampRegisterChatCommand("fs", fast)
    sampRegisterChatCommand("atc", antic)
    sampRegisterChatCommand("gn", guns)
    sampRegisterChatCommand("sk", skin)
    sampRegisterChatCommand("tm", time)
    sampRegisterChatCommand("hm", healme)
    sampRegisterChatCommand("ms", mask)
    sampRegisterChatCommand("shelp", shelp)
    sampAddChatMessage(u8("{00FF00}[Short cmds] {FFFF00}Use /shelp to open list of commands."), 0xFFFFFFFF)
    wait(-1)
end

function fast(loka)
    local loka = tonumber(loka)
    sampSendChat("/fast " .. loka)
end

function antic(loka)
    local loka = tonumber(loka)
    sampSendChat("/antic  " .. loka)
end

function guns()
    sampSendChat("/guns")
end

function skin(id)
    local id = tonumber(id)
    sampSendChat("/skin " .. id)
end

function healme()
    sampSendChat("/healme")
end

function mask()
    sampSendChat("/mask")
end

function time()
    sampSendChat("/time")
end

function shelp()
    sampShowDialog(10, "{00FF00}Short commands", "{FFFF00}/fs [id] - /fast [id]\n{FFFF00}/atc [id] - /antic [id]\n{FFFF00}/sk [id] - /skin [id]\n{FFFF00}/gn - /guns\n{FFFF00}/ms - /mask\n{FFFF00}/hm - /healme\n{FFFF00}/tm - /time\n{FFFF00}/shelp - this window", u8("{00FF00}Закрыть"), u8(""), 0)
end
 

Вложения

  • monser short cmds.lua
    1.3 KB · Просмотры: 19
Последнее редактирование модератором:
  • Нравится
Реакции: Insanity

meowprd

Тот самый Котовский
Проверенный
1,278
720
А зачем encoding в этом скрипте?
Не самый лучший код, честно говоря
 

meowprd

Тот самый Котовский
Проверенный
1,278
720
А что там плохого? Ну, как бы ты улучшил этот код?
Да тот же самый tonumber тут вообще не нужен даже
Проверки на отсутствие аргумента у команды нет, а нужна бы все таки
Юзал бы string.format, во избежание лишних крашей скрипта
Проверка на сервер, если не тот, который нужен - выгружаем скрипт
 

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,917
1,289
Lua:
ev = require 'samp.events'
tab = {{"fs", "fast"}, {"atc", "antic"}, {"gn", "guns"}, {"sk", "skin"}, {"tm", "time"}, {"hm", "healme"}, {"ms", "mask"}}
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("shelp", shelp)
    sampAddChatMessage("{00FF00}[Short cmds] {FFFF00}Use /shelp to open list of commands.", 0xFFFFFFFF)
    wait(-1)
end

function ev.onSendCommand(cmd)
for k, v in pairs(tab) do
  if cmd:match(v[1]) then
   cmd = cmd:gsub(v[1], v[2])
   return cmd
  end
end
end

function shelp()
    sampShowDialog(10, "{00FF00}Short commands", "{FFFF00}/fs [id] - /fast [id]\n{FFFF00}/atc [id] - /antic [id]\n{FFFF00}/sk [id] - /skin [id]\n{FFFF00}/gn - /guns\n{FFFF00}/ms - /mask\n{FFFF00}/hm - /healme\n{FFFF00}/tm - /time\n{FFFF00}/shelp - this window", "{00FF00}Закрыть", "", 0)
end
 

Rei

Известный
Друг
1,616
1,672

Lua:
ev = require 'samp.events'
tab = {{"fs", "fast"}, {"atc", "antic"}, {"gn", "guns"}, {"sk", "skin"}, {"tm", "time"}, {"hm", "healme"}, {"ms", "mask"}}
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("shelp", shelp)
    sampAddChatMessage("{00FF00}[Short cmds] {FFFF00}Use /shelp to open list of commands.", 0xFFFFFFFF)
    wait(-1)
end

function ev.onSendCommand(cmd)
for k, v in pairs(tab) do
  if cmd:match(v[1]) then
   cmd = cmd:gsub(v[1], v[2])
   return cmd
  end
end
end

function shelp()
    sampShowDialog(10, "{00FF00}Short commands", "{FFFF00}/fs [id] - /fast [id]\n{FFFF00}/atc [id] - /antic [id]\n{FFFF00}/sk [id] - /skin [id]\n{FFFF00}/gn - /guns\n{FFFF00}/ms - /mask\n{FFFF00}/hm - /healme\n{FFFF00}/tm - /time\n{FFFF00}/shelp - this window", "{00FF00}Закрыть", "", 0)
end
или без эвентов
я хуй знает можно ли регать кмд циклом, но думаю да
Lua:
tab = {{"fs", "fast"}, {"atc", "antic"}, {"gn", "guns"}, {"sk", "skin"}, {"tm", "time"}, {"hm", "healme"}, {"ms", "mask"}}
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("shelp", shelp)
    sampAddChatMessage("{00FF00}[Short cmds] {FFFF00}Use /shelp to open list of commands.", 0xFFFFFFFF)
for k, v in ipairs(tab) do
sampRegisterChatCommand(v[1], function(arg) sampSendChat('/'..v[2]..' '..arg) end)
end
    wait(-1)
end


function shelp()
    sampShowDialog(10, "{00FF00}Short commands", "{FFFF00}/fs [id] - /fast [id]\n{FFFF00}/atc [id] - /antic [id]\n{FFFF00}/sk [id] - /skin [id]\n{FFFF00}/gn - /guns\n{FFFF00}/ms - /mask\n{FFFF00}/hm - /healme\n{FFFF00}/tm - /time\n{FFFF00}/shelp - this window", "{00FF00}Закрыть", "", 0)
end

проверил, пашет нормально
 
Последнее редактирование:

paulohardy

вы еще постите говно? тогда я иду к вам
Всефорумный модератор
1,917
1,289
или без эвентов
я хуй знает можно ли регать кмд циклом, но думаю да
Код:
ev = require 'samp.events'
tab = {{"fs", "fast"}, {"atc", "antic"}, {"gn", "guns"}, {"sk", "skin"}, {"tm", "time"}, {"hm", "healme"}, {"ms", "mask"}}
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("shelp", shelp)
    sampAddChatMessage("{00FF00}[Short cmds] {FFFF00}Use /shelp to open list of commands.", 0xFFFFFFFF)
for k, v in ipairs(tab) do
sampRegisterChatCommand(v[1], function() sampSendChat('/'..v[2]) end)
end
    wait(-1)
end


function shelp()
    sampShowDialog(10, "{00FF00}Short commands", "{FFFF00}/fs [id] - /fast [id]\n{FFFF00}/atc [id] - /antic [id]\n{FFFF00}/sk [id] - /skin [id]\n{FFFF00}/gn - /guns\n{FFFF00}/ms - /mask\n{FFFF00}/hm - /healme\n{FFFF00}/tm - /time\n{FFFF00}/shelp - this window", "{00FF00}Закрыть", "", 0)
end
Можно и так, но команды где надо указывать аргументы на твоем коде правильно работать не будут
Да и регать кучу команд не очень получается
upd исправил код, теперь будут
 

ufdhbi

Известный
Проверенный
1,460
866
Lua:
ev = require 'samp.events'
tab = {{"fs", "fast"}, {"atc", "antic"}, {"gn", "guns"}, {"sk", "skin"}, {"tm", "time"}, {"hm", "healme"}, {"ms", "mask"}}
function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("shelp", shelp)
    sampAddChatMessage("{00FF00}[Short cmds] {FFFF00}Use /shelp to open list of commands.", 0xFFFFFFFF)
    wait(-1)
end

function ev.onSendCommand(cmd)
for k, v in pairs(tab) do
  if cmd:match(v[1]) then
   cmd = cmd:gsub(v[1], v[2])
   return cmd
  end
end
end

function shelp()
    sampShowDialog(10, "{00FF00}Short commands", "{FFFF00}/fs [id] - /fast [id]\n{FFFF00}/atc [id] - /antic [id]\n{FFFF00}/sk [id] - /skin [id]\n{FFFF00}/gn - /guns\n{FFFF00}/ms - /mask\n{FFFF00}/hm - /healme\n{FFFF00}/tm - /time\n{FFFF00}/shelp - this window", "{00FF00}Закрыть", "", 0)
end
а можно больше вложенных таблиц?
 
  • Bug
  • Злость
Реакции: kin4stat и paulohardy

vlad667

Новичок
Автор темы
3
2
Я о lua многого не знаю, и писал код с 0ля моих знаний о нём. Всего что я хотел добиться это не грамотного кода, вида или ещё что-то в этом роде, а того чтобы оно работало. Залил потому что подумал если ещё кому-то надо.
А encoding мне нужен для того чтобы надпись на кнопке была буквами а не какими то иероглифами.
 
Последнее редактирование:
  • Нравится
Реакции: shitcodes

ufdhbi

Известный
Проверенный
1,460
866
Я не кодер на .lua, и многого не знаю, я делал код с 0-ля моих знаний о нём. Сделал этот скрипт для себя, но залил если ещё кому надо. Всё чего я хотел добиться это того чтобы оно работало, а не грамотного кода, вида или ещё чего-то в этом роде.
А encoding мне нужен для того чтобы надпись на кнопке была буквами а не какими то иероглифами.
Я о lua многого не знаю, и писал код с 0ля моих знаний о нём. Всего что я хотел добиться это не грамотного кода, вида или ещё что-то в этом роде, а того чтобы оно работало. Залил потому что подумал если ещё кому-то надо.
Сохрани скрипт в кодировке windows-1251 и будет поддержка кириллицы без доп.библиотек
 

Sanchez.

Известный
705
188
Если что, я просто спрашиваю. Что делает tonumber почти вначале скрипта, просто подзабыл)