Ir para conteúdo
  • 0

Problema talkaction


jvcasarin

Pergunta

Bom galera, no meu server, tem a talkaction !promotion, que ao usar, o player é promovido, como exemplo: o paladin usa o comando, ai ele vira royal paladin entendeu?

Então, eu testei vários scripts de promotion, mas nenhum funciona devidamente no server, ele chegam a promover o player, mas se o mesmo deslogar ou ser morto, ele perde o promotion...

Ja teste vários scripts, e o meu atural script é:

 

function onSay(cid, words, param)

local vocs = { [1] = 5, -- master sorcerer

[2] = 6, -- elder druid

[3] = 7, -- royal paladin

[4] = 8, -- elite knight

}

local newvoc = vocs[getPlayerVocation(cid)]
local price = 20000

if getPlayerPremiumDays(cid) > 0 then

if getPlayerMoney(cid) >= price then

if vocs[getPlayerVocation(cid)] then

doPlayerSetVocation(cid,newvoc)
doPlayerRemoveMoney(cid, price)
doPlayerSendCancel(cid, "Parabens voce foi promovido.")
else

doPlayerSendCancel(cid, "Voce nao pode ser promovido.")
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
end

else

doPlayerSendCancel(cid, "Voce nao tem dinheiro suficiente.")
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
end

else

doPlayerSendCancel(cid, "Voce precisa ser premium para usar esse comando.")
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
end

return true

end

 

O que pode ocasionar o problema? Ele simplesmente não salva a vocation nova do player.. ME AJUDEM POR FAVOR!!

USO TFS 0.4

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

ta faltando um s em newsvoc.. só esse o problema.
muda
doPlayerSetVocation(cid,newvoc)
pra
doPlayerSetVocation(cid,newsvoc)

no login.lua.

Alem disso, no TFS 1.0 pra cima, o login.lua tem isso:

local vocation = player:getVocation()
local promotion = vocation:getPromotion()
if player:isPremium() then
local value = player:getStorageValue(STORAGEVALUE_PROMOTION)
if not promotion and value ~= 1 then
player:setStorageValue(STORAGEVALUE_PROMOTION, 1)
elseif value == 1 then
player:setVocation(promotion)
end
elseif not promotion then
player:setVocation(vocation:getDemotion())
end
 


caso tenha algo semelhante no seu login.lua, apague para nao dar conflito entre as promotions.
Link para o comentário
Compartilhar em outros sites

  • 0

eu uso 0.4...

 

 

Vou testar, eu edito aqui para mais infos..

 

 

Edit: troquei "newsvoc" só q ao usar o comando, o player ja fica sem vocation, mesmo sem morrer nem relogar

 

Meu login.lua deixei:

local newsvoc = getPlayerStorageValue(cid, 21323)
if newsvoc > 4 then
doPlayerSetVocation(cid,newvoc)
end
Editado por Sekk
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...