Ir para conteúdo
  • 0

NathanAmaro

Pergunta

Oi pessoinhas do Xtibia ;)

 

Se o tópico estiver em lugar errado, movam please.

 

Bom dia a todos. Tenho um servidor de Tibia GTA, e tenho script de armas, só que tenho uma dúvida nesse script =/, preciso que ao usar o comendo !bullet (a munição automaticamente irá trocar para bullet: id 2543) ou !chumbo (a munição automaticamente irá trocar para chumbo: id 6529). Irei disponibilizar o script:

 

data>spells>scripts

local runa = 2413
local msg = "Equipe a %s na mão, para poder atirar."
local attackmin, attackmax = 620, 650 -- attack minimo, attack maximo
function onCastSpell(cid, var)
        local left, right = getPlayerSlotItem(cid, CONST_SLOT_LEFT), getPlayerSlotItem(cid, CONST_SLOT_RIGHT)
        if isInArray({left.itemid, right.itemid}, runa) then
        else
                return doPlayerSendCancel(cid, msg:format(getItemNameById(runa)))
        end
if doPlayerRemoveItem(cid, 2543, 1) then -- troque pelo id da bolt
target = getCreatureTarget(cid)
if (target <= 0) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Selecione um target.")
return false
end
hit = (math.random(attackmin,attackmax) + getPlayerSkillLevel(cid, SKILL_DISTANCE) / 3)
                                   doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -hit, -hit, CONST_ME_MORTAREA)
                                    doSendDistanceShoot(getCreaturePos(cid), getCreaturePos(target), CONST_ANI_BOLT)
                                    return  TRUE
end
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não possui balas.")
return false
end

data>spells>spells.xml

<rune name="NOMEDAARMA" id="IDDAARMA" allowfaruse="1" charges="no" lvl="8" exhaustion="1000" maglv="0" range="5" needtarget="0" blocktype="solid" event="script" value="NOMEDOARQUIVOEMSCRIPTS.lua"/>

é isso, se alguém souber como fazer esse script me ajude, obrigado a todos ;)

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Essa seção não deve ser usada para pedidos ou dúvidas, temos uma seção específica para isso. Por favor, preste mais atenção da próxima vez.
Movido para Pedidos e Dúvidas - Scripting.

Link para o comentário
Compartilhar em outros sites

  • 0

Sobre seu script, vi que é uma runa que usa bolts como munição...

Sendo assim, pra simplificar sua vida, sugiro que crie outra arma igual, incluindo nome e sprite, (ficando com 2 idênticas) e que mude no script dela apenas a munição que a mesma usará.

Após feito isso, fica mais fácil criar uma talkaction que fará com que mude a ID da arma que atira bullet para a que atira chumbo e vice-versa.

 

O que acha?

Link para o comentário
Compartilhar em outros sites

  • 0

Tudo bem.

Poderia fazer com 1 script, porém, deixei assim com 2 para ficar com palavras diferentes e creio que mais fácil configurar.

 

Sem mais delongas, vamos ao script.

 

Em seu talkactions.xml adicione estas tags.

<talkaction words="!akchumbo" event="script" value="ak_chumbo.lua"/>
<talkaction words="!akbullets" event="script" value="ak_bullets.lua" />

Agora na pasta scripts, crie um arquivo chamado "ak_chumbo.lua" e outro chamado "ak_bullets.lua", e adicione os scripts representantes:

ak_chumbo.lua:

local ak_chumbo = 2171  -- id da sua ak-47 de chumbo
local ak_bullets = 2170  -- id da sua ak-47 de bullets

    function onSay(cid, words, param)
if getPlayerItemCount(cid, ak_bullets) >= 1 then
    doPlayerRemoveItem(cid, ak_bullets, 1)
    doPlayerAddItem(cid, ak_chumbo, 1)
     doPlayerSendTextMessage(cid, 25,"Transformou sua AK-47 de bullets para chumbo.")
else
    doPlayerSendTextMessage(cid, 25,"Voce nao tem a AK-47 de bullets.")
    end
end

ak_bullets.lua:

local ak_chumbo = 2171 -- id da sua ak-47 de chumbo
local ak_bullets = 2170 -- id da sua ak-47 de bullets

    function onSay(cid, words, param)
if getPlayerItemCount(cid, ak_chumbo) >= 1 then
    doPlayerRemoveItem(cid, ak_chumbo, 1)
    doPlayerAddItem(cid, ak_bullets, 1)
     doPlayerSendTextMessage(cid, 25,"Transformou sua AK-47 de chumbo para bullets.")
else
    doPlayerSendTextMessage(cid, 25,"Voce nao tem a AK-47 de chumbo.")
    end
end

Agora é só abrir o server e testar com as palavras:

!akchumbo para transformar sua AK-47 de bullets para chumbo.

!akbullets para transformar sua AK-47 de chumbo para bullets.

 

 

Testei aqui e funcionou beleza, caso precise de ajuda ou qualquer outra dúvida, não hesite em postar aqui para solucionarmos.

 

Boa sorte.

Editado por Adriano Swatt
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...