SK
talkaction

Premium Por Param

Por SkyLigh, 19 de jan. de 2013 em Actions e Talkactions

otserv
tibia
script
10
1.1k
SkyLighS
19 de janeiro de 2013 às 22:42

Ola galerinha do xtibia , hoje to aki com um script simples e basico feita através de um pedido de um amigo . então vamos la.

 

Versão testada : 860

Créditos : Skyligh Pela Criação , Luquinha Bross Pelo Pedido .

 

Em data / talkactions / talkactions.xml adicione .

 

<talkaction words="!premium" event="script" value="premium.lua"/>

 

dps em data / talkactions / scripts / renome algum arquivo para premium.lua e adicione .

 

function onSay(cid, words, param)
local premium = {
["10"] = {days = 10, preco = 1000,},
["20"] = {days = 20, preco = 2000,},
["30"] = {days = 30, preco = 3000,}
}
local a = premium[param]
if doPlayerRemoveMoney(cid, a.preco) == TRUE then
doPlayerAddPremiumDays(cid, a.days)
doPlayerSendTextMessage(cid,22,"Parabéns Você Compro premium")
else
doPlayerSendTextMessage(cid,22,"Você não tem dinheiro suficiente")
return true
end
end

 

Dps So reinicia o ot ou da /reload talkactions

 

e falar !premium 10 que ira comprar 10 dias e assim vai .

AlexandreKGA
19 de janeiro de 2013 às 22:56

Belo script,mas para que serve essa parte:

 

["10"] = {days = 10,

SkyLighS
19 de janeiro de 2013 às 22:58

No script da tabela e o seguinte

 

["10"] e o param eu botei no talkactions.xml

 

!premium .

 

ai esse "10" ali na tabela e o param no lado "days=10" significa quantos dias vai da .

SlicerS
19 de janeiro de 2013 às 23:00

sim mais tu podia usar o proprio param.. n precisava disso ^^

e se fosse tu colocaria..

if a then

pq o player pode flar !premium 89 e dai vai da erro..

SkyLighS
19 de janeiro de 2013 às 23:02

Ja to lgd nisso

 

to pensando em colocar .

 

if a ~= nil then

SlicerS
19 de janeiro de 2013 às 23:03

tanto faz.. qlqr um dos 2 ja ta bom ^^ importante eh por essa verificaçao para impedir os possiveis erros..

SkyLighS
19 de janeiro de 2013 às 23:05

Acho melhor deixar do jeito que ta dps eu edito isso e fazo com uma lista que se eu usar com nil vai da trabalho pra quem nao entende nada .

SlicerS
19 de janeiro de 2013 às 23:06

da trabalho noq mano o.O melhor por isso doq deixar da erro no console ¬¬

SkyLighS
19 de janeiro de 2013 às 23:14

Agora vo sair jaja posto isso certo .

LuckOakeL
20 de janeiro de 2013 às 19:21

Nossa cara, nem dá vontade de ler esse script. Já leu o tutorial do Skyen sobre elegância nos códigos?

 

Além do que pra dar erro é fácil. Aconselharia até fazer o player escolher quantos dias quer, e não ficar essa coisa já programada.

 

function onSay(cid, words, param)
local day_price = 10000 -- Quantos gold coins vão custar 1 dia de premium

if not param then
	doPlayerSendCancel(cid, "Escolha quantos dias de premium você quer.") return true
elseif not doPlayerRemoveMoney(cid, day_price*param) then
	doPlayerSendCancel(cid, "Você não possui dinheiro suficiente.") return true
end

	doPlayerAddPremiumDays(cid, param)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você comprou "..param.." dias de premium por "..(day_price*param).." gold coins.")
return true
end

Editado Janeiro 23 por LuckOake