Ir para conteúdo
  • 0

Talkaction por vocação


Adriez

Pergunta

Posts Recomendados

  • 0

sim basta fazer a verificação no começo do script.

if getPlayerVocation(cid) == ID_VOCATION then
    mensagem de erro;
    return false
end

Tópico Movido
Este tópico foi movido de "OTServScriptingDownloads ScriptsActions, talkactions e moveevents"
para "OTServScriptingSuporte Scripting".

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

esse seria o script, gostaria q todas essas vocação só elas pudessem usar o talktaction a 9,10,11 e 12, obrigado

 

function onSay(cid, words, param, channel)
if getPlayerVocation(cid) == ID_VOCATION then
mensagem de erro;
return false
end
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
return true
end
local t = string.explode(param, ",")
t[1] = tonumber(t[1])
if(not t[1]) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")
return true
end
local failout = {"73","75","302","266","45","10"} -- outfits proibidas
for i = 1, #failout do
if string.find(tostring(param), failout) then
doPlayerSendCancel(cid,"Não pode usar estas outfit.")
return TRUE
end
end
if(t[1] <= 1 or t[1] == 135 or (t[1] > 160 and t[1] < 192) or t[1] > 351) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Such outfit does not exist.")
return true
end
local tmp = getCreatureOutfit(cid)
tmp.lookType = t[1]
doCreatureChangeOutfit(cid, tmp)
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Tenta ae:

local vocs = {9, 10, 11, 12} --vocacoes que podem usar a talkaction

function onSay(cid, words, param, channel)

if isInArray(vocs, getPlayerVocation(cid)) then
        if(param == '') then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
                return true
        end
 
        local t = string.explode(param, ",")
        t[1] = tonumber(t[1])
        if(not t[1]) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")
                return true
        end
 
 
 
local failout = {"73","75","302","266","45","10"} -- outfits proibidas
       for i = 1, #failout do
       if string.find(tostring(param), failout[i]) then
        doPlayerSendCancel(cid,"Não pode usar estas outfit.")
        return TRUE
end 
end   
 
        if(t[1] <= 1 or t[1] == 135 or (t[1] > 160 and t[1] < 192) or t[1] > 351) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Such outfit does not exist.")
                return true
        end
 
        local tmp = getCreatureOutfit(cid)
        tmp.lookType = t[1]
 
        doCreatureChangeOutfit(cid, tmp)]
else
doPlayerSendCancel(cid,"Sua vocação não pode usar este comando.")
end
        return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

^^ dani nesses casos é bom seguir a estrutura do script , que no caso é verificar se é a condição é falsa e cancelar a ação:

    if not isInArray(vocs, getPlayerVocation(cid)) then
        doPlayerSendCancel(cid,"Sua vocação não pode usar este comando.")
    end
Link para o comentário
Compartilhar em outros sites

  • 0

 

^^ dani nesses casos é bom seguir a estrutura do script , que no caso é verificar se é a condição é falsa e cancelar a ação:

    if not isInArray(vocs, getPlayerVocation(cid)) then
        doPlayerSendCancel(cid,"Sua vocação não pode usar este comando.")
    end

 

Mas ainda seria necessário acrescentar o return false, ne isso?

Link para o comentário
Compartilhar em outros sites

  • 0

esse seria o script, gostaria q todas essas vocação só elas pudessem usar o talktaction a 9,10,11 e 12, obrigado



function onSay(cid, words, param, channel)

if getPlayerVocation(cid) == ID_VOCATION then

mensagem de erro;

return false

end

if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")

return true

end


local t = string.explode(param, ",")

t[1] = tonumber(t[1])

if(not t[1]) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")

return true

end




local failout = {"73","75","302","266","45","10"} -- outfits proibidas

for i = 1, #failout do

if string.find(tostring(param), failout) then

doPlayerSendCancel(cid,"Não pode usar estas outfit.")

return TRUE

end

end


if(t[1] <= 1 or t[1] == 135 or (t[1] > 160 and t[1] < 192) or t[1] > 351) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Such outfit does not exist.")

return true

end


local tmp = getCreatureOutfit(cid)

tmp.lookType = t[1]


doCreatureChangeOutfit(cid, tmp)

return true

end

Link para o comentário
Compartilhar em outros sites

  • 0


local vocs = {9, 10, 11, 12}

 

function onSay(cid, words, param, channel)

if not isInArray(vocs, getPlayerVocation(cid)) then

doPlayerSendCancel(cid,"Sua vocação não pode usar este comando.")

end

if(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")

return true

end

 

local t = string.explode(param, ",")

t[1] = tonumber(t[1])

if(not t[1]) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")

return true

end

 

 

 

local failout = {"73","75","302","266","45","10"} -- outfits proibidas

for i = 1, #failout do

if string.find(tostring(param), failout) then

doPlayerSendCancel(cid,"Não pode usar estas outfit.")

return TRUE

end

end

 

if(t[1] <= 1 or t[1] == 135 or (t[1] > 160 and t[1] < 192) or t[1] > 351) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Such outfit does not exist.")

return true

end

 

local tmp = getCreatureOutfit(cid)

tmp.lookType = t[1]

 

doCreatureChangeOutfit(cid, tmp)

return true

end

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta agr:

local vocs = {9, 10, 11, 12}
local can = "yes"

function onSay(cid, words, param, channel)
if not isInArray(vocs, getPlayerVocation(cid)) then
doPlayerSendCancel(cid,"Sua vocação não pode usar este comando.")
can = "no"
end
if can == "yes" then
        if(param == '') then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
                return true
        end
 
        local t = string.explode(param, ",")
        t[1] = tonumber(t[1])
        if(not t[1]) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")
                return true
        end
 
 
 
local failout = {"73","75","302","266","45","10"} -- outfits proibidas
       for i = 1, #failout do
       if string.find(tostring(param), failout[i]) then
        doPlayerSendCancel(cid,"Não pode usar estas outfit.")
        return TRUE
end 
end   
 
        if(t[1] <= 1 or t[1] == 135 or (t[1] > 160 and t[1] < 192) or t[1] > 351) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Such outfit does not exist.")
                return true
        end
 
        local tmp = getCreatureOutfit(cid)
        tmp.lookType = t[1]
 
        doCreatureChangeOutfit(cid, tmp)
end
        return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Usa isso:

 

--- script

local vocs = {9, 10, 11, 12}

local failout = {73,75,302,266,45,10} -- outfits proibidas

 

function onSay(cid, words, param, channel)

local t = string.explode(param, ",")

t[1] = tonumber(t[1])

if not isInArray(vocs, getPlayerVocation(cid)) then

doPlayerSendCancel(cid,"Sua vocação não pode usar este comando.")

elseif(param == '') then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")

elseif not(t[1]) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")

elseif isInArray(failout, t[1]) then

doPlayerSendCancel(cid,"Não pode usar estas outfit.")

elseif(t[1] <= 1 or t[1] == 135 or (t[1] > 160 and t[1] < 192) or t[1] > 351) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Such outfit does not exist.")

else

local tmp = getCreatureOutfit(cid)

tmp.lookType = t[1]

doCreatureChangeOutfit(cid, tmp)

end

return true

end

Link para o comentário
Compartilhar em outros sites

  • 0
function onSay(cid, words, param, channel)
if (getPlayerVocation(cid) == 9 or getPlayerVocation(cid) == 10 or getPlayerVocation(cid) == 11 or getPlayerVocation(cid) == 12) then
if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
return true
end
local t = string.explode(param, ",")
t[1] = tonumber(t[1])
if(not t[1]) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")
return true
end
local failout = {"73","75","302","266","45","10"} -- outfits proibidas
for i = 1, #failout do
if string.find(tostring(param), failout) then
doPlayerSendCancel(cid,"Não pode usar estas outfit.")
return TRUE
end
if(t[1] <= 1 or t[1] == 135 or (t[1] > 160 and t[1] < 192) or t[1] > 351) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Such outfit does not exist.")
return true
end
local tmp = getCreatureOutfit(cid)
tmp.lookType = t[1]
doCreatureChangeOutfit(cid, tmp)
elseif (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 7 or getPlayerVocation(cid) == 8) then
doPlayerSendCancel(cid,"You cant use this talkaction!")
end
return true
end

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...