Postado Março 30, 2014 11 anos Eu tentei achar algo parecido no fórum, mas nada resolveu o meu problema. Eu não sei se eu que sou muito leigo no assunto, ou se estou fazendo algo de errado, pois quando tento criar uma quest simples por level em meu servidor PDA, ela não funciona e ainda da esse erro no distro: [30/03/2014 16:51:38] [Error - LuaScriptInterface::loadFile] data/actions/scripts/box1.lua:7: ambiguous syntax (function call x new statement) near '(' [30/03/2014 16:51:38] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/box1.lua) [30/03/2014 16:51:38] data/actions/scripts/box1.lua:7: ambiguous syntax (function call x new statement) near '(' Alguém sabe me dizer, ou me indicar um tópico funciona para que eu consiga criar essa quest? Eu só quero algo simples, tipo: O player de tal level, pega tantos itens ali dentro e pronto, mas eu não consigo ! :'( Estou usando esse script: function onUse(cid, item, frompos, item2, topos) if item.uid == 10000 then queststatus = getPlayerStorageValue(cid,9000) if queststatus == -1 then if GetPlayerLevel >= 20 then doPlayerSendTextMessage(cid,22,"Você recebeu sua box 1!") (0, 255, 255)"]doPlayerAddItem(cid,2149,10) setPlayerStorageValue(cid,11638,1) else doPlayerSendTextMessage(cid,22,"Você já pegou a sua box 1.") end end end Com essa tag no Actions.xml: <action uniqueid="10000" event="script" value="box1.lua"/> Por favor, se alguém puder me ajudar em que eu estou errando e me auxiliar para que eu faça certo, agradeço desde já. Muito obrigado!
Postado Março 30, 2014 11 anos function onUse(cid, item, frompos, item2, topos) local queststatus = getPlayerStorageValue(cid,9000) if item.uid == 10000 and queststatus == -1 then if getPlayerLevel(cid) >= 20 then doPlayerSendTextMessage(cid,22,"Você recebeu sua box 1!") doPlayerAddItem(cid,2149,10) setPlayerStorageValue(cid,11638,1) end else doPlayerSendTextMessage(cid,22,"Você já pegou a sua box 1.") end end Tenta assim, se não der avise
Postado Março 30, 2014 11 anos Autor Opa Artur, agora funcinou, mas o player pode pegar quantas vezes quiser. Você poderia me dizer o que mais eu fiz de errado ?
Postado Março 30, 2014 11 anos o problema desse script é que ele checa um storage e dá outro na hora de pegar o item, fazendo assim com que você sempre possa pegar o item function onUse(cid, item, frompos, item2, topos) local queststatus = getPlayerStorageValue(cid,11638) if item.uid == 10000 and queststatus == -1 then if getPlayerLevel(cid) >= 20 then doPlayerSendTextMessage(cid,22,"Você recebeu sua box 1!") doPlayerAddItem(cid,2149,10) setPlayerStorageValue(cid,11638,1) end else doPlayerSendTextMessage(cid,22,"Você já pegou a sua box 1.") end end Isso tem que ter o mesmo storage que isso: local queststatus = getPlayerStorageValue(cid,11638) setPlayerStorageValue(cid,11638,1) Explicando melhor: Quando o player vai abrir o baú ele checa o storage 11638. Caso o queststatus == -1, prossegue o script que o cara faz a quest. Ao fazer a quest o storage passa a valer "1" então se o player tentar fazer de novo essa quest vai retornar o erro porque o questatus não tá mais valendo -1. Mas pra fazer isso os dois storages tem que ser iguais Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Março 30, 2014 11 anos Autor Como no caso o storage está com o ID do item que eu desejo usar, eu poderia trocar ela por 20000 por exemplo ? No caso estou utilizando numeros grandes para que eu não me perca ou use algum repetido ! Mas o que estava de errado eu já entendi xWhitewolf, muito obrigado!
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.