Postado Junho 25, 2018 7 anos pronto deu certo Citar function onUse(cid, item, frompos, item2, topos) local config = { townid = 1, -- change to your own storage value } if isPlayer(cid) == TRUE then doPlayerSendTextMessage(cid,22,"Agora voce e morador da cidade" ) -------- msg que o player ira receber doPlayerSetTown(cid,townid) end return TRUE end Como disse, não sou programador, apenas entendo um pouco da linguagem lua... kkkk Obrigado irmão, vou prestar atenção no if nas próximas vezes . Problema e que criei o script sem testar, mas fazendo aqui no meu servidor e testando consegui fazer corretamente. @Skydrowz
Postado Junho 25, 2018 7 anos Autor 6 minutos atrás, Skydrowz disse: function onUse(cid, item, frompos, item2, topos) local townid = 4 ---- id da town if isPlayer(cid) == TRUE then doPlayerSendTextMessage(cid,22,"Agora voce e morador da cidade " .. getTownName(townId) .. ".") -------- msg que o player ira receber doPlayerSetTown(cid,townid) return true end Bom, vamos lá. Sobre esse código. O script tem callback de variáveis que nunca vão ser usadas, então podem ser removidas, ficando assim: Ah, e o erro aqui é que o @Cricket não fechou o if. function onUse(cid, item) local townid = 4 ---- id da town if isPlayer(cid) == TRUE then doPlayerSendTextMessage(cid,22,"Agora voce e morador da cidade " .. getTownName(townId) .. ".") -------- msg que o player ira receber doPlayerSetTown(cid,townid) end return true end Não sei qual TFS você está usando, mas vou adaptar o código ao meu TFS e corrigir os erros que esse cara cometeu. function onUse(player, item) local townId = 4 local townName = town:getName(townId) if player:getTown() == townId then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você já é morador desta cidade.") return false else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Parabéns! Você agora é morador de " .. townName .. ".") player:setTown(townId) player:sendMagicEffect(CONST_ME_YELLOW_RINGS) end return true end Apenas corrigi os erros e acrescentei algumas coisas, mas se você pretende usar o mesmo script em outras estátuas, recomendo que use uma tabela. Caso contrário, você vai ter que criar vários scripts com o mesmo código, apenas mudando o townId. Boa noite, Sky! Maravilha! Como seria essa tabela? A principio são seis cidades. 4 minutos atrás, Cricket disse: pronto deu certo Opa, agora apareceu a mensagem em verde, vou testar e ver se está tudo ok. MUITO obrigado!
Postado Junho 25, 2018 7 anos Agora, Maste disse: Boa noite, Sky! Maravilha! Como seria essa tabela? A principio são seis cidades. Opa, agora apareceu a mensagem em verde, vou testar e ver se está tudo ok. MUITO obrigado! local config = { estatuas = { [1] = {townId = X, positionEstatua = Position(X), townName = "X"}, [2] = {townId = Y, positionEstatua = Position(Y), townName = "Y"} } } A ideia é fazer o código por posições. Se a estátua estiver na posição X, significa que aquela estátua é a estátua de número 1 na Tabela. Deu pra entender? Master yourself, master the enemy.
Postado Junho 25, 2018 7 anos Autor 2 minutos atrás, Skydrowz disse: local config = { estatuas = { [1] = {townId = X, positionEstatua = Position(X), townName = "X"}, [2] = {townId = Y, positionEstatua = Position(Y), townName = "Y"} } } A ideia é fazer o código por posições. Se a estátua estiver na posição X, significa que aquela estátua é a estátua de número 1 na Tabela. Deu pra entender? Testando o seu apareceu isso: Lua Script Error: [Action Interface] data/actions/scripts/morador.lua:onUse data/actions/scripts/morador.lua:4: attempt to index global 'town' (a nil value) stack traceback: [C]: in function '__index' data/actions/scripts/morador.lua:4: in function <data/actions/scripts/morador.lua:1> Essa procedimento de tabela seria para não criar vários arquivos 'iguais'? Esse local config pode ser colocar em qualquer lugar do script?
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.