Ir para conteúdo

​[AJUDA] Criação de item para adicionar VIP, Adquirido na Store do jogo com Tibia Coin

Featured Replies

Postado
  • Solução

.Qual servidor ou website você utiliza como base? 

OT -> Canary 1.3.0 / Cliente 12.86

Qual o motivo deste tópico? 

 

Olá pessoal, antes de tudo desculpem se eu estiver postando na parte errada do forum (minha primeira postagem aqui) . Estou voltando a lidar com o Otserver e me deparei com alguns "bugs" no meu sistema VIP quem puder ajudar agradeço  pois essa versão nova não usa muito xml, somente lua

 

OT -> Canary 1.3.0 / Cliente 12.86
TFS -> acredito que seja 1.3 ou 1.4 (sinceramente não achei onde ver isso nesta nova versão do server)

 

Sistema VIP que uso. (não vou colocar link mas encontrei em outro site).:

 

no MySQL ele usa colunas viplastday e vipdays
na pasta lib -> vip_system.lua e altera lib.lua
em custom -> vip_scroll.lua, vip_godTalkaction.lua e vip_playerTalkaction.lua
em data/scripts/creaturescripts/others -> login.lua
em events/scriptd -> altera o player.lua e o monster.lua

 

O que ocorre.:

Meu problema esta no  vip_scroll.lua (segue acima), se eu deixo o vip:id(16101) ele da o erro do quote abaixo,  se eu coloco o vip:id(13539)ele roda tranquilo só que ao adicionar o item no store do jogo ou até mesmo criar com o adm simplesmente não funciona.

 

Como gostaria que funciona-se.:

No caso quero trocar os itens "premium" do store para VIP´s (30, 60, 90, 180 dias) comprados com a tibiacoin (assim como está atualmente os premium days oficiais)

obs.: no script acima caso eu coloque a id do item usado para o premium la no gamestore.lua (ex.: 3030)  tmb da o erro de id duplicado

 

Desde já agradeço a ajuda 
Gratidão

 

----------------------------------------EDITED ------------------------------------------------------

 

Resolvido, mas não da maneira que eu queria usando o vip_scroll.lua , a solução que encontrei foi alterar o init.lua criando uma nova função gamestore process purchase para adicionar na tabela vipdays o valor que eu colocar na id do produto la na gamestore.lua, 

Agradeço a todos que estiveram aqui pra tentar ajudar.

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

[warning] [Actions::registerLuaItemEvent] - Duplicate registered item with id: 16101 in range from id: 16101, to id: 16101

 

Você tem o código disponível? Se tiver publique-o aqui: 

local days = 30 --dias que da de vip

local vip = Action()
function vip.onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if Tile(player:getPosition()):hasFlag(TILESTATE_PROTECTIONZONE) then
        player:addVipDays(days)
        item:remove(1)
        player:remove() -- need kick player to add functions (outfit, mounts, and exp)
    else
        player:sendCancelMessage("You can't use this when you're in a fight and in protection zone.")
        player:getPosition():sendMagicEffect(CONST_ME_POFF)
    end
    return true
end


vip:id(16101) -- id vip scroll
vip:register()

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Editado por cssiqueira
Resolvido (veja o histórico de edições)

Resolvido por cssiqueira

Ir para solução
Postado

Eu n entendi bem oque você quer fazer, mas respondendo a uma das dúvidas pontudas (duplicate action):

O id duplicado sempre acontece quando 2 scripts distintos estiverem sendo executados em um mesmo item, ex: o id 16101 está sendo executado no script de VIP e nesse muck remover. E para corrigir isso é só remover a action em algum script.

 

Observação: Esse ID (16101) está incorretamente setado no scripts muck_remover, como mostra no link: (O ID correto do muck remover é 18395, portanto basta vc corrigir isso e usar o outro ID em seu script).

https://github.com/opentibiabr/otservbr-global/blob/main/data/scripts/actions/other/muck_remover.lua#L40

Postado
  • Autor
2 horas atrás, Toruk disse:

Eu n entendi bem oque você quer fazer, mas respondendo a uma das dúvidas pontudas (duplicate action):

O id duplicado sempre acontece quando 2 scripts distintos estiverem sendo executados em um mesmo item, ex: o id 16101 está sendo executado no script de VIP e nesse muck remover. E para corrigir isso é só remover a action em algum script.

 

Observação: Esse ID (16101) está incorretamente setado no scripts muck_remover, como mostra no link: (O ID correto do muck remover é 18395, portanto basta vc corrigir isso e usar o outro ID em seu script).

https://github.com/opentibiabr/otservbr-global/blob/main/data/scripts/actions/other/muck_remover.lua#L40

Olá, antes de tudo meu muito obrigado por ter a paciência de me ajudar, então eu troquei o codigo no vip_scroll.lua  pelo sugerido , embora o duplicate action erro tenha sumido  não adiantou (como visto nas imagens , o Item aparece no Store , compro, mas ele não entra na "store inbox" e nem na bag, e ao checar na database pelo phpmyadmin na seção vipdays não consta nada somente 0. Se eu coloco 30 manualmente o vip funciona tranquilo , o problema esta no vip_scroll.lua que não insere os 30 dias na database , como citei possivelmente por falta de conhecimento meu nesse sistema novo 

 

 

novip.jpg

novip1.jpg

novip2.jpg

Postado

Primeiramente, qual o motivo de usar o ID de uma parede na store? Se for isso, logicamente não irá ser adicionado no store inbox. Vc deve escolher um item que tenha a propriedade móvel, só procurar em data/items/items.xml, um exemplo é o premium scroll (id: 14758), que é um item sem funcionalidade atualmente e pode ser usadp para o vip.

 

Em relação a action, não tem como eu saber oque está ocorrendo errado. Como vc pode ver no script, tem uma função custom "player:addVipDays(days)", portanto você deverá postar essa function para que eu consiga ver oque está errado e talvez dar uma ideia em como resolver.

Editado por Toruk
att (veja o histórico de edições)

Postado
  • Autor
30 minutos atrás, Toruk disse:

Primeiramente, qual o motivo de usar o ID de uma parede na store? Se for isso, logicamente não irá ser adicionado no store inbox. Vc deve escolher um item que tenha a propriedade móvel, só procurar em data/items/items.xml, um exemplo é o premium scroll (id: 14758), que é um item sem funcionalidade atualmente e pode ser usadp para o vip.

 

Em relação a action, não tem como eu saber oque está ocorrendo errado. Como vc pode ver no script, tem uma função custom "player:addVipDays(days)", portanto você deverá postar essa function para que eu consiga ver oque está errado e talvez dar uma ideia em como resolver.

Sobre a parede eu apenas coloquei o codigo q vc sugeriu como exemplo kk mas tranquilo, sobre o vip_scroll.lua o sistema está presente em outro forum e não quero colocar o link aqui, se vc permitir (e não for contra as regras) posso enviar por privado o link pois ele usa vários arquivos lua lib.lua, vip_system.lua, vip_godTalkaction.lua, vip_playerTalkaction.lua alem de alterações no login, monster, player lua

Editado por cssiqueira (veja o histórico de edições)

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo