Ir para conteúdo

Posts Recomendados

Olá a todos!

Estou aqui para mostrar um script aonde será bem útil a servidores de Pokémon.

Não é nada mais do quem um SHOP in-game.

 

Como assim?

Com estes 3 comandos será possível comprar Revives, Hyper Potions, Ultra Balls, trocar de nome pelo jogo e até mesmo comprar o Ditto.

Detalhe o tipo de moeda que utilizei foi Small Diamonds, caso queria modificar leia passo a passo.

Como se percebe, a maioria de servidores hoje em dia vende apenas estes items e outros, mais esses são os padrões.

Chega de enrolação e vamos direto ao script.

 

 

 

 

 

Changename Script:

Primeiramente crie um arquivo em otserv/talkactions/scripts chamado changename.lua e adicione isso em seu arquivo.

(Este script serve para modificar o nome do jogador pelo jogo).

 

-- Creditos a Doughell

function onSay(cid, words, param)

local maxLen = 15 -- tamanho maximo do nome

local itemid = 2145 ------ Numero do Item que será removido

local proibido = [{"!","@","*"}-- simbolos proibidos

 

 

for i = 1, #proibido do

if string.find(tostring(param), proibido) then

doPlayerSendCancel(cid,"[AUTO SHOP] You can not use symbols in their name.")

return TRUE

end

end

 

if tostring(param) == "" then -- checkar se não é nome vazio

doPlayerSendCancel(cid, "[AUTO SHOP] Choose a name to make the change of his surname.")

return TRUE

end

 

if string.len(tostring(param)) > maxLen then

doPlayerSendCancel(cid, "[AUTO SHOP] You can use a maximum of " .. maxLen .. " letters.")

return TRUE

end

 

if not getTilePzInfo(getCreaturePosition(cid)) then

doPlayerSendCancel(cid,"[AUTO SHOP] Can only be used in Protection Zone.")

return TRUE

end

 

if getPlayerItemCount(cid, itemid) >= 1 then

doPlayerRemoveItem(cid, itemid, 5)

db.executeQuery("UPDATE `players` SET `name` = '"..param.."' WHERE `id` = "..getPlayerGUID(cid)..";")

doPlayerSendTextMessage(cid,25,"[AUTO SHOP] You will be logged out in 5 seconds for the changes to be made.")

addEvent(doRemoveCreature, 5*1000, cid, true)

else

doPlayerSendCancel(cid,"[AUTO SHOP] You don't have " .. getItemNameById(itemid) .. " to make the purchase of changename.")

end

return TRUE

end

Agora em talkactions.xml adicione em Players:

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

-- Explicação do Script (Changename):

 

local maxLen = 15 -- tamanho maximo do nome

O número 15 e a quantidade máxima de caracteres que poderá ser utilizado na troca de nome.

 

local itemid = 2145 ------ Numero do Item que será removido

Este e o ID do item que será removido, no caso do 2145 e Small Diamonds (moeda principal do PokeXGames). Aconselho a usar Small Diamonds.

 

local proibido = {"!","@","*"} -- simbolos proibidos

Estes e os símbolos proibidos, caso queria adicionar mais faça o seguinte:

{"!","@","*","?"}

adicionando dessa seguinte maneira:

,"?"}

 

divisor.png

 

Ditto Script:

Crie um arquivo em otserv/talkactions/scripts com o nome de ditto2.lua e adicione isso em seu arquivo:

(Este script serve para adicionar a caixa do Ditto no jogador).

 

function onSay(cid,words,param)

if doPlayerRemoveItem(cid,2145,10) == TRUE then

doPlayerAddItem(cid,1738,1)

doCreatureSay(cid,"[AUTO SHOP] You bought your Pokemon Ditto, it cost 10 diamonds.",TALKTYPE_ORANGE_1)

else

doCreatureSay(cid,"[AUTO SHOP] You do not have two diamonds to make the purchase.",TALKTYPE_ORANGE_1)

end

end

Agora em talkactions.xml adicione em Players:

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

A segunda parte do script você precisa ir otserv/actions/scripts crie um arquivo chamado ditto_.lua e adicione o seguinte:

(Este script serve para o id da caixa ser usado para conseguir o Ditto)

 

function onUse(cid, item, frompos, item2, topos)

 

if getPlayerStorageValue(cid, 15215) <= 100 then

 

 

 

doPlayerSendTextMessage(cid, 20,"[AUTO SHOP] Thank donations.")

 

setPlayerStorageValue(cid, 15215, 1)

 

local pox = getTownTemplePosition(1)

local health = 325

local maxhealth = 325

local description = "Contains a Ditto."

local poke1 = "This is Ditto's pokeball. HP = ["..health.."/"..maxhealth.."]"

 

item = doCreateItemEx(2219)

doItemSetAttribute(item, "poke", poke1)

doItemSetAttribute(item, "nome", "Ditto")

doItemSetAttribute(item, "apelido", "Ditto")

 

doItemSetAttribute(item, "description", description)

doPlayerAddItemEx(cid, item, true)

doTransformItem(item, 2222)

doPlayerSendTextMessage(cid, 27, "[AUTO SHOP] You just get the Pokemon Ditto.")

doPlayerSendTextMessage(cid, 27, "Do not forget to donate this item has a cost of 10 diamonds, and you can not get this Pokemon through quests / npcs / catchs.")

doTeleportThing(cid, pox)

doSendMagicEffect(pox, 21)

doPlayerAddSoul(cid, 1)

doPlayerRemoveItem(cid,1738,1)

 

setPlayerStorageValue(cid, 54842, "Ditto, ")

return TRUE

else

doPlayerSendTextMessage(cid, 20, "Have you got this Pokemon.")

end

 

end

Agora em actions.xml adicione:

<action itemid="1738" event="script" value="ditto_.lua"/> -- Explicação do Script (Ditto):

PARTE DAS TALKACTIONS

 

if doPlayerRemoveItem(cid,2145,10) == TRUE then

O número 2145 e o id da Small Diamonds, já o número 10 e a quantidade de Small Diamonds que precisa para comprar o Ditto.

 

doPlayerAddItem(cid,1738,1)

O número 1738 e o id da box, caso modificar este número modifique tambem em actions.xml!

 

PARTE DAS ACTIONS

 

doSendMagicEffect(pox, 21)

O número 21 e o número do efeito que vai ser utilizado ao abrir a box, pode ser modificado em qual você preferir.

 

doPlayerAddSoul(cid, 1)

Será adicionado 1 de soul, como se fosse 1 de catch (dependendo de alguns servidores) se preferir retire a linha inteira.

 

doPlayerRemoveItem(cid,1738,1)

Este e o id da box, caso você muda-lá na talkactions, e na actions.xml mude aqui tambem.

 

divisor.png

 

Kit Script:

Crie um arquivo em otserv/talkactions/scripts chamado kit.lua e adicione isso dentro dele:

(Este script serve para receber Revives, Ultra Balls e Hyper Potions).

 

function onSay(cid,words,param)

if doPlayerRemoveItem(cid,2145,2) == TRUE then

doPlayerAddItem(cid,2269,100)

doPlayerAddItem(cid,2275,100)

doPlayerAddItem(cid,2146,100)

doCreatureSay(cid,"[AUTO-SHOP]: You just buy ultra ball 100x, 100x revive and 100x hyper potion. All this will cost 2 diamonds!",TALKTYPE_ORANGE_1)

else

doCreatureSay(cid,"[AUTO-SHOP]: You do not have two diamonds to make the purchase.",TALKTYPE_ORANGE_1)

end

end

Agora em talkactions.xml adicione:

<talkaction words="!buykit" event="script" value="kit.lua"/> -- Explicação do Script (Kit):

 

if doPlayerRemoveItem(cid,2145,2) == TRUE then

O id 2145 e o Small Diamonds e o número 2 e a quantidade que será retirada para a realização da compra do kit.

 

doPlayerAddItem(cid,2269,100)

O id 2269 e o da Ultra Ball e o número 100 e a quantidade que o player receberá de Ultra Balls.

 

doPlayerAddItem(cid,2275,100)

O id 2275 e o do Revive, e o número 100 e a quantidade que o player receberá de Revives.

 

doPlayerAddItem(cid,2146,100)

O id 2146 e o da Hyper Potion, e o número 100 e a quantidade que o player receberá de Hyper Potions.

 

divisor.png

 

Bom, estes são os scripts prometido, mas se alguém quiser coloca outras talkactions como a !buykit vou colocar abaixo o que poderam usar de base:

 

function onSay(cid,words,param)

if doPlayerRemoveMoney(cid,10000) == TRUE then

doPlayerAddItem(cid,2173,1)

doCreatureSay(cid,"Mensagem que ele conseguiu comprar o item.",TALKTYPE_ORANGE_1)

else

doCreatureSay(cid,"Mensagem quando não possui dinheiro ou diamantes suficientes.",TALKTYPE_ORANGE_1)

end

end divisor.png

 

if doPlayerRemoveMoney(cid,10000) == TRUE then

Essa função diz que irá remover 10k para comprar o item, se você quiser que remova outra coisa por exemplo um shield você adiciona a seguinte função no lugar dessa:

 

doPlayerRemoveItem(cid,1738,1)

ficando assim:

doPlayerRemoveItem(cid,1738,1) = TRUE then

O id do shield você modifica no 1738 e a quantidade no número 1.

 

 

doPlayerAddItem(cid,2173,1)

Esas função adiciona o item e a quantidade no jogador, exemplo:

2173 e o ID do item, e o número 1 e a quantidade só modificar do seu gosto.

 

O que você pode adicionar em um script?

Efeitos, para adicionar um efeito basta colocar essa função:

 

doSendMagicEffect(getThingPos(cid), 132)

O número 132 e o número do efeito, para pesquisar mais procure pelo jogo no GOD o seguinte:

/z 1, /z 2, /z 3 até o seu limite.

 

 

 

Bom Galera e isso.. Eu Ainda nao sei por Aquela paradinha de abri e feixa pra fica mais Organizado..

Link para o comentário
https://xtibia.com/forum/topic/171339-scripts-de-poketiba/
Compartilhar em outros sites

×
×
  • Criar Novo...