RO
talkaction

Premium Específico!

Por Roksas, 10 de abr. de 2013 em Actions e Talkactions

script
12
1.7k
RoksasR
10 de abril de 2013 às 15:33

Premium Específico!

 

Iaae galera, como vão? Hoje vim trazer para vocês o meu "Premium Específico", oque ele faz?

 

O Premium Específico, te permite usar o famoso comando:

/buypremium

 

Só que comprando quantos days você quiser, não é obrigatório os 30, usando o comando:

 

/buypremium nome, days

 

No lugar do nome você pode por o seu nome, ou de um amigo, podendo dar de presente para ele os days :)

 

Vamos lá?

 

Vá em data/talkactions/scripts, crie um arquivo chamado premium.lua e cole isso dentro:

 

 

local config = {
money = 10000, -- Price per day bought
}

function onSay(cid, words, param)

if(words == "/buypremium") then  
local t = string.explode(param, ",")  
local player = getPlayerByNameWildcard(t[1])

if(not player)then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.")
end

if(param == '') then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true
end

if not tonumber(t[2]) then  
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true
end  

if doPlayerRemoveMoney(cid, tonumber(t[2])*config.money) then
doPlayerAddPremiumDays(player, tonumber(t[2]))
doPlayerSendTextMessage(player, 22, ""..getCreatureName(cid).." added "..t[2].." days of Premium Account, removed "..tonumber(t[2]*config.money).."gps.")
else
doPlayerSendTextMessage(cid, 22, "You need "..tonumber(t[2]*config.money).."gps to buy "..t[2].." days of Premium Account!")
end
return true
end
end

 

 

Só arrumar quanto custa cada day nessa linha:

money = 10000

 

Agora no arquivo talkactions.xml adicione essa tag:

 

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

 

Prontinho galera, espero que se divirtam :)

 

 

2vwi8gh.jpg

 

/buypremium [ADM] Roksas, 30

Editado Maio 12 por Roksas

WebTutoriaisW
10 de abril de 2013 às 15:53

Eu Estava Precisando mesmo Cara , Mereceu REP + .

RoksasR
10 de abril de 2013 às 18:17

Não há de quê :)

Faça bom uso!

drakylucasD
10 de abril de 2013 às 21:52

geralmente vejo seus scripts e a maioria não são bem feitos (estruturamente falando) em lua, mas esse ficou legal cara..

parabens..

 

ta certinha a estrutura do script, nada no lugar errado ^^

 

só uma dica, esse if (if(words == "/buypremium") then) é desnecessario, pois você tem que adicionar no talkactions.xml e ele só irá funcionar caso digite isso, ou seja, nao precisa verificar no script ^^

 

vou dar rep+ pq a ideia foi legalzinha, simples de ser feito porem muito util

 

PS: eu te critico pra vc melhorar, se todo mundo sempre falar que seus scripts são excelentes, você vai sempre continuar fazendo errado.. recebendo dicas, talvez, faça que quando você for fazer algo parecido dinovo, saia menos erros e com qualidade superior

Editado Abril 10 por DrakyLucas

SlicerS
11 de abril de 2013 às 12:01

/\ ele ta seguindo a ideia loka do sky soh pode..

 

sem fla q isso..

if(param == '') then
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true
end

 

geralemente vem antes ate do string.explode neh.. ;/

RoksasR
11 de abril de 2013 às 12:03

Obrigado Draky, estou procurando sim sempre melhorar, aprendendo a lógica do return, usando funções novas, espero obter resultados, rsrs.

 

 

@Slicer, nunca tentei antes da varíavel do string.explode, mas do jeito que fiz funcionou, por isso acabei nem tentando de outras formas :)

 

Caso eu tenha melhores ideias, procurarei melhorar o código!

Editado Abril 11 por Roksas

SkymagnumS
11 de abril de 2013 às 13:56

A ideia é bacana, mas você ainda usa o OTScript?.

RoksasR
11 de abril de 2013 às 14:05

Sky, eu uso para ver aquelas informações do CONDITIONS.LUA, DATABASE.LUA da pasta LIB, para mim é um simples atalho.

 

Mas passei a "identar" com o Notepad++

SlicerS
11 de abril de 2013 às 15:01

otscript owna mano... negocio eh fazer a indentaçao 'na mao' ms..

 

@rok

o negocio eh q... n adianta de nd tu por aquela verificaçao depois do explode u,U pq se o param for igual a '' o explode vai retornar uma tabela vazia, se n me engano... essa verificaçao eh feita antes para n usar o explode atoa... ;p

mas concerteza n vai da nenhum problema por depois, mas por depois e n por da na ms...

drakylucasD
11 de abril de 2013 às 15:02

Slicer, é verdade, nao tinha reparado nisso kkk

 

ee Skymagnum, o que tem contra o otscript live? o debugger dele quebra um puta galho, fora que ja tem a maioria das funções com parametros adicionados, assim se vc só lembrar parte do nome ja da pra achar a funçao.

a identação dele até zoa um pouco, mas não é grande coisa, só zoa se você misturar espaços com tab

SkymagnumS
11 de abril de 2013 às 15:25

As funções do OTScript quebra um galho mesmo, mas ele está zuado agora eu uso Notepad++ e Scite(as vezes).

SlicerS
11 de abril de 2013 às 23:33

eu uso o Scite pra .xml e ate para .txt kkk mas tb prefiro a comodidade do otscript '--'