Ir para conteúdo
  • Cadastre-se

(Resolvido)Adaptar um script a outro


Ir para solução Resolvido por Qwizer,

Posts Recomendados

  • Moderador

Alguém consegue fazer com que uma função de um script funcione em outro? Tipo, eu tenho um script de um item que assim que você da use nele, ele adiciona x dias de premium account, e também tenho um sistema que funciona na base de points, esse sistema é de quem for VIP ganha 20% a mais de exp, e como eu estou usando esse item que adiciona os dias na conta do player o sistema que da os 20% não funciona. Então quem puder modificar o script meu obrigado desde já, rep+ pra quem ajudar.

 

Script que adiciona x dias de premium account

Spoiler

function onUse(cid, item, frompos, item2, topos)
local config={
dias="15"
}
doPlayerAddPremiumDays(cid, config.dias)
doPlayerSendTextMessage(cid,22,"Voce ganhou 15 dias de premium account.")
doRemoveItem(item.uid,1) 
return TRUE
end

Script que da 20% a mais de exp para quem é VIP <Fazer com que a função do item a cima /\ se aplique a esse \/>

Spoiler

function onLogin(cid)

local rate = 1.20 -- 20%
local config = {
vip = "Você tem "..((rate - 1)*100).."% de exp a mais agora!",
notvip = "Tornesse vip e ganhe "..((rate - 1)*100).."% a mais de experiencia!",
}

if not isPlayer(cid) then return true end
if vip.hasVip(cid) == FALSE then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, config.notvip)
else
doPlayerSetExperienceRate(cid, rate)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_GREEN, config.vip)
end
return TRUE
end

 

OBS: Eu recebi ajuda nesse tipo de script pelo discord do Tibia King, mais não tive muito sucesso, aos que me ajudaram @Emillysz @VitorSubhi @tataboy67 o código que me mandaram para mudar, ele não volta a mensagem de quando você estar VIP, ele não fala que por causa de você ser um jogador VIP você ganha 20% de exp.

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

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites

troca vip.hasVip(cid) == FALSE por  isPremium(cid) == FALSE

Link para o post
Compartilhar em outros sites
  • Moderador
23 horas atrás, Qwizer disse:

troca vip.hasVip(cid) == FALSE por  isPremium(cid) == FALSE

 

Mesma coisa :( A mensagem que mostra de quando você não é vip aparece normal, menos a de quando você é VIP e ganha os 20%

image.thumb.png.bc33c8ca310918e9b66150aeda9e2df0.png

 

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

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites

O script do Item não está dando Vip e sim Premium

doPlayerAddPremiumDays(cid, config.dias)

 

E o script da Exp está checando se o player é Vip

if vip.hasVip(cid) == FALSE then

 

Você precisa fazer com que o Player receba Vip ao dar use no Item.

 

Troque:doPlayerAddPremiumDays(cid, config.dias)

Por: doPlayerAddVipDays(cid, config.dias)

 

Se não der certo, tente usar um sistema de Vip por Storage que é mais simples

 

 

 

 

Link para o post
Compartilhar em outros sites
  • Moderador
11 horas atrás, Joaovettor disse:

O script do Item não está dando Vip e sim Premium

doPlayerAddPremiumDays(cid, config.dias)

 

E o script da Exp está checando se o player é Vip

if vip.hasVip(cid) == FALSE then

 

Você precisa fazer com que o Player receba Vip ao dar use no Item.

 

Troque:doPlayerAddPremiumDays(cid, config.dias)

Por: doPlayerAddVipDays(cid, config.dias)

 

Se não der certo, tente usar um sistema de Vip por Storage que é mais simples

 

 

 

 

 

Então man, eu falei que o item da x dias de premium account e não que ele da a VIP em si, o script do item da premium e o script dos 20% de exp funciona na base de VIP se você não conseguiu ler o texto da forma que ele foi escrito, so lamento...

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites
1 hora atrás, Phineasz disse:

Então man, eu falei que o item da x dias de premium account e não que ele da a VIP em si, o script do item da premium e o script dos 20% de exp funciona na base de VIP se você não conseguiu ler o texto da forma que ele foi escrito, so lamento...

 

function onLogin(cid)

local rate = 1.20 -- 20%
local config = {
vip = "Você tem "..((rate - 1)*100).."% de exp a mais agora!",
notvip = "Tornesse vip e ganhe "..((rate - 1)*100).."% a mais de experiencia!",
}

if not isPlayer(cid) then return true end
if getPlayerPremiumDays(cid) <= 0 then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, config.notvip)
else
doPlayerSetExperienceRate(cid, rate)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_GREEN, config.vip)
end
return TRUE
end

Link para o post
Compartilhar em outros sites
  • Moderador

@Joaovettor @Qwizer Certo, o script está funcionando, mais ele não fala que você ganhou os 20% de exp

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites
  • Solução
12 horas atrás, Phineasz disse:

@Joaovettor @Qwizer Certo, o script está funcionando, mais ele não fala que você ganhou os 20% de exp

 

muda o MESSAGE_STATUS_CONSOLE_GREEN pra RED talves seja a cor, por o script esta tudo normal.

remove tbm o if not isPlayer(cid) then return true end

Link para o post
Compartilhar em outros sites
  • Moderador

@Qwizer Funcionou, obrigado 

Meu Curso sobre Programação para OTServer

Programando OTServer

 

Peça o seu script! Entre agora mesmo no grupo

Developing

 

Conteúdos:

 

Discord: Belmont#7352

Não esqueça do REP+ :)     

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo