Ir para conteúdo
  • Cadastre-se

(Resolvido)Sistema de Presente


Ir para solução Resolvido por Wise,

Posts Recomendados

GALERA TOU QUERENDO UMA ACTION ASSIM TIPO QUANDO O PLAYER CLICAR NO PRESENTE (ID: 8110)  ELE GANHASSE ALGUM DOS ITEMS QUE EU COLOCAR NO SCRIPT EXEMPLO QUANDO CLIKAR NO PRESENTE CAIA ALGUM ITEM TIPO ALEATORIO MAIS COM PORCERTAGEM 

 

ESPERO QUE ALGUEM AJUDE!"

ca.png?1422745283

 

CONQUISTASdesigner-king.png   Designer.png    

 

Link para o post
Compartilhar em outros sites
  • Moderador

Fiz esse script para meu otserver para players que donatam,assim ganham items ramdomicos

ACTION

Adicione essa linha no actions.xml

<action itemid="8110" script="presente.lua"  />

e crie um lua na pasta actions chamado presente ou de seu gosto, com o conteudo abaixo.

local t = {
[1] = {itemid = 7387}, --Aqui você modifica os items randoms dentro da chave.
[2] = {itemid = 7383},
[3] = {itemid = 2640},
[4] = {itemid = 2655},
[5] = {itemid = 2652},
[6] = {itemid = 2510},
[7] = {itemid = 2521},
[8] = {itemid = 7382},
[9] = {itemid = 2445},
[10] = {itemid = 2450}
}
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
local getItem = t[math.random(1,10)]-Aqui você altera o valor Exemplo chance de cair 8 itens random troque o 10 por 8.
return getItem and doPlayerAddItem(cid, getItem.itemid, 1) and doSendAnimatedText(getPlayerPosition(cid), "DONATE!", 34) and doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,"Your donation item is: ".. getItemNameById(getItem.itemid) ..".") and doRemoveItem(item.uid, 1) and true or false
end
 

Script usado no TFS 0.3.5, não testei em outros, mas creio que funcione pois usei funçoes basicas.

Editado por Mago Math (veja o histórico de edições)

function onLove()
if getPlayerTrueLove(girlfriend) then
doPlayerBeHappy(cid, true)
doRemoveVirginity(cid, true)
else
doSendCancel(cid,"you do not know how good it feels to be loved")
end end

;)

 

Link para o post
Compartilhar em outros sites

Bom amigo, eu não testei não.

local items = {
    [2160] = {maxAmmount = 10, chance = 10},
    [2158] = {maxAmmount = 100, chance = 20},
}

function onUse(cid, item)
    for i, e in pairs(items) do
        if math.random(100) <= e.chance then
            local ammount = math.random(1, e.maxAmmount)
            
            doPlayerAddItem(cid, i, ammount)
            doPlayerSendTextMessage(cid, 27, "Voce ganhou "..ammount.."x "..getItemNameById(i))
        end
    end
    doRemoveItem(item.uid)
    return true
end
Editado por Orochi Elf (veja o histórico de edições)

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites

Orochi Elf eu cliko no presente mais ele so desaparece e nao da nada e também nao da nenhum erro na distro

ca.png?1422745283

 

CONQUISTASdesigner-king.png   Designer.png    

 

Link para o post
Compartilhar em outros sites

sim mais ai vai cair os items que tem a  chance maior nao teria como deixar aleatorio

ca.png?1422745283

 

CONQUISTASdesigner-king.png   Designer.png    

 

Link para o post
Compartilhar em outros sites

Tenta esse script que eu coloquei no teu outro topico parecido com esse:


local p1 = X
local p2 = X
local p3 = X
local p4 = X
local p5 = X
local p6 = X
local p7 = X
local p8 = X
local p9 = X
local p10 = X
local p11 = X
local p12 = X
local p13 = X
local p14 = X
local p15 = X

local q1 = Y
local q2 = Y
local q3 = Y
local q4 = Y
local q5 = Y
local q6 = Y
local q7 = Y
local q8 = Y
local q9 = Y
local q10 = Y
local q11 = Y
local q12 = Y
local q13 = Y
local q14 = Y
local q15 = Y

function onUse(cid, item, fromPosition, itemEx, toPosition)

local rand = math.random(1, 15)
local lotteryid = 1990

if item.itemid == lotteryid then
if rand == 1 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p1, q1)
doRemoveItem(cid, item.uid, 1)
elseif rand == 2 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p2, q2)
doRemoveItem(cid, item.uid, 1)
elseif rand == 3 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p3, q3)
doRemoveItem(cid, item.uid, 1)
elseif rand == 4 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p4, q4)
doRemoveItem(cid, item.uid, 1)
elseif rand == 5 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p5, q5)
doRemoveItem(cid, item.uid, 1)
elseif rand == 6 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p6, q6)
doRemoveItem(cid, item.uid, 1)
elseif rand == 7 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p7, q7)
doRemoveItem(cid, item.uid, 1)
elseif rand == 8 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p8, q8)
doRemoveItem(cid, item.uid, 1)
elseif rand == 9 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p9, q9)
doRemoveItem(cid, item.uid, 1)
elseif rand == 10 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p10, q10)
doRemoveItem(cid, item.uid, 1)
elseif rand == 11 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p11, q11)
doRemoveItem(cid, item.uid, 1)
elseif rand == 12 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p12, q12)
doRemoveItem(cid, item.uid, 1)
elseif rand == 13 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p13, q13)
doRemoveItem(cid, item.uid, 1)
elseif rand == 14 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p14, q14)
doRemoveItem(cid, item.uid, 1)
elseif rand == 15 then
doCreatureSay(cid, "Present!", TALKTYPE_ORANGE_1)
doPlayerAddItem(cid, p15, q15)
doRemoveItem(cid, item.uid, 1)
end
end
return TRUE
end

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

data/actions/scripts/absoluteitem.lua

local ABSOLUTE = {2160,6000,6958}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(item.itemid == 8110) then
end
            doPlayerAddItem(cid, ABSOLUTE[math.random(1, #ABSOLUTE)], 1)
end
            doSendMagicEffect(fromPosition, CONST_ME_GIFT_WRAPS)
            doPlayerPopupFYI(cid, "Receba seu item, tomara que veio coisa boa =D")
            doRemoveItem(item.uid, 1)
return true
end

data/actions/actions.xml:

<action itemid="8110" event="script" value="absoluteitem.lua"/>

Para configurar o id dos items, altere aqui: local ABSOLUTE = {2160,6000,6958}

Caso queira que o item seja infinito, remova a linha da função doRemoveItem

Editado por Absolute (veja o histórico de edições)

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites
local ABSOLUTE = {2160,6000,6958}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(item.itemid == 8110) then
end
            doPlayerAddItem(cid, ABSOLUTE[math.random(1, #ABSOLUTE)], 1)
end
            doSendMagicEffect(fromPosition, CONST_ME_GIFT_WRAPS)
            doPlayerPopupFYI(cid, "Receba seu item, tomara que veio coisa boa =D")
            doRemoveItem(item.uid, 1)
return true
end

Desculpa, mas isso não tem lógica pra mim.

Você fez uma checagem que a própria tag já determina (já que é um único itemID), encerrou-a sem nenhum bloco dentro do escopo e depois encerrou o callback com mais funções, retorno e uma estrutura de controle de fora?

De qualquer forma, parabéns pela atitude de tentar ajudar outros membros.

Ficaria assim:

function onUse(cid, item, fromPos, toPos)
    local items = {2160, 6000, 6958}
    doPlayerAddItem(cid, items[math.random(1, #items)], 1)
    doSendMagicEffect(fromPos, CONST_ME_GIFT_WRAPS)
    doCreatureSay(cid, 'Congratulations!', TALKTYPE_ORANGE_1)
    doRemoveItem(item.uid, 1)
    return true
end

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

OBRIGADO aos 2 FUNCIONOU  Suicide tipo se eu quiser que da mais de 10 moedas azul no caso como faço

ca.png?1422745283

 

CONQUISTASdesigner-king.png   Designer.png    

 

Link para o post
Compartilhar em outros sites

 

Desculpa, mas isso não tem lógica pra mim.

Você fez uma checagem que a própria tag já determina (já que é um único itemID), encerrou-a sem nenhum bloco dentro do escopo e depois encerrou o callback com mais funções, retorno e uma estrutura de controle de fora?

De qualquer forma, parabéns pela atitude de tentar ajudar outros membros.

Ficaria assim:

function onUse(cid, item, fromPos, toPos)
    local items = {2160, 6000, 6958}
    doPlayerAddItem(cid, items[math.random(1, #items)], 1)
    doSendMagicEffect(fromPos, CONST_ME_GIFT_WRAPS)
    doCreatureSay(cid, 'Congratulations!', TALKTYPE_ORANGE_1)
    doRemoveItem(item.uid, 1)
    return true
end

 

Na verdade eu quis fazer essa checagem pelo fato de eu estar fazendo o script para o membro (que me pediu pelo facebook) que seria mais de um itemid com items raros e tudo mais, por este fato deixei a checagem mesmo sendo o único itemID, é visível pelo fato de eu separar o local do script, pois estava fazendo mais de um.

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

 

Desculpa, mas isso não tem lógica pra mim.

Você fez uma checagem que a própria tag já determina (já que é um único itemID), encerrou-a sem nenhum bloco dentro do escopo e depois encerrou o callback com mais funções, retorno e uma estrutura de controle de fora?

De qualquer forma, parabéns pela atitude de tentar ajudar outros membros.

Ficaria assim:

function onUse(cid, item, fromPos, toPos)
    local items = {2160, 6000, 6958}
    doPlayerAddItem(cid, items[math.random(1, #items)], 1)
    doSendMagicEffect(fromPos, CONST_ME_GIFT_WRAPS)
    doCreatureSay(cid, 'Congratulations!', TALKTYPE_ORANGE_1)
    doRemoveItem(item.uid, 1)
    return true
end

Cara, isso ae é um Action?

se for posta tbm a Tag para o Action.xml

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites

Cara, isso ae é um Action?

se for posta tbm a Tag para o Action.xml

 

Sim meu jovem, só ver meu scrips a cima:

Segue a tag:

<action itemid="8110" event="script" value="absoluteitem.lua"/>

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

 

Sim meu jovem, só ver meu scrips a cima:

Segue a tag:

<action itemid="8110" event="script" value="absoluteitem.lua"/>

Obrg e REP+

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites
  • Solução
Na verdade eu quis fazer essa checagem pelo fato de eu estar fazendo o script para o membro (que me pediu pelo facebook) que seria mais de um itemid com items raros e tudo mais, por este fato deixei a checagem mesmo sendo o único itemID, é visível pelo fato de eu separar o local do script, pois estava fazendo mais de um.

 

A estrutura de controle que você usou pra checar o valor do itemID, não precisa ser feita já que a própria tag o determina (por ser apenas um itemID usado na action, isso se torna inútil). E de qualquer forma, não justifica os demais erros.

Mas tudo bem, não leve isso para o lado pessoal.

Obrigado por contribuir.

 

 

 

Suicide tipo se eu quiser que da mais de 10 moedas azul no caso como faço

 

presentbox.lua

function onUse(cid, item, fromPos, toPos)
    local coins = {1, 30} -- {quantia mínima, quantia máxima}
    local items = {2160, 2472, 2470} -- {items}
    local mr = items[math.random(1, #items)]
    if mr == 2160 then
        doPlayerAddItem(cid, 2160, math.random(coins[1], #coins))
        doSendMagicEffect(fromPos, CONST_ME_GIFT_WRAPS)
        doCreatureSay(cid, 'Congratulations!', TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
    else
        doPlayerAddItem(cid, mr, 1)
        doSendMagicEffect(fromPos, CONST_ME_GIFT_WRAPS)
        doCreatureSay(cid, 'Congratulations!', TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
    end
    return true
end

 

<action itemid="8110" script="presentbox.lua"/>

 

@TsplayerT

Não havia lido sua mensagem. É sim, amigo

Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

A estrutura de controle que você usou pra checar o valor do itemID, não precisa ser feita já que a própria tag o determina (por ser apenas um itemID usado na action, isso se torna inútil). E de qualquer forma, não justifica os demais erros.

Mas tudo bem, não leve isso para o lado pessoal.

Obrigado por contribuir.

 

 

 

 

presentbox.lua

function onUse(cid, item, fromPos, toPos)
    local coins = {1, 30} -- {quantia mínima, quantia máxima}
    local items = {2160, 2472, 2470} -- {items}
    local mr = items[math.random(1, #items)]
    if mr == 2160 then
        doPlayerAddItem(cid, 2160, math.random(coins[1], #coins))
        doSendMagicEffect(fromPos, CONST_ME_GIFT_WRAPS)
        doCreatureSay(cid, 'Congratulations!', TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
    else
        doPlayerAddItem(cid, mr, 1)
        doSendMagicEffect(fromPos, CONST_ME_GIFT_WRAPS)
        doCreatureSay(cid, 'Congratulations!', TALKTYPE_ORANGE_1)
        doRemoveItem(item.uid, 1)
    end
    return true
end

 

<action itemid="8110" script="presentbox.lua"/>

@TsplayerT

Não havia lido sua mensagem. É sim, amigo

 

Hã, o que tem a ver o lado pessoal sr estagiário?

Só ver ai, serviu, membro gostou e pronto, é simples :D

Abraços.

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

Hã, o que tem a ver o lado pessoal sr estagiário? Só ver ai, serviu, membro gostou e pronto, é simples :D


Eu só disse pra você não levar a crítica para o lado pessoal. Obrigado pela contribuição.
Abraços.

The corrupt fear us.

The honest support us.

The heroic join us.

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo