MA
pedido

Ak-Gold

Por Matador18, 19 de out. de 2013 em Scripts

trocar
de
muniçao
por
comando
resolvido
otserv
tibia
48
5.5k
gonorreiaswatG
06 de novembro de 2013 às 11:09

Tudo bem, fico no aguardo.

Matador18M
06 de novembro de 2013 às 11:33

Eles Ficam no Spells:

 

local runa = 2413
local msg = "Equipe a %s na mão, para poder atirar."
local attackmin, attackmax = 600, 900 -- 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, 6529, 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), 15)
return TRUE
end
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não possui balas.")
return false
end

 

 

Obrigado...

markindootM
06 de novembro de 2013 às 11:38

Eles Ficam no Spells:

 

local runa = 2413

local msg = "Equipe a %s na mão, para poder atirar."

local attackmin, attackmax = 600, 900 -- 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, 6529, 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), 15)

return TRUE

end

doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não possui balas.")

return false

end

 

 

Obrigado...

É este ai mesmo Adriano Swatt

se você conseguir adicionar uma função e por 2 removeitems nessa arma ai...

gonorreiaswatG
06 de novembro de 2013 às 13:10

Faça assim, me mande também a tag relacionada ao script que fica em spells.xml, acho que terei que testar este aqui.

 

-edit-

Disfarça, acho que vou conseguir do meu jeito aqui.

 

Breve edito com o resultado.

Editado Novembro 6 por Adriano Swatt

markindootM
06 de novembro de 2013 às 13:14

de boa, não estou em casa e nao da para baixar meu servidor aqui, o meu servidor o Matador18 já baixou, quando ele entra ele te passa a tag ou até eu mesmo.

gonorreiaswatG
06 de novembro de 2013 às 15:54

Galera, demorei um pouco pois estava ocupado.

O script não está 100% limpo, mas como estou iniciando em scripts, foi o que consegui fazer de forma funcional.

 

Sem falar que do jeito que estavam seus scripts, mesmo se estivesse sem alvo, gastava a munição ao clicar tentar atirar.

Ainda há alguns bugs no scripts, que já vieram de vocês, que é o tiro atingir monstros mesmo atrás de paredes e de que não precisa clicar exatamente no monstro para atirar nele quando o mesmo já está selecionado como alvo.

Mas como não sei se já sabiam disso, a minha parte de mudar munição por talkactions e só poder atirar ela se estiver ativo, eu consegui fazer (y).

 

Sem mais delongas, abaixo seguem os scripts...

 

Em talkactions.xml adicione a tag abaixo:

<talkaction words="!ak" event="script" value="ak_ammo.lua"/>

Agora crie um arquivo chamado "ak_ammo.lua" em scripts e adicione o código abaixo:

local storage = 30012

    function onSay(cid, words, param)

    if getPlayerStorageValue(cid, storage) == 1 then
    setPlayerStorageValue(cid, storage, 2)
    doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Agora sua Ak-47 pode atirar chumbos.")
else
    setPlayerStorageValue(cid, storage, 1)
    doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Agora sua Ak-47 pode atirar bullets.")
end
    return true
end

Pronto, em talkactions já finalizamos.

 

Agora vamos em Spells, adicione esta tag em seu spells.xml:

<rune name="AK-47" id="2088" allowfaruse="1" charges="1" lvl="1" maglv="0" exhaustion="1000" blocktype="solid" script="ak_ammo.lua"/>

E em "ak_ammo.lua" da pasta scripts de spells, adicione o script abaixo:

 

 

local arma = 2088
local bullets = 2298
local chumbos = 2299
local storage = 30012
local msg = "Equipe a %s na mao esquerda e a municao na mae direita para poder atirar."
local attackmin, attackmax = 600, 900 -- attack minimo, attack maximo

    function onCastSpell(cid, var)
local left = getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid
local shoot = getPlayerItemCount(cid, bullets)
local shoot2 = getPlayerItemCount(cid, chumbos)
local permissao = getPlayerStorageValue(cid, storage)
local target = getCreatureTarget(cid)
local hit = (math.random(attackmin,attackmax) + getPlayerSkillLevel(cid, SKILL_DISTANCE) / 3)

    if isInArray({left}, arma) then
else
    return doPlayerSendCancel(cid, msg:format(getItemNameById(arma)))
end
    if (permissao == 1) then
    if (shoot <= 0) then
            return doPlayerSendCancel(cid, 'Voce precisa de bullets para usar sua AK-47.')
    else
    if (target <= 0) then
        return doPlayerSendCancel(cid, 'Selecione um alvo.')
    else
        doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -hit, -hit, CONST_ME_MORTAREA)
        doSendDistanceShoot(getCreaturePos(cid), getCreaturePos(target), 15)
        doPlayerRemoveItem(cid, bullets, 1)
    end
end
    else
    if (shoot2 <= 0) then
            return doPlayerSendCancel(cid, 'Voce precisa de chumbos para usar sua AK-47.')
        else
    if (target <= 0) then
            return doPlayerSendCancel(cid, 'Selecione um alvo.')
    else
        doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -hit, -hit, CONST_ME_MORTAREA)
        doSendDistanceShoot(getCreaturePos(cid), getCreaturePos(target), 15)
        doPlayerRemoveItem(cid, chumbos, 1)
    end
  end
end
    return TRUE
end

 

 

Pronto, agora é só abrir o server e testá-la.

 

Para configurar é simples, pois deixei todas configurações no início... mas caso haja necessidade, clique no spoiler abaixo e veja como fazer:

 

local arma = 2088 -- aqui você coloca a id da sua AK-47
local bullets = 2298 -- aqui você coloca a id da munição Bullets
local chumbos = 2299 -- aqui você coloca a id da munição Chumbos
local storage = 30012 -- aqui não precisa mexer
local msg = "Equipe a %s na mao esquerda e a municao na mae direita para poder atirar."
local attackmin, attackmax = 600, 900 -- attack minimo, attack maximo

 

 

Eu testei várias e várias vezes com cautela e não houve erros, pois corrigi todos que encontrei.

Qualquer erro ou dúvida, favor postar para que possamos solucionar juntos.

 

Boa sorte.

Editado Novembro 7 por Adriano Swatt

kbpauloK
06 de novembro de 2013 às 19:27

@Adriano Swatt quase mandou bem.... vou da 1 dica...se quiser melhorar....o script ta maneiro mais imperfeito paras condições do jogo...A ak- gold ou qualquer arma no jogo e como se fosse 1 runa...fiz o seguinte.......configurei essa runa para remover 3 tipos de items na hora de usar.....só que tem que ter storage necessária para usar... seu pensamento foi ótimo....

 

 

runa/ ak gold - 3 munições cada munição tem sua storage.......

 

Talk action falando !ak da storage para o player...ou retira a antiga...

 

 

chegando em casa irei postar a AK-Gold Modelo antigo no fórum para todos.... Quem quiser da aquele Like ahuahauaha ...

 


esse novo post seu ai...fico bom.....não sei se funciona..mais se funcionar pode desconsiderar msg anterior...e só acrescentando o dano da arma dele...da bug.....se você não hita o bicho buga e não ganha exp ahauaha.....tem que da hit fisico primeiro para contar como hit so arrumar isso....... e também tira essa de mão direita e mão esquerda porque no jogo tem escudo.........a munição fica na BP......

Editado Novembro 6 por kbpaulo

gonorreiaswatG
06 de novembro de 2013 às 19:56

@Adriano Swatt quase mandou bem.... vou da 1 dica...se quiser melhorar....o script ta maneiro mais imperfeito paras condições do jogo...A ak- gold ou qualquer arma no jogo e como se fosse 1 runa...fiz o seguinte.......configurei essa runa para remover 3 tipos de items na hora de usar.....só que tem que ter storage necessária para usar... seu pensamento foi ótimo....

 

 

runa/ ak gold - 3 munições cada munição tem sua storage.......

 

Talk action falando !ak da storage para o player...ou retira a antiga...

 

 

chegando em casa irei postar a AK-Gold Modelo antigo no fórum para todos.... Quem quiser da aquele Like ahuahauaha ...

 

esse novo post seu ai...fico bom.....não sei se funciona..mais se funcionar pode desconsiderar msg anterior...e só acrescentando o dano da arma dele...da bug.....se você não hita o bicho buga e não ganha exp ahauaha.....tem que da hit fisico primeiro para contar como hit so arrumar isso....... e também tira essa de mão direita e mão esquerda porque no jogo tem escudo.........a munição fica na BP......

 

Ah tudo bem...

O Script funciona sim pois testei.

 

Eu fiz no improviso, falei que o script estaria "sujo", pois estou aprendendo agora a scriptear e este fiz de cabeça, sem usar tutoriais.

Sobre a munição, eu me confundi aqui, mas é só por para que verifique se ela está no slot de "ammo" mesmo e pronto, tudo certo.

 

Qualquer um sabe mudar isto, se for o caso eles mudam ou qualquer coisa eu mesmo mudo aqui, basta eles me pedirem.

 

Obrigado por comentar.

Editado Novembro 6 por Adriano Swatt

Matador18M
06 de novembro de 2013 às 20:07

Ficou Otimo mais tem como fazer para a muniçao ficar na bp inves de fica na mao

gonorreiaswatG
06 de novembro de 2013 às 20:11

Ficou Otimo mais tem como fazer para a muniçao ficar na bp inves de fica na mao

Pode ser no lugar onde ficam normalmente as munições (daria mais sentido) ou prefere na backpack mesmo?

kbpauloK
06 de novembro de 2013 às 20:16

@adriano - falei ahauaha.. ond tem a flexa no global e ond fica as muniçoes leva o colete.....um item que protege a mais ...alem do escudo tem o colete ahuaha...eu falei ahauaha

gonorreiaswatG
06 de novembro de 2013 às 20:17

@adriano - falei ahauaha.. ond tem a flexa no global e ond fica as muniçoes leva o colete.....um item que protege a mais ...alem do escudo tem o colete ahuaha...eu falei ahauaha

Bullshit, irei arrumar então.

 

 

-edit-

Atualizei o script na postagem do mesmo.

Não testei, então favor testar e me avisar se funcionou.

Editado Novembro 6 por Adriano Swatt

kbpauloK
06 de novembro de 2013 às 20:24

mais o script ta muito bom mesmo cara....so aquilo que falei...

 

*não precisa configurar arma no slot.....nem munição no slot....

*tem que ver também o sistema de storage la em cima..tira uma duvida...pelo que vi ganha storage,1 e depois storage,2...... mais nao vi nada tirando storage...tipo uma troca...... isso não vai causar bug????

 

o cara usa 1 vês e depois não precisa usa mais ja vai ter as 2 storage e pronto só usar qualquer munição a rodo....

gonorreiaswatG
06 de novembro de 2013 às 20:35

mais o script ta muito bom mesmo cara....so aquilo que falei...

 

*não precisa configurar arma no slot.....nem munição no slot....

*tem que ver também o sistema de storage la em cima..tira uma duvida...pelo que vi ganha storage,1 e depois storage,2...... mais nao vi nada tirando storage...tipo uma troca...... isso não vai causar bug????

 

o cara usa 1 vês e depois não precisa usa mais ja vai ter as 2 storage e pronto só usar qualquer munição a rodo....

Sobre a storage eu não coloquei para adicionar 1 storage, assim ficando com 2 se já houvesse 1...

Eu coloquei para alterar o valor para o número.

Ou seja, mesmo se tiver 1, irá alterar para 2, e se tiver 2 irá alterar para 1 ao invés de somar +1.

 

Sobre a arma no slot está ainda configurada, mas isto não é problema, pois no antigo script já estava configurado, a única diferença é que agora ela precisa estar exatamente na mão esquerda.

Mas também da para mudar, caso haja necessidade.

Matador18M
07 de novembro de 2013 às 00:20

@Adriano nao funciono pois fala que prescizo de chumbos se ja estao na minha bp

Mais Obrigado deis de ja