Ir para conteúdo
  • Cadastre-se

(Resolvido)Runas inf exceto sd


Ir para solução Resolvido por MatheusDuarte,

Posts Recomendados

Acredito que a melhor maneira seria usando action, posta o script da SD ai.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
5 minutos atrás, Way20 disse:

Acredito que a melhor maneira seria usando action, posta o script da SD ai.

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -10, 5, 5, 0, 0)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

Todas as runas estão infinitas 

Link para o post
Compartilhar em outros sites
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -10, 5, 5, 0, 0)

function onCastSpell(cid, var)
	doPlayerRemoveItem(cid,2268,1)
	return doCombat(cid, combat, var)
end

 

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
Em 04/08/2017 ás 06:15, Way20 disse:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -10, 5, 5, 0, 0)

function onCastSpell(cid, var)
	doPlayerRemoveItem(cid,2268,1)
	return doCombat(cid, combat, var)
end

 

Opa desculpa... Mas essa script está 100 funcional. Porém tem um bug, Se vc por a sd rune no chão ela fica infinita..... 

Link para o post
Compartilhar em outros sites
6 horas atrás, helix758 disse:

Opa desculpa... Mas essa script está 100 funcional. Porém tem um bug, Se vc por a sd rune no chão ela fica infinita..... 

Isso vai ser difícil de resolver, pois ele fez com que ao usar uma sd seja removida uma também, mas ao joga-las no chão, elas não estão sendo usadas, funcionando apenas a config do servidor, fazendo com que ela seja infinita.

Não sei se tem como deixar apenas uma runa sem ser infinita.

Talvez você queira ver:

BestBaiak

[FAQ]Remere's Map Editor - Dúvidas e soluções de bugs 

 

Contato:

1.png.dadb3fc3ee6ffd08292705b6a71e3d88.png Discord:

Link para o post
Compartilhar em outros sites
8 horas atrás, helix758 disse:

Opa desculpa... Mas essa script está 100 funcional. Porém tem um bug, Se vc por a sd rune no chão ela fica infinita..... 

 

1 hora atrás, Werner disse:

Isso vai ser difícil de resolver, pois ele fez com que ao usar uma sd seja removida uma também, mas ao joga-las no chão, elas não estão sendo usadas, funcionando apenas a config do servidor, fazendo com que ela seja infinita.

Não sei se tem como deixar apenas uma runa sem ser infinita.

Então, eu imaginei que isso poderia ocorrer, mesmo assim decidi arriscar fazendo direto na spell. A melhor maneira de fazer seria usando o que eu sugeri, action, assim acredito que o problema possa ser resolvido, mais tarde eu escrevo algo e posto aqui pra você testar.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
--<action itemid="2268" event="script" value="other/sd.lua"/>--

local exhaust = 2

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -10, 5, 5, 0, 0)
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if itemEx.itemid == 2268 then
		if exhaustion.get(cid, 1800) then
			doPlayerSendCancel(cid,"You are exahausted.")
			return true
		end
		exhaustion.set(cid, 1800, exhaust)
		doCombat(cid,combat)
		doRemoveItem(itemEx.uid,1)
	end
	return true
end

Não esqueça de retirar a SD das spells.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
13 horas atrás, Way20 disse:

--<action itemid="2268" event="script" value="other/sd.lua"/>--

local exhaust = 2

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -10, 5, 5, 0, 0)
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if itemEx.itemid == 2268 then
		if exhaustion.get(cid, 1800) then
			doPlayerSendCancel(cid,"You are exahausted.")
			return true
		end
		exhaustion.set(cid, 1800, exhaust)
		doCombat(cid,combat)
		doRemoveItem(itemEx.uid,1)
	end
	return true
end

Não esqueça de retirar a SD das spells.

n funcionou a runa faz nada

Link para o post
Compartilhar em outros sites

Olá amigo, esta foi a solução que eu consegui para você;

a runa só poderá ser usada se o player estiver ao menos 1 em sua backpack

 

espero que  tenha ajudado! :)

 

Citar

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)

setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -10, 5, 5, 0, 0)

 

function onCastSpell(cid, var, item)
    if getPlayerItemCount(cid,2268) >= 1 then 
    doPlayerRemoveItem(cid, 2268, 1)
    return doCombat(cid, combat, var)
    else
    doPlayerSendCancel(cid, "You need a sudden death rune in your bag to use.")
end
end

 

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

Boa noite existe outra maneira alterando no Spells.xml
     <rune name="Sudden Death" id="2268" allowfaruse="1" charges="3" lvl="45" maglv="15" exhaustion="1600" needtarget="1" blocktype="solid" event="script" value="attack/sudden death.lua"/>
    <rune name="Icicle" id="2271" allowfaruse="1" charges="1" lvl="28" maglv="4" exhaustion="1300" needtarget="1" event="script" value="attack/icicle.lua"/>

 

Altere para Charges de 1 para 0 deixando assim:

 

 <rune name="Icicle" id="2271" allowfaruse="1" charges="0" lvl="28" maglv="4" exhaustion="1300" needtarget="1" event="script" value="attack/icicle.lua"/>

 

Espero ter ajudado.

Link para o post
Compartilhar em outros sites
23 horas atrás, MatheusDuarte disse:

Boa noite existe outra maneira alterando no Spells.xml
     <rune name="Sudden Death" id="2268" allowfaruse="1" charges="3" lvl="45" maglv="15" exhaustion="1600" needtarget="1" blocktype="solid" event="script" value="attack/sudden death.lua"/>
    <rune name="Icicle" id="2271" allowfaruse="1" charges="1" lvl="28" maglv="4" exhaustion="1300" needtarget="1" event="script" value="attack/icicle.lua"/>

 

Altere para Charges de 1 para 0 deixando assim:

 

 <rune name="Icicle" id="2271" allowfaruse="1" charges="0" lvl="28" maglv="4" exhaustion="1300" needtarget="1" event="script" value="attack/icicle.lua"/>

 

Espero ter ajudado.

não funciona xd

 

Link para o post
Compartilhar em outros sites
  • Solução
1 hora atrás, helix758 disse:

não funciona xd

 

removeRuneCharges = false 
troque para :
removeRuneCharges = true

Depois disso as runas que voce quer colocar infinitas voce vai no spells.xml e coloca charges="0".

Link para o post
Compartilhar em outros sites

Vamos tentar meio que uma "gambiarra".

 

Spoiler

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -10, 5, 5, 0, 0)

function onCastSpell(cid, var)
if doPlayerRemoveItem(cid,2268,1) then
return doCombat(cid, combat, var)
end
if #getAllBps(cid, 2268) > 0 then
doRemoveItem(getAllBps(cid, 2268)[1], 1)
doCombat(cid, combat, var)
return true
end        
end

function getAllBps(cid, id)
local allBps, p = {}, getPlayerPosition(cid)
for i = -1, 1 do
    for j = -1, 1 do
        pos = {x = p.x+i, y=p.y+j, z = p.z}
        for _, v in pairs(checkItemsOnFloorContainer(cid, id, pos)) do
            table.insert(allBps, v.uid)
        end
        local check_floor = getTileItemById(pos, id)
        if check_floor.uid > 0 then
            table.insert(allBps, check_floor.uid)
        end
    end
end
return allBps
end

function checkItemsOnFloorContainer(cid, id, pos)
    local backpacks = {}
    local check = false
    for i = 0, 255 do
        pos.stackpos = i
        tile = getTileThingByPos(pos)
        if tile.uid > 0 and isContainer(tile.uid) then
            check = true break
        end
    end
    if check == true then
        local items = getContainerItems(tile.uid)
        for i,x in pairs(items) do
            if id == tonumber(x.itemid) then
                table.insert(backpacks, x)
            end
        end
    end
    return backpacks
end

function getContainerItems(containeruid)
    local items = {}
    local containers = {}
    if type(getContainerSize(containeruid)) ~= "number" then
        return false
    end
    for slot = 0, getContainerSize(containeruid)-1 do
        local item = getContainerItem(containeruid, slot)
        if item.itemid == 0 then
        break
    end
    if isContainer(item.uid) then
        table.insert(containers, item.uid)
    end
        table.insert(items, item)
    end
    if #containers > 0 then
        for i,x in ipairs(getContainerItems(containers[1])) do
            table.insert(items, x)
        end
    table.remove(containers, 1)
    end
    return items
end

 

 

Substitua o que tem no arquivo da sd por isso aí acima. Vê aí se funciona.

 

Contato:

 

Link para o post
Compartilhar em outros sites
1 hora atrás, MatheusDuarte disse:

removeRuneCharges = false 
troque para :
removeRuneCharges = true

Depois disso as runas que voce quer colocar infinitas voce vai no spells.xml e coloca charges="0".

Saquei..

 

1 hora atrás, MatheusDuarte disse:

removeRuneCharges = false 
troque para :
removeRuneCharges = true

Depois disso as runas que voce quer colocar infinitas voce vai no spells.xml e coloca charges="0".

Um pouco de trabalho, mas quem quer deixar dessa forma compensa. Valeu!  Entre ai no meu noobwar pow open day 19/08

Link para o post
Compartilhar em outros sites
29 minutos atrás, helix758 disse:

Saquei..

 

Um pouco de trabalho, mas quem quer deixar dessa forma compensa. Valeu!  Entre ai no meu noobwar pow open day 19/08

OK REP+ <3

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