Postado Janeiro 13, 2017 8 anos Olá, tenho um script que faz abrir meu battlefield usando o comando " /battlefield 10" criando um teleporte numa posição específica, funciona perfeitamente. Bem, queria adicionar mais uma função nesse script, gostaria que quando eu usasse o comando /battlefield 10. Criasse o teleporte normalmente mas também adicionasse uma actionid no tile onde o teleporte aparecer, e essa actionid seria em parametro. Exemplo "/battlefield 10, 12005" o script adicionasse a actionid 12005. Se no caso o ultimo parametro fosse 12010, o script adicionaria ao tile a actionid 12010. A posição onde eu gostaria que fosse adicionado a actionid é essa: [X: 25475] [Y: 25129] [Z: 7], o tile é itemid: 11062 Meu script de talkactions do battlefield. function onSay(cid, words, param) if getGlobalStorageValue(battlefield.storage) ~= -1 then doPlayerSendCancel(cid, "The event is already open.") return true elseif not tonumber(param) or param % 2 ~= 0 then doPlayerSendCancel(cid, "You must choose an even number.") return true end doBroadcastMessage("The event BattleField was opened and We are waiting "..param.." Players! Team divided into "..((param)/2).." VS "..((param)/2)) setGlobalStorageValue(battlefield.storage, tonumber(param)) local tp = doCreateItem(1387, 1, battlefield.tpPos) doItemSetAttribute(tp, "aid", 45001) return true end Esse script roda no meu ot 8.60
Postado Janeiro 13, 2017 8 anos @oloku5, o propio script já está falando como fazer isso. doItemSetAttribute(tp, "aid", 45001) o "aid" é o argumento para dizer que é um actionid. tp é o argumento do item que recebera o action, no caso o teleporte a ser criado, e o 45001 é o value a ser setado.
Postado Janeiro 14, 2017 8 anos Autor @KotZletY Sim, o script adiciona uma actionid ao teleporte itemid 1387, Mas gostaria que adicionasse também uma actionid ao tile que fica em baixo desse teleporte, e essa actionid fosse escolhida por mim ao fazer o comando (/battlefield 10, "actionid") entende? Editado Janeiro 14, 2017 8 anos por oloku5 (veja o histórico de edições)
Postado Janeiro 14, 2017 8 anos @oloku5 compreendo, poderia adicionar para você escolher o action, mais se por acaso um staff seu, ou você mesmo se esquecer do numero da action, ou então simplesmente colocar errado como por ex: /battlefield 10, 122s ou esquecer o action, vai dar erro, mais o script simplesmente vai fazer o que ele foi feito pra fazer, com erro ou não: então use este, ele tem um check para caso esqueçam alguma coisa na hora de realizar o comando: Spoiler function onSay(cid, words, param) param = param:explode(",") if(getStorage(battlefield.storage) ~= -1) then doPlayerSendCancel(cid, "The event is already open.") return true elseif(not tonumber(param[1]) or (param[1] % 2) ~= 0) then doPlayerSendCancel(cid, "You must choose an even number.") return true elseif(not tonumber(param[2])) then doPlayerSendCancel(cid, "You must choose a actionid.") return true end param[1] = tonumber(param[1]) doBroadcastMessage("The event BattleField was opened and We are waiting " .. param[1] .. " Players! Team divided into " .. (param[1]/2) .. " VS " .. (param[1]/2) .. ".") setStorage(battlefield.storage, param[1]) local tp = doCreateItem(1387, 1, battlefield.tpPos) doItemSetAttribute(tp, "aid", param[2]) return true end
Postado Janeiro 14, 2017 8 anos Para adicionar no tile é só adicionar: local pos = battlefield.tpPos; pos.stackpos = 0 local tile = getThingFromPos(pos) if(tile.uid ~= 0) then doItemSetAttribute(tile.uid, "aid", param[2]) end
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.