What's new

Skrypty & Kody /mute

Status
Not open for further replies.

#NOOB

Senior User
Joined
May 25, 2014
Messages
901
Reaction score
89
Pr?buje fajnie sklepa? komend? /mute jednak jest kilka irytuj?cych rzeczy z kt?rymi od wczoraj si? m?cz?, mianowicie:
- Komendy u?ywa si? w ten spos?b -> /mute nick, czas - je?li wpisz? /mute nick i nie dodam przecinka to wywala taki b??d w konsoli
[CPP][29/01/2016 12:57:15] Lua Script Error: [TalkAction Interface]
[29/01/2016 12:57:15] data/talkactions/scripts/muted.lua:eek:nSay

[29/01/2016 12:57:15] data/talkactions/scripts/muted.lua:22: attempt to compare string with nil
[29/01/2016 12:57:15] stack traceback:
[29/01/2016 12:57:15] data/talkactions/scripts/muted.lua:22: in function <data/talkactions/scripts/muted.lua:7>[/CPP]

- Ustawione mam, ?e mog? nada? mute na czas z zakresu 1-100 minut. Jednak nie wiem czemu skrypt sobie ubzdura? i je?li spr?buje nada? mute na czas 3,4,5,6 minut to wywala, ?e "mozna nadac na czas z zakresu 1-100 minut", reszta dzia?a bez zarzutu. Tylko czemu ? Skoro jest zrobione if time > "0" i if time <= "100" to powinno nada?.

- Chce zrobi?, ?e mo?na nada? blokade mute osobie, kt?ra posiada access mniejszy od tego jaki posiada osoba nadaj?ca muted jednak co? nie hula.

Skrypt: zlepa kodu z otland + wczorajsza wskaz?wka od [MENTION=4185]fabian766[/MENTION] i troch? od siebie.
[LUA]local v = {}
for k = 1, 100 do
table.insert(v, createConditionObject(CONDITION_MUTED))
setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000)
end

function onSay(cid, words, param)

local t = string.explode(param, ",")
if param == '' then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bledny parametr komendy.")
return true
end

local mPlayer,time = getPlayerByName(t[1]),t[2]
local rMute = getPlayerName(cid)
local pAccess = getPlayerGroupId(t[1])

if isPlayer(mPlayer) == TRUE then
if(mPlayer ~= cid) then
if(pAccess < cid) then
if(time > "0" and time <= "100") then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Nadales blokade na pisanie graczowi "..t[1].." na okres "..time.." minut.")
doAddCondition(mPlayer, v[tonumber(time)])
doPlayerSendTextMessage(mPlayer, MESSAGE_INFO_DESCR, "Otrzymales muted od ".. rMute .." na okres "..time.." minut.")
else
doPlayerSendCancel(cid,"Tylko zakres czasowy 1-100 minut.")
end
else
doPlayerSendCancel(cid,"Muted mozesz nadac osobie z access mniejszym od twojego.")
end
else
doPlayerSendCancel(cid,"Sam sobie nie nadasz blokady.")
end
else
doPlayerSendCancel(cid,"Gracz o takiej nazwie nie istnieje.")
end
end[/LUA]
 

fabian766

Active User
Joined
Apr 15, 2008
Messages
126
Reaction score
17
Odp: /mute

[LUA]local v = {}
for k = 1, 100 do
table.insert(v, createConditionObject(CONDITION_MUTED))
setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000)
end

function onSay(cid, words, param)
local t = string.explode(param, ",")
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bledny parametr komendy.")
return true
end

local mPlayer = getPlayerByName(t[1])
local time = tonumber(t[2])
local rMute = getPlayerName(cid)
if(isPlayer(mPlayer)) then
if(mPlayer ~= cid) then
if(getPlayerAccess(mPlayer) < getPlayerAccess(cid)) then
if(time > 0 and time <= 100) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Nadales blokade na pisanie graczowi "..t[1].." na okres "..time.." minut.")
doAddCondition(mPlayer, v[time])
doPlayerSendTextMessage(mPlayer, MESSAGE_INFO_DESCR, "Otrzymales muted od "..rMute.." na okres "..time.." minut.")
else
doPlayerSendCancel(cid, "Tylko zakres czasowy 1-100 minut.")
end
else
doPlayerSendCancel(cid, "Muted mozesz nadac osobie z access mniejszym od twojego.")
end
else
doPlayerSendCancel(cid, "Sam sobie nie nadasz blokady.")
end
else
doPlayerSendCancel(cid, "Gracz o takiej nazwie nie istnieje.")
end
end[/LUA]
spr?buj teraz
 

#NOOB

Senior User
Joined
May 25, 2014
Messages
901
Reaction score
89
Odp: /mute

Teraz dzia?a, jeszcze tylko ten b??d pozosta? gdy wpisz? /mute nick lub /mute nick, + gdy ?le wpisz? czas np /mute nick, 10 1 to te? wywala b??d.
[LUA]Lua Script Error: [TalkAction Interface]
[29/01/2016 13:57:04] data/talkactions/scripts/muted.lua:eek:nSay

[29/01/2016 13:57:04] data/talkactions/scripts/muted.lua:20: attempt to compare number with nil
[29/01/2016 13:57:04] stack traceback:
[29/01/2016 13:57:04] data/talkactions/scripts/muted.lua:20: in function <data/talkactions/scripts/muted.lua:7[/LUA]
 

fabian766

Active User
Joined
Apr 15, 2008
Messages
126
Reaction score
17
Odp: /mute

[LUA]local v = {}
for k = 1, 100 do
table.insert(v, createConditionObject(CONDITION_MUTED))
setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000)
end

function onSay(cid, words, param)
local t = string.explode(param, ",")
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bledny parametr komendy.")
return true
end

local mPlayer = getPlayerByName(t[1])
local time = tonumber(t[2])
local rMute = getPlayerName(cid)
if(not time) then
doPlayerSendCancel(cid, "Napisz poprawny zakres czasowy 1-100 minut.")
return true
end

if(isPlayer(mPlayer)) then
if(mPlayer ~= cid) then
if(getPlayerAccess(mPlayer) < getPlayerAccess(cid)) then
if(time > 0 and time <= 100) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Nadales blokade na pisanie graczowi "..t[1].." na okres "..time.." minut.")
doAddCondition(mPlayer, v[time])
doPlayerSendTextMessage(mPlayer, MESSAGE_INFO_DESCR, "Otrzymales muted od "..rMute.." na okres "..time.." minut.")
else
doPlayerSendCancel(cid, "Tylko zakres czasowy 1-100 minut.")
end
else
doPlayerSendCancel(cid, "Muted mozesz nadac osobie z access mniejszym od twojego.")
end
else
doPlayerSendCancel(cid, "Sam sobie nie nadasz blokady.")
end
else
doPlayerSendCancel(cid, "Gracz o takiej nazwie nie istnieje.")
end
end[/LUA]
 

#NOOB

Senior User
Joined
May 25, 2014
Messages
901
Reaction score
89
Odp: /mute

Dzia?a, dzi?kuje!!!!!!!

Tylko zamieni?em:
[LUA] if(isPlayer(mPlayer)) then[/LUA]

na:
[LUA] if(isPlayer(mPlayer) == TRUE) then[/LUA]

bo nadawa?o mute nawet jak gracz by? offline, a konsola plu?a b??dami z doPlayerSendTextMessage, bo targeta nie mog?o znale?? (offline przecie? by?) :D
 
Status
Not open for further replies.
Top