Bom script, embora tenha uma comparação inútil no inicio rsrs. Continue fazendo alguns scripts.
- Fórum
- OTServ
- Recursos
- Scripting
- Actions e Talkactions
- [Talk] Comprar Premium Por Dias
RE
[Talk] Comprar Premium Por Dias
Por Renato Ribeiro, 30 de abr. de 2011 em Actions e Talkactions
script
otserv
5
1.3k
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

30 de abril de 2011 às 21:29
info
Grupo: Conde
Registrado: 06/09/08
Posts: 544
Reputação: +87
Gênero: Masculino
Char no Tibia: Hallsiny

30 de abril de 2011 às 23:11
Comparação inútil?
Não entendi
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

01 de maio de 2011 às 00:05
É, aqui olha:
...
elseif (prm > maxdays) then
return doPlayerSendCancel(cid, "Você não pode comprar mais que "..maxdays.." dias de premium de uma só vez.")
else
...
if getPlayerPremiumDays(cid)+prm > maxdays then
return doPlayerSendCancel(cid, "Você só pode ter maxdays dias de premium, no entanto você só poderá comprar no máximo "..maxdays-getPlayerPremiumDays(cid).." dias.")
Poderiam ser substituídas por
if getPlayerPremiumDays(cid)+prm > maxdays then
return doPlayerSendCancel(cid, "Você só pode ter maxdays dias de premium, no entanto você só poderá comprar no máximo "..maxdays-getPlayerPremiumDays(cid).." dias.")
Mas deixa assim, não faz diferença.
Editado Maio 1 por Demonbholder
info
Grupo: Conde
Registrado: 06/09/08
Posts: 544
Reputação: +87
Gênero: Masculino
Char no Tibia: Hallsiny

01 de maio de 2011 às 17:07
Script atualizado!
• Efeito 'uh' ao comprar premium
• Mensagem ao comprar premium
• Efeito 'fumaça' ao dar erro


info
Grupo: Conde
Registrado: 06/09/08
Posts: 544
Reputação: +87
Gênero: Masculino
Char no Tibia: Hallsiny
Créditos no script.
Explicação: A talkaction de alguns otservers você não escolhe quantos dias de premium você deseja. E sim é algo pré-configurado no server. Então aqui neste script você escolhe quantos dias de premium você quer pagando 1k por cada dia dizendo !addpremium DIAS.
Exemplo: !addpremium 50 -- comprará 50 dias de p.a
Você não pode possuir mais que 360 dias de p.a então coloquei algumas checagens. Tal como adicionar mais de 360 dias de uma vez e também somando seus dias atuais com o tanto desejado assim se o resultado for maior que 360 aparecerá uma mensagem falando que não é possível junto ao número de dias que você poderá comprar calculado por 360 menos dias atuais.
• Crie um arquivo LUA com o nome addpremium.lua em data/talkactions/scripts e ponha:
-- Author: Renato Ribeiro -- Thanks for help: thalia, mkalo function onSay(cid, words, param, channel) local prm = tonumber(param) local maxdays = 360 local precopordia = 1000 if (prm == nil) then doSendMagicEffect(getPlayerPosition(cid), 2) return doPlayerSendCancel(cid, "Diga quantos dias deseja comprar.") elseif (prm == 0) then doSendMagicEffect(getPlayerPosition(cid), 2) return doPlayerSendCancel(cid, "Você não pode comprar 0 dias de premium.") elseif (prm > maxdays) then doSendMagicEffect(getPlayerPosition(cid), 2) return doPlayerSendCancel(cid, "Você não pode comprar mais que "..maxdays.." dias de premium de uma só vez.") else if getPlayerPremiumDays(cid)+prm > maxdays then doSendMagicEffect(getPlayerPosition(cid), 2) return doPlayerSendCancel(cid, "Você só pode ter "..maxdays.." dias de premium, no entanto você só poderá comprar no máximo "..maxdays-getPlayerPremiumDays(cid).." dias.") else if getPlayerMoney(cid) >= prm*precopordia then doSendMagicEffect(getPlayerPosition(cid), 12) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou "..prm.." dias de premium account por "..prm*precopordia.." gold coins.") doPlayerAddPremiumDays(cid, prm) doPlayerRemoveMoney(cid, prm*precopordia) return TRUE else doSendMagicEffect(getPlayerPosition(cid), 2) return doPlayerSendCancel(cid, "Você precisa de "..prm*precopordia .." gold coins para comprar "..prm.." dia(s) de premium.") end end end endVocê pode trocar o maxdays pra o máximo de dias que se pode comprar e também pode trocar o precopordia pelo preço que ele vai pagar por cada dia de premy comprada.
• Depois em data/talkactions/talkactions.xml ponha a tag em qualquer lugar:
Testado e funcionando!
Editado Maio 1 por Lordfire