Ir para conteúdo

Posts Recomendados

Olá olá galere do Ékz. Eu, na necessidade de treinar scripting, fico pensando no que fazer. Pesquisando scripts em lugares, vi um que comprava EXP, mas é daqueles simples que ninguém acha graça que é tipo:

 

Fulano: !buyexp
Fulano ganhou 15k de XP.

 

Pesquisei e não achei nenhum mais legal. Então eu fiz um que compra Exp por cada ponto. Exemplo, se você configurar pra cada Exp point ser 2 gold coins, se eu comprar 20, pagarei 40 gold coins.

 

Compreenderam? Vamos ao script.

 

talkactions.xml:

 

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

 

buyexp.lua:

 

-- Script by LuckOake

function onSay(cid, words, param)

local exp_cost = 1 -- Quando custa cada ponto de XP

local eff = 29 -- Efeito que será mandado

 

if not param or not tonumber(param) then

doPlayerSendCancel(cid, "Escreva apenas números.") return true

elseif not doPlayerRemoveMoney(cid, param*exp_cost) then

doPlayerSendCancel(cid, "Você não possui dinheiro suficiente para comprar "..param.." pontos de experiência.") return true

end

 

doPlayerAddExp(cid, param)

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você comprou "..param.." pontos de experiência por "..param*exp_cost.." gold coins.")

doSendMagicEffect(getCreaturePos(cid), eff)

return true

end

 

 

Exemplo:

 

Fulano: !buyexp 100
Você comprou 100 pontos de experiência por 100 gold coins.

 

Obrigado :D

Editado por LuckOake
Link para o comentário
https://xtibia.com/forum/topic/193993-comprando-pontos-de-exp/
Compartilhar em outros sites

Parabéns cara, depois vamos fazer alguns sistemas pra postar aqui tbm

ta progrediu mto

xD

Que isso Vodkart, muito é pouco para oque ele progrediu.

 

------------------------------------------

 

Parabéns pelo script, grande LuckOake.

 

No momento estou "devendo" 3 REP+.

 

Após paga-los com certeza o próximo será seu.

 

Ainda bem que copiei seu avatar.

 

Aehaehaheah.

 

@Dúvida

 

Como põe identação no script?

Editado por Newtonnotwen
Link para o comentário
https://xtibia.com/forum/topic/193993-comprando-pontos-de-exp/#findComment-1337396
Compartilhar em outros sites

Bacana o Sistema manin, da pra fazer algumas coisas com esse script ^^

O bacana mesmo seria não comprar por GOLDS e sim pontos, ou por items de "pontos" digamos assim..apenas uma dica :p, pois acredito que não iria tirar tanto o RPG.

Link para o comentário
https://xtibia.com/forum/topic/193993-comprando-pontos-de-exp/#findComment-1337436
Compartilhar em outros sites

Obrigado, galera, tô fazendo o possível pra evoluir e tentar virar um Vodkart da vida heaueahuaheuhae

 

@milbradt

 

Bom, ai eu teria que adaptar o script pra storage dos pontos, nada muito complexo.

Link para o comentário
https://xtibia.com/forum/topic/193993-comprando-pontos-de-exp/#findComment-1337969
Compartilhar em outros sites

Parabéns cara está avançando muito mais poderia colocar o seu script em code fica melhor e também estudar return deixa o script mais piqueno e ainda melhor de visualizar

 

 

 

 

function onSay(cid, words, param)
local maxim = 9999 -- máximo de exp por vez
   local exp_cost = 1 -- Quando custa cada ponto de XP
						 local eff = 29 -- Efeito que será mandado
			local msg_buy = "Você comprou " .. tonumber(param) .. " pontos de experiência por " .. exp_cost .. " gp's cada um ou seja " .. exp_cost * tonumber(param) .. " gp's."

  if not pay(cid, tonumber(param) * exp_cost) and not tonumber(param) or tonumber(param) > maxim then
		 doPlayerSendCancel(cid, "Você não tem dinheiro, ou não digitou número ou quis comprar muita exp o máximo permitido é " .. maxim .. " pontos.")
					   end
		 return doPlayerSendTextMessage(cid, 27, msg_buy) and doSendMagicEffect(getPlayerPosition(cid), eff) and doPlayerAddExp(cid, tonumber(param))
end

 

 

 

 

PS: Xtibia não quebra a identação olha o script ali encima lol

Editado por Skymagnum
Link para o comentário
https://xtibia.com/forum/topic/193993-comprando-pontos-de-exp/#findComment-1337997
Compartilhar em outros sites

@Skymagnum

 

Valeu, cara. Tô tentando melhorar ao máximo. Eu vou seguir seu conselho e estudar o return, mas nessa linha:

 

   if not pay(cid, tonumber(param) * exp_cost) and not tonumber(param) or tonumber(param) > maxim then
					 doPlayerSendCancel(cid, "Você não tem dinheiro, ou não digitou número ou quis comprar muita exp o máximo permitido é " .. maxim .. " pontos.")

 

Precisava especificar mais o erro, por isso não reduzi assim.

 

E sim, o XTibia quebra a identação se você usar o espaçamento com a tecla TAB. Com a barra de espaço não quebra mesmo.

 

@Newtonnotwen

 

Identação é o espaçamento que vem antes das funções para melhor organização do script.

 

Sem identação:

 

function onSay(cid, words)
if isPlayer(cid) then
doPlayerAddItem(cid, 1234, 1)
end
return true
end

 

Com identação:

 

function onSay(cid, words)
   if isPlayer(cid) then
       doPlayerAddItem(cid, 1234, 1)
   end
return true
end

 

Geralmente é usada a tecla TAB no bloco de notas ou em qualquer editor de texto que você usar, mas como o XTibia quebra a identação do TAB, o povo às vezes identa com barra de espaço mesmo.

Editado por LuckOake
Link para o comentário
https://xtibia.com/forum/topic/193993-comprando-pontos-de-exp/#findComment-1338118
Compartilhar em outros sites

  • 3 months later...
  • 4 weeks later...
×
×
  • Criar Novo...