Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] Máquina de helds


Ir para solução Resolvido por zipter98,

Posts Recomendados

Gente como no título queria o script daquela máquina da pokexgames que quando o player tem 20 devoted tokens troca por 1 held aleatório de tier 1-3... Tem outros tokens que trocam por outros helds mais isso eu configuro depois, dou Rep+ hehe, uso pokexcyan v2: 8.54

Editado por Loouis (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

E como é que essa máquina funciona? Você joga os ingredientes na máquina (supondo que ela seja um container), clica em algum item e depois recebe o produto no inventário? 

Seria de grande ajuda você explicar.

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Sim, com muito prazer. o player vai la e da use em uma maquina... como na imagem e se ele tiver os 20 Devoted Token ele tira helds do tier 1-3 , e se não tiver os 20 Devoted Tokens ele nao podera fazer a troca...

b7apw0.png

o.png

Link para o post
Compartilhar em outros sites

Existe varios held no poketibia por exemplo...

Y-Teleport Tier 1: diminiu o tempo do teleport em 5 minutos.

Y-Teleport Tier 2: diminiu o tempo do teleport em 10 minutos.

Y-Teleport Tier 3: diminiu o tempo do teleport em 15 minutos.

Vamos usar como exemplo o Y-Teleport.

 

se eu clicar em cima da opcão, por exemplo, se eu clicar em "70 Mighty tokens (Tier 1-3)" e se ele nao tiver exatamente os 70 Mighy tokens, não vai conseguir pegar o held ALEATORIO de tier 1-3... e se ele tiver 20 Devoted tokens e der dois cliques em cima da opcão "20 Devoted Tokens (Tier 1-2)" vai um held ALEATORIO tier 1-2 pra bag dele..

tendeu?

Editado por Loouis (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

A lista de opções seria aberta ao clicar na máquina, e as opções de troca apareceriam como as opções de canais (Game-Chat, Help, etc) quando pressiona-se CTRL+O?

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites
  • 4 weeks later...

O que tem que fazer na hora de colocar o codigo da maquina de troca.. em data/actions/script?

E onde eu tenho que botar o id da maquina? como ele vai reconhecer onde clicar naquela maquina?

como adicionar isso no login.lua?

registerCreatureEvent(cid, "Held_Machine")
Em 12/12/2015 20:08:42, zipter98 disse:

Foi mal pela demora, fiquei sem internet quase o dia todo.

Em data/XML/channels.xml, você deverá criar canais relativos a cada opção de troca, seguindo o modelo:


<channel id="ID_do_canal" name="Nome_do_canal">
    <vocation id="10"/>
</channel>

Exemplos:


<channel id="22" name="20 Devoted Token (Tier 1-2)">
    <vocation id="10"/>
</channel>
<channel id="23" name="70 Mighty Token (Tier 1-3)">
    <vocation id="10"/>
</channel>

Depois, na mesma pasta, vocations.xml:


<vocation id="10" name="Held Machine" description="a pokemon trainer" needpremium="0" gaincap="0" gainhp="15" gainmana="0" gainhpticks="2" gainhpamount="3" gainmanaticks="0" gainmanaamount="0" manamultiplier="1.1" attackspeed="-1" soulmax="251" gainsoulticks="-1" fromvoc="1">
    <formula meleeDamage="0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
    <skill fist="1.0" club="1.0" sword="1.0" axe="1.0" distance="1.0" shielding="1.0" fishing="3.0" experience="1.0"/>
</vocation>

data/actions/scripts, código da máquina de troca:


function onUse(cid)
    doPlayerSetVocation(cid, 10)
    openChannelDialog(cid)
    return true
end

data/creaturescripts/scripts:


local trade_options = {
    --[channel_id] = {token = {token_itemid, amount}, results = {held_itemid, held_itemid, held_itemid, ...}},
}

function onJoinChannel(cid, channelId, users, isTv)
    local option = trade_options[channelId]
    
    if not option then
        return false
    end
    
    doPlayerSetVocation(cid, 1)
    if doPlayerRemoveItem(cid, option.token[1], option.token[2]) then
        local result = option.results[math.random(#option.results)]
        
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "In trade of "..option.token[2].."x "..getItemNameById(option.token[1])..", you received: "..getItemNameById(result)..".")
        doPlayerAddItem(cid, result, 1)
    else
        doPlayerSendTextMessage(cid, 27, "You do not have "..option.token[2].."x "..getItemNameById(option.token[1])..".")
    end
    return false
end

Configure na tabela trade_options as opções de troca, seguindo o modelo:


[ID_do_canal] = {token = {ID_do_token, quantidade}, results = {IDs_dos_helds}},

Tag:


<event type="joinchannel" name="Held_Machine" event="script" value="nome_do_arquivo.lua"/>

Em login.lua:


registerCreatureEvent(cid, "Held_Machine")

 

 

Editado por Loouis (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 4 months later...
Em 11/12/2015 at 17:38, zipter98 disse:

Foi mal pela demora, fiquei sem internet quase o dia todo.

Em data/XML/channels.xml, você deverá criar canais relativos a cada opção de troca, seguindo o modelo:


<channel id="ID_do_canal" name="Nome_do_canal">
    <vocation id="10"/>
</channel>

Exemplos:


<channel id="22" name="20 Devoted Token (Tier 1-2)">
    <vocation id="10"/>
</channel>
<channel id="23" name="70 Mighty Token (Tier 1-3)">
    <vocation id="10"/>
</channel>

Depois, na mesma pasta, vocations.xml:


<vocation id="10" name="Held Machine" description="a pokemon trainer" needpremium="0" gaincap="0" gainhp="15" gainmana="0" gainhpticks="2" gainhpamount="3" gainmanaticks="0" gainmanaamount="0" manamultiplier="1.1" attackspeed="-1" soulmax="251" gainsoulticks="-1" fromvoc="1">
    <formula meleeDamage="0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
    <skill fist="1.0" club="1.0" sword="1.0" axe="1.0" distance="1.0" shielding="1.0" fishing="3.0" experience="1.0"/>
</vocation>

data/actions/scripts, código da máquina de troca:


function onUse(cid)
    doPlayerSetVocation(cid, 10)
    openChannelDialog(cid)
    return true
end

data/creaturescripts/scripts:


local trade_options = {
    --[channel_id] = {token = {token_itemid, amount}, results = {held_itemid, held_itemid, held_itemid, ...}},
}

function onJoinChannel(cid, channelId, users, isTv)
    local option = trade_options[channelId]
    
    if not option then
        return false
    end
    
    doPlayerSetVocation(cid, 1)
    if doPlayerRemoveItem(cid, option.token[1], option.token[2]) then
        local result = option.results[math.random(#option.results)]
        
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "In trade of "..option.token[2].."x "..getItemNameById(option.token[1])..", you received: "..getItemNameById(result)..".")
        doPlayerAddItem(cid, result, 1)
    else
        doPlayerSendTextMessage(cid, 27, "You do not have "..option.token[2].."x "..getItemNameById(option.token[1])..".")
    end
    return false
end

Configure na tabela trade_options as opções de troca, seguindo o modelo:


[ID_do_canal] = {token = {ID_do_token, quantidade}, results = {IDs_dos_helds}},

Tag:


<event type="joinchannel" name="Held_Machine" event="script" value="nome_do_arquivo.lua"/>

Em login.lua:


registerCreatureEvent(cid, "Held_Machine")

 

 

zipter me ajuda, fiz td certinho e o script funfa dahora, porem as janelas de trade,help etc pararam de abrir

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo