Ir para conteúdo
Entre para seguir isso  
Sir.DMLDR

Mount Doll

Recommended Posts

Sir.DMLDR    0
Sir.DMLDR

Bom, eu procurei por todo canto esse script e não encontrei. Ai me vi necessitado a tentar criar por mim mesmo, porém faz alguns anos que não mexo com isso..

 

O script consiste em, um Doll onde o player que o possuir pode trocar por uma mount dizendo !mount (nome da mount). Ex: !mount midnight panther

 

O script não ficou muito bom, e deve tar todo gambiarrado como todos falam, porém, mesmo que ainda esteja incompleto, funciona.

 

Vamos lá:

 

Crie um arquivo mounts.lua na pasta talkactions/scripts e edite com o seguinte código:

 

-- Script by DMLDR
function onSay(cid, words, param, channel)

       local id = {
               [color="red"]["widow queen"][/color] = [color="purple"]1[/color],
               [color="red"]["racing bird"][/color]= [color="purple"]2[/color],
               [color="red"]["war bear"][/color] = [color="purple"]3[/color], 
               [color="red"]["black sheep"][/color] = [color="purple"]4[/color],
               [color="red"]["midnight panther"][/color] = [color="purple"]5[/color],
               [color="red"]["draptor"][/color] = [color="purple"]6[/color],
               [color="red"]["titanica"][/color] = [color="purple"]7[/color],
               [color="red"]["tin lizzard"][/color] = [color="purple"]8[/color],
               [color="red"]["blazebringer"][/color] = [color="purple"]9[/color],
               [color="red"]["rapid boar"][/color] = [color="purple"]10[/color],
               [color="red"]["stampor"][/color] = [color="purple"]11[/color],
               [color="red"]["undead cavebear"] [/color]= [color="purple"]12[/color]
       }

       if (param == '') then
          doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[color="yellow"]Como usar: !mount (nome da mount)[/color]")
          return true

end

local mount = id[param:lower()]

if(mount) then
		if doPlayerRemoveItem(cid, [color="blue"]13031[/color], 1) then
		   doPlayerAddMount(cid, mount)
		   doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[color="#ff00ff"]Você recebeu sua nova mount![/color]")
		else
		   doPlayerSendCancel(cid, "[color="#00ffff"]Você não tem um Mount Doll[/color]")
		end
end
return true
end

 

Entendendo o code:

 

Em Vermelho são os nomes que o player irá falar (no caso as mounts). Se seu OT tiver novas mounts, basta adicionar aqui com o nome e o ID delas.

Em Roxo são os id's das mounts (checar em XML/mounts.xml)

Em Amarelo é a mensagem quando o player disser apenas !mount

Em Rosa é a mensagem ao receber uma nova mount

Em Azul Claro é a mensagem quando o player não possuir o Mount Doll

Em Azul é o ID do Mount Doll (no caso está como o Draken Doll no meu OT)

 

Depois adicione a TAG ao talkactions.xml:

 

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

 

Bacana DMLDR, mas o que ta faltando?

Bem, se o player tiver 2 Mount Dolls e comprar uma vez a mount da black sheep por exemplo, ele irá obter a mount. Se ele disser novamente !mount black sheep outro Mount Doll será consumido e ele irá receber a mensagem de que recebeu a mount que ele já tinha. Se alguem puder me ajudar a dar um jeito nisso (eu tentei de varias formas e não consegui) eu agradeço :).

 

E eu espero que aprovem o script porque eu gastei 5 horas da minha vida tentando fazer :coolface:

Compartilhar este post


Link para o post
iuniX    4
iuniX

A indentação está péssima, mas o script não aparenta nenhum erro. Obrigado pela colaboração.

 

 

Aprovado e Movido.

Editado por iuniX

Compartilhar este post


Link para o post
Sir.DMLDR    0
Sir.DMLDR

Obrigado iuniX =)

 

@topic

Se alguém quiser ajudar melhorando o script, ajuda é bem vinda =)

Compartilhar este post


Link para o post
MaXwEllDeN    13
MaXwEllDeN

@Sir.DMLDR

 

-- Script by DMLDR
function onSay(cid, words, param, channel)        

        local id = {
              ["widow queen"] = 1,
              ["racing bird"]= 2,
              ["war bear"] = 3, 
              ["black sheep"] = 4,
              ["midnight panther"] = 5,
              ["draptor"] = 6,
              ["titanica"] = 7,
              ["tin lizzard"] = 8,
              ["blazebringer"] = 9,
              ["rapid boar"] = 10,
              ["stampor"] = 11,
              ["undead cavebear"] = 12
              }

        if (param == '') then
           doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Como usar: !mount (nome da mount)")
           return true
        end

        local mount = id[param:lower()]
        if (type(getPlayerStorageValue(cid, 21775)) ~= "string") then
           setPlayerStorageValue(cid, 21775, "")
        end

        local _, count = getPlayerStorageValue(cid, 21775):gsub(mount..",", "A")         

        if (count > 0) then
           return doPlayerSendTextMessage(cid, "Você já recebeu essa mount.")
        end

        if(mount) then
                  if doPlayerRemoveItem(cid, 13031, 1) then
                     doPlayerAddMount(cid, mount)
                     doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recebeu sua nova mount!")
                     setPlayerStorageValue(cid, 21775, getPlayerStorageValue(cid, 21775) .. mount .. ", ")
                  else
                      doPlayerSendCancel(cid, "Você não tem um Mount Doll")
                  end
        end

        return true
end

 

Ai, testa ai se já está funcionando, só pra lembrar você precisa comprar denovo.. para registrar a storage.

Compartilhar este post


Link para o post
Sir.DMLDR    0
Sir.DMLDR

@Max

 

To meio sem tempo, mas assim que der eu testo e edito ok?

Compartilhar este post


Link para o post
matheuzinhoo    0
matheuzinhoo

Ok fisso o mountdoll funfou aqui

mais quero adicionar outras montarias

tentei simplesmente escrever outra abaixo coloquei Id mais nao deu ajude ai vlw :)

Compartilhar este post


Link para o post
matheuzinhoo    0
matheuzinhoo

Ok fisso o mountdoll funfou aqui

mais quero adicionar outras montarias

tentei simplesmente escrever outra abaixo coloquei Id mais nao deu ajude ai vlw :)

Compartilhar este post


Link para o post
JulianoRenan    0
JulianoRenan

Funciona em 8.60?

Compartilhar este post


Link para o post
dawanpl    0
dawanpl

Funciona 8.6 ?? Obrigado Pela Resposta

Compartilhar este post


Link para o post
godmasterlord    0
godmasterlord

tem as funções de mount em 8.6? Não entendo mt sobre isso mas acho q não galera =(

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×