Ir para conteúdo

Featured Replies

Postado

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

  • Respostas 22
  • Visualizações 1.7k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • aguenta ai que jaja te mando, vou testar no meu server  

  • 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)

  • function onUse(player, item) local townId = 4 local townName = Town(townId):getName() if player:getTown():getId() == townId then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você já é morado

Postado
  • 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
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
  • 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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo