Adriez 6 Postado Março 18, 2016 Share Postado Março 18, 2016 fala galera bom dia, gostaria de saber se tem como eu bloquear um comando de talkaction por vocação ?? Link para o comentário Compartilhar em outros sites More sharing options...
0 Furabio 257 Postado Março 19, 2016 Share Postado Março 19, 2016 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 MovidoEste tópico foi movido de "OTServ → Scripting → Downloads Scripts → Actions, talkactions e moveevents"para "OTServ → Scripting → Suporte Scripting". Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriez 6 Postado Março 25, 2016 Autor Share Postado Março 25, 2016 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 More sharing options...
0 Danihcv 335 Postado Março 25, 2016 Share Postado Março 25, 2016 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 More sharing options...
0 Furabio 257 Postado Março 25, 2016 Share Postado Março 25, 2016 ^^ 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 More sharing options...
0 Danihcv 335 Postado Março 25, 2016 Share Postado Março 25, 2016 ^^ 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 More sharing options...
0 Furabio 257 Postado Março 25, 2016 Share Postado Março 25, 2016 Mas ainda seria necessário acrescentar o return false, ne isso? Não, pois o doPlayerSendCancel ja retorna false. Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriez 6 Postado Março 26, 2016 Autor Share Postado Março 26, 2016 eu dou o comando acontece nada, nem erro no console nem nada como se o script não existisse Link para o comentário Compartilhar em outros sites More sharing options...
0 Danihcv 335 Postado Março 26, 2016 Share Postado Março 26, 2016 Mande o script original. Sem nenhuma edição (de uma forma que ele esteja funcionando) Link para o comentário Compartilhar em outros sites More sharing options...
0 Adriez 6 Postado Março 28, 2016 Autor Share Postado Março 28, 2016 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 More sharing options...
0 Danihcv 335 Postado Março 28, 2016 Share Postado Março 28, 2016 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 More sharing options...
0 Adriez 6 Postado Março 28, 2016 Autor Share Postado Março 28, 2016 fala sua vocação não pode usar, mais consegue usar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danihcv 335 Postado Março 28, 2016 Share Postado Março 28, 2016 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 More sharing options...
0 Adriez 6 Postado Março 29, 2016 Autor Share Postado Março 29, 2016 agora ta assim a classe q não pode usar não usa,mais a q pode usa e não muda outfit e nem da erro Link para o comentário Compartilhar em outros sites More sharing options...
0 Poccnn 385 Postado Março 29, 2016 Share Postado Março 29, 2016 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 More sharing options...
0 miguel223 98 Postado Março 29, 2016 Share Postado Março 29, 2016 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 More sharing options...
Pergunta
Adriez 6
fala galera bom dia, gostaria de saber se tem como eu bloquear um comando de talkaction por vocação ??
Link para o comentário
Compartilhar em outros sites
16 respostass a esta questão
Posts Recomendados