Ir para conteúdo

salatiel

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    salatiel deu reputação a Doughell em [TalkAction] Scripts para PokeTIBIA   
    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&#225; removido local proibido = [{"!","@","*"}-- simbolos proibidos for i = 1, #proibido do if string.find(tostring(param), proibido[i]) then doPlayerSendCancel(cid,"[AUTO SHOP] You can not use symbols in their name.") return TRUE end end if tostring(param) == "" then -- checkar se n&#227;o &#233; 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: ,"?"} 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. 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. 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&#227;o possui dinheiro ou diamantes suficientes.",TALKTYPE_ORANGE_1) end end


    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.


    É isso ai galera, qualquer dúvida postem ou dêem sujestões!
    Detalhe: as cores nos scripts foram retiradas por bug, em outra hora adicionarei novamente!
  2. Gostei
    salatiel deu reputação a your2000 em (Resolvido)Alguem me passa a Base do Pokepro PorFavor   
    Alguem me passa o download do server do pokepro? n precisa ser tãaao igual, mais pelomenos o mapa se pareça , obrigado.

Informação Importante

Confirmação de Termo