Ir para conteúdo
  • Cadastre-se

[PEDIDO] Condition para munições(ACTION ou WEAPON)


Posts Recomendados

Olá pessoal!
Não vi nada nas regras da seção sobre um intervalo de tópicos, dúvidas ou algo do tipo.. Então como estou desenvolvendo um OT, necessitarei muito da ajuda de vocês do fórum, já que meus conhecimentos de script não vão muito além de HTML e CSS ;x


O usuário zipter98 me ajudou muito com um código para que, a mesma arma use diversas munições, segue aqui o código:

local ar1 = createCombatArea{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
function doPlayerShootBazooka(cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds)
    if rounds == nil then rounds = 1 end
    exhaustion.set(cid, 57193, exhaust)
    doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), dist_effect)
    doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getThingPos(target), area, -min, -max, effect)
    if rounds == times then
        return true
    end
    addEvent(doPlayerShootBazooka, shots_delay, cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds+1)
end
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local weapons = { -- [ID da arma] = {tiros, delay_dos_tiros, ammo, area, dano_min, dano_max, efeito, distance_effect, exhaustion},
        [2447] = {
            shots = 1,
            shots_delay = 50,
            area = ar1,
            exha = 5,
            ammo = {
                --Configure aqui as munições da arma.
                [11400] = {min = 25600, max = 35720, effect = 15, dist_effect = 8},
                [11399] = {min = 25600, max = 35720, effect = 48, dist_effect = 8},
                [11398] = {min = 25600, max = 35720, effect = 51, dist_effect = 8},
                [11397] = {min = 25600, max = 35720, effect = 43, dist_effect = 8},
                [11396] = {min = 25600, max = 35720, effect = 7, dist_effect = 8},
                [11395] = {min = 25600, max = 35720, effect = 20, dist_effect = 8},
            },
        },
    }
    local gun = weapons[item.itemid]
    
    if gun then
        if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then
            doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true
        elseif getPlayerStorageValue(cid, 18391) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar enquanto dirige.") return true
        elseif getPlayerStorageValue(cid, 18393) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar com o capacete.") return true
        elseif exhaustion.check(cid, 57193) then
            doPlayerSendCancel(cid, "Você está exausto.") return true
        elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid < 1 then
            return doPlayerSendCancel(cid, "A munição deve estar equipada no slot da munição.")
        elseif not gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid] then
            return doPlayerSendCancel(cid, "Wrong ammo for this gun.")
        elseif getPlayerItemCount(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) < gun.shots then
            doPlayerSendCancel(cid, "Você não possui munição.") return true
        end
        local ammo = gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid]
        doPlayerRemoveItem(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid, gun.shots)
        doPlayerShootBazooka(cid, itemEx.uid, gun.shots, gun.shots_delay, gun.area, ammo.min, ammo.max, ammo.effect, ammo.dist_effect, gun.exha)
    end
    return true
end

Infelizmente o zipter98 não entende de conditions e necessito de alguém que saiba para acrescentar os seguintes efeitos a tais itens:

 

 

As conditions devem ser feitas em um arquivo separado ao do lança granadas, em ACTIONS ou WEAPONS para evitar BUGS, então linkarei no actions.xml assim:
 

<action itemid="2447" script="launchergrenade.lua"/>
<action itemid="11395; 11396; 11397; 11398; 11399; 11400" script="ammocondition.lua"/>

 

Os itens a seguir, devem acrescentar tais conditions:

 

(ps: com tempo configurável para cada uma delas)

11400 - Burn

11399 - Paralise

11398 - Confusion

11397 - Freeze( congelar )

11395 - Poison

 

 

E caso alguém saiba como arrumar, o código acima está 100% funcional, o único problema é que quando usa a arma no alvo, ele segue até o alvo para poder atirar(o código base dele não fazia isso, atirava em distância mesmo)


PS: SE FOR EM ACTION USAREI O SCRIPT DO zipter98, SE FOR FEITO EM WEAPON ENTÃO CONFIGURAREI NO MODO TRADICIONAL

Desde já, agradeço a quem ajudar e obrigado a todos que lerem esse tópico, GRATO!

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

tente assim:

local ar1 = createCombatArea{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
local freeze = createConditionObject(CONDITION_FREEZING)
setConditionParam(freeze, CONDITION_PARAM_TICKS, 10000)   
setConditionFormula(freeze, -0.5, 0, -0.5, 0)
 
local burning = createConditionObject(CONDITION_FIRE)
setConditionParam(burning, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(burning, -0.5, 0, -0.5, 0)
 
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(poison, -0.5, 0, -0.5, 0)
 
local confusion = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(confusion, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(confusion, -0.5, 0, -0.5, 0)
 
local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(paralyze, -0.5, 0, -0.5, 0)
 
function doPlayerShootBazooka(cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds)
    if rounds == nil then rounds = 1 end
    exhaustion.set(cid, 57193, exhaust)
    doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), dist_effect)
    doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getThingPos(target), area, -min, -max, effect)
    if rounds == times then
        return true
    end
    addEvent(doPlayerShootBazooka, shots_delay, cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds+1)
end
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local weapons = { -- [iD da arma] = {tiros, delay_dos_tiros, ammo, area, dano_min, dano_max, efeito, distance_effect, exhaustion},
        [2447] = {
            shots = 1,
            shots_delay = 50,
            area = ar1,
            exha = 5,
            ammo = {
                --Configure aqui as munições da arma.
                [11400] = {min = 25600, max = 35720, effect = 15, dist_effect = 8},
                [11399] = {min = 25600, max = 35720, effect = 48, dist_effect = 8},
                [11398] = {min = 25600, max = 35720, effect = 51, dist_effect = 8},
                [11397] = {min = 25600, max = 35720, effect = 43, dist_effect = 8},
                [11396] = {min = 25600, max = 35720, effect = 7, dist_effect = 8},
                [11395] = {min = 25600, max = 35720, effect = 20, dist_effect = 8},
            },
        },
    }
    local gun = weapons[item.itemid]
    if gun then
        if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then
            doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true
        elseif getPlayerStorageValue(cid, 18391) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar enquanto dirige.") return true
        elseif getPlayerStorageValue(cid, 18393) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar com o capacete.") return true
        elseif exhaustion.check(cid, 57193) then
            doPlayerSendCancel(cid, "Você está exausto.") return true
        elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid < 1 then
            return doPlayerSendCancel(cid, "A munição deve estar equipada no slot da munição.")
        elseif not gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid] then
            return doPlayerSendCancel(cid, "Wrong ammo for this gun.")
        elseif getPlayerItemCount(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) < gun.shots then
            doPlayerSendCancel(cid, "Você não possui munição.") return true
        end
        local ammo = gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid]
        local condition = {
        [11400] = {burning},
        [11399] = {paralyze},
        [11398] = {confusion},
        [11397] = {poison},
        [11396] = {freeze},
        [11395] = {burning},
        }
        if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == true then
        doAddCondition(weapons.ammo, condition)
        doPlayerRemoveItem(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid, gun.shots)
        doPlayerShootBazooka(cid, itemEx.uid, gun.shots, gun.shots_delay, gun.area, ammo.min, ammo.max, ammo.effect, ammo.dist_effect, gun.exha)
    end
    return true
end

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites

tente assim:

local ar1 = createCombatArea{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
local freeze = createConditionObject(CONDITION_FREEZING)
setConditionParam(freeze, CONDITION_PARAM_TICKS, 10000)   
setConditionFormula(freeze, -0.5, 0, -0.5, 0)
 
local burning = createConditionObject(CONDITION_FIRE)
setConditionParam(burning, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(burning, -0.5, 0, -0.5, 0)
 
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(poison, -0.5, 0, -0.5, 0)
 
local confusion = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(confusion, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(confusion, -0.5, 0, -0.5, 0)
 
local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(paralyze, -0.5, 0, -0.5, 0)
 
function doPlayerShootBazooka(cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds)
    if rounds == nil then rounds = 1 end
    exhaustion.set(cid, 57193, exhaust)
    doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), dist_effect)
    doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getThingPos(target), area, -min, -max, effect)
    if rounds == times then
        return true
    end
    addEvent(doPlayerShootBazooka, shots_delay, cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds+1)
end
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local weapons = { -- [iD da arma] = {tiros, delay_dos_tiros, ammo, area, dano_min, dano_max, efeito, distance_effect, exhaustion},
        [2447] = {
            shots = 1,
            shots_delay = 50,
            area = ar1,
            exha = 5,
            ammo = {
                --Configure aqui as munições da arma.
                [11400] = {min = 25600, max = 35720, effect = 15, dist_effect = 8},
                [11399] = {min = 25600, max = 35720, effect = 48, dist_effect = 8},
                [11398] = {min = 25600, max = 35720, effect = 51, dist_effect = 8},
                [11397] = {min = 25600, max = 35720, effect = 43, dist_effect = 8},
                [11396] = {min = 25600, max = 35720, effect = 7, dist_effect = 8},
                [11395] = {min = 25600, max = 35720, effect = 20, dist_effect = 8},
            },
        },
    }
    local gun = weapons[item.itemid]
    if gun then
        if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then
            doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true
        elseif getPlayerStorageValue(cid, 18391) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar enquanto dirige.") return true
        elseif getPlayerStorageValue(cid, 18393) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar com o capacete.") return true
        elseif exhaustion.check(cid, 57193) then
            doPlayerSendCancel(cid, "Você está exausto.") return true
        elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid < 1 then
            return doPlayerSendCancel(cid, "A munição deve estar equipada no slot da munição.")
        elseif not gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid] then
            return doPlayerSendCancel(cid, "Wrong ammo for this gun.")
        elseif getPlayerItemCount(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) < gun.shots then
            doPlayerSendCancel(cid, "Você não possui munição.") return true
        end
        local ammo = gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid]
        local condition = {
        [11400] = {burning},
        [11399] = {paralyze},
        [11398] = {confusion},
        [11397] = {poison},
        [11396] = {freeze},
        [11395] = {burning},
        }
        if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == true then
        doAddCondition(weapons.ammo, condition)
        doPlayerRemoveItem(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid, gun.shots)
        doPlayerShootBazooka(cid, itemEx.uid, gun.shots, gun.shots_delay, gun.area, ammo.min, ammo.max, ammo.effect, ammo.dist_effect, gun.exha)
    end
    return true
end

primeiramente apareceu essa mensagem, pois faltava um END no fim do código

[10/05/2015 15:17:35] [Error - LuaScriptInterface::loadFile] data/actions/scripts/launchergrenade.lua:98: 'end' expected (to close 'function' at line 47) near '<eof>'
[10/05/2015 15:17:35] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/launchergrenade.lua)
[10/05/2015 15:17:36] data/actions/scripts/launchergrenade.lua:98: 'end' expected (to close 'function' at line 47) near '<eof>'
[10/05/2015 15:17:36] Reloaded actions.

 

acrescentando o ultimo END, aparece essa

[10/05/2015 15:17:57] [Error - Action Interface]
[10/05/2015 15:17:57] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:17:57] Description:
[10/05/2015 15:17:57] (luaSetConditionFormula) Condition not found
[10/05/2015 15:17:57] Reloaded actions]
Link para o post
Compartilhar em outros sites

acho que foi um erro meu *(eu tenho um probleminha com ends (vai entender  :hum:))

tente assim:

local ar1 = createCombatArea{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
local freeze = createConditionObject(CONDITION_FREEZING)
setConditionParam(freeze, CONDITION_PARAM_TICKS, 10000)   
setConditionFormula(freeze, -0.5, 0, -0.5, 0)
 
local burning = createConditionObject(CONDITION_FIRE)
setConditionParam(burning, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(burning, -0.5, 0, -0.5, 0)
 
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(poison, -0.5, 0, -0.5, 0)
 
local confusion = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(confusion, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(confusion, -0.5, 0, -0.5, 0)
 
local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(paralyze, -0.5, 0, -0.5, 0)
 
function doPlayerShootBazooka(cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds)
    if rounds == nil then rounds = 1 end
    exhaustion.set(cid, 57193, exhaust)
    if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == true then
    local cond = doAddCondition(cid, condition.itemid)
    local condition = {
        [11400] = {burning},
        [11399] = {paralyze},
        [11398] = {confusion},
        [11397] = {poison},
        [11396] = {freeze},
        [11395] = {burning},
        }
    doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), dist_effect, cond)
    doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getThingPos(target), area, -min, -max, effect)
    if rounds == times then
        return true
    end
    addEvent(doPlayerShootBazooka, shots_delay, cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds+1)
end
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local weapons = { -- [iD da arma] = {tiros, delay_dos_tiros, ammo, area, dano_min, dano_max, efeito, distance_effect, exhaustion},
        [2447] = {
            shots = 1,
            shots_delay = 50,
            area = ar1,
            exha = 5,
            ammo = {
                --Configure aqui as munições da arma.
                [11400] = {min = 25600, max = 35720, effect = 15, dist_effect = 8},
                [11399] = {min = 25600, max = 35720, effect = 48, dist_effect = 8},
                [11398] = {min = 25600, max = 35720, effect = 51, dist_effect = 8},
                [11397] = {min = 25600, max = 35720, effect = 43, dist_effect = 8},
                [11396] = {min = 25600, max = 35720, effect = 7, dist_effect = 8},
                [11395] = {min = 25600, max = 35720, effect = 20, dist_effect = 8},
            },
        },
    }
    local gun = weapons[item.itemid]
    if gun then
        if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then
            doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true
        elseif getPlayerStorageValue(cid, 18391) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar enquanto dirige.") return true
        elseif getPlayerStorageValue(cid, 18393) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar com o capacete.") return true
        elseif exhaustion.check(cid, 57193) then
            doPlayerSendCancel(cid, "Você está exausto.") return true
        elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid < 1 then
            return doPlayerSendCancel(cid, "A munição deve estar equipada no slot da munição.")
        elseif not gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid] then
            return doPlayerSendCancel(cid, "Wrong ammo for this gun.")
        elseif getPlayerItemCount(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) < gun.shots then
            doPlayerSendCancel(cid, "Você não possui munição.") return true
        end
        local ammo = gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid]
        doPlayerRemoveItem(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid, gun.shots)
        doPlayerShootBazooka(cid, itemEx.uid, gun.shots, gun.shots_delay, gun.area, ammo.min, ammo.max, ammo.effect, ammo.dist_effect, gun.exha)
    end
    return true
end

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites

acho que foi um erro meu *(eu tenho um probleminha com ends (vai entender  :hum:))

tente assim:

local ar1 = createCombatArea{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
local freeze = createConditionObject(CONDITION_FREEZING)
setConditionParam(freeze, CONDITION_PARAM_TICKS, 10000)   
setConditionFormula(freeze, -0.5, 0, -0.5, 0)
 
local burning = createConditionObject(CONDITION_FIRE)
setConditionParam(burning, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(burning, -0.5, 0, -0.5, 0)
 
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(poison, -0.5, 0, -0.5, 0)
 
local confusion = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(confusion, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(confusion, -0.5, 0, -0.5, 0)
 
local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(paralyze, -0.5, 0, -0.5, 0)
 
function doPlayerShootBazooka(cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds)
    if rounds == nil then rounds = 1 end
    exhaustion.set(cid, 57193, exhaust)
    if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == true then
    local cond = doAddCondition(cid, condition.itemid)
    local condition = {
        [11400] = {burning},
        [11399] = {paralyze},
        [11398] = {confusion},
        [11397] = {poison},
        [11396] = {freeze},
        [11395] = {burning},
        }
    doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), dist_effect, cond)
    doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getThingPos(target), area, -min, -max, effect)
    if rounds == times then
        return true
    end
    addEvent(doPlayerShootBazooka, shots_delay, cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds+1)
end
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local weapons = { -- [iD da arma] = {tiros, delay_dos_tiros, ammo, area, dano_min, dano_max, efeito, distance_effect, exhaustion},
        [2447] = {
            shots = 1,
            shots_delay = 50,
            area = ar1,
            exha = 5,
            ammo = {
                --Configure aqui as munições da arma.
                [11400] = {min = 25600, max = 35720, effect = 15, dist_effect = 8},
                [11399] = {min = 25600, max = 35720, effect = 48, dist_effect = 8},
                [11398] = {min = 25600, max = 35720, effect = 51, dist_effect = 8},
                [11397] = {min = 25600, max = 35720, effect = 43, dist_effect = 8},
                [11396] = {min = 25600, max = 35720, effect = 7, dist_effect = 8},
                [11395] = {min = 25600, max = 35720, effect = 20, dist_effect = 8},
            },
        },
    }
    local gun = weapons[item.itemid]
    if gun then
        if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then
            doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true
        elseif getPlayerStorageValue(cid, 18391) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar enquanto dirige.") return true
        elseif getPlayerStorageValue(cid, 18393) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar com o capacete.") return true
        elseif exhaustion.check(cid, 57193) then
            doPlayerSendCancel(cid, "Você está exausto.") return true
        elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid < 1 then
            return doPlayerSendCancel(cid, "A munição deve estar equipada no slot da munição.")
        elseif not gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid] then
            return doPlayerSendCancel(cid, "Wrong ammo for this gun.")
        elseif getPlayerItemCount(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) < gun.shots then
            doPlayerSendCancel(cid, "Você não possui munição.") return true
        end
        local ammo = gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid]
        doPlayerRemoveItem(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid, gun.shots)
        doPlayerShootBazooka(cid, itemEx.uid, gun.shots, gun.shots_delay, gun.area, ammo.min, ammo.max, ammo.effect, ammo.dist_effect, gun.exha)
    end
    return true
end

Aueahuha tendi

Depois de acrescentar o ultimo END novamente, deu isso

[10/05/2015 15:33:13] [Error - Action Interface]
[10/05/2015 15:33:13] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:33:13] Description:
[10/05/2015 15:33:13] (luaSetConditionFormula) Condition not found

[10/05/2015 15:33:13] [Error - Action Interface]
[10/05/2015 15:33:13] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:33:13] Description:
[10/05/2015 15:33:13] (luaSetConditionFormula) Condition not found

[10/05/2015 15:33:13] [Error - Action Interface]
[10/05/2015 15:33:13] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:33:13] Description:
[10/05/2015 15:33:13] (luaSetConditionFormula) Condition not found

[10/05/2015 15:33:13] [Error - Action Interface]
[10/05/2015 15:33:13] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:33:13] Description:
[10/05/2015 15:33:13] (luaSetConditionFormula) Condition not found
[10/05/2015 15:33:13] [Warning - Event::loadScript] Event onUse not found (data/actions/scripts/launchergrenade.lua)
[10/05/2015 15:33:13] Reloaded actions.

[10/05/2015 15:33:22] [Error - Action Interface]
[10/05/2015 15:33:22] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:33:22] Description:
[10/05/2015 15:33:22] (luaSetConditionFormula) Condition not found

[10/05/2015 15:33:22] [Error - Action Interface]
[10/05/2015 15:33:22] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:33:22] Description:
[10/05/2015 15:33:22] (luaSetConditionFormula) Condition not found

[10/05/2015 15:33:22] [Error - Action Interface]
[10/05/2015 15:33:22] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:33:22] Description:
[10/05/2015 15:33:22] (luaSetConditionFormula) Condition not found

[10/05/2015 15:33:22] [Error - Action Interface]
[10/05/2015 15:33:22] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:33:22] Description:
[10/05/2015 15:33:22] (luaSetConditionFormula) Condition not found
[10/05/2015 15:33:22] [Warning - Event::loadScript] Event onUse not found (data/actions/scripts/launchergrenade.lua)
[10/05/2015 15:33:22] Reloaded actions.

Link para o post
Compartilhar em outros sites

local ar1 = createCombatArea{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
local freeze = createConditionObject(CONDITION_FREEZING)
setConditionParam(freeze, CONDITION_PARAM_TICKS, 10000)   
setConditionFormula(freeze, -0.5, 0, -0.5, 0)
 
local burning = createConditionObject(CONDITION_FIRE)
setConditionParam(burning, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(burning, -0.5, 0, -0.5, 0)
 
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(poison, -0.5, 0, -0.5, 0)
 
local confusion = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(confusion, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(confusion, -0.5, 0, -0.5, 0)
 
local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(paralyze, -0.5, 0, -0.5, 0)
    local condition = {
        [11400] = {burning},
        [11399] = {paralyze},
        [11398] = {confusion},
        [11397] = {poison},
        [11396] = {freeze},
        [11395] = {burning},
        }
function doPlayerShootBazooka(cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds)
    if rounds == nil then rounds = 1 end
    exhaustion.set(cid, 57193, exhaust)
    if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == true then
    local cond = doAddCondition[(cid, condition).itemid]
    doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), dist_effect, cond)
    doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getThingPos(target), area, -min, -max, effect)
    if rounds == times then
        return true
    end
    addEvent(doPlayerShootBazooka, shots_delay, cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds+1)
end
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local weapons = { -- [iD da arma] = {tiros, delay_dos_tiros, ammo, area, dano_min, dano_max, efeito, distance_effect, exhaustion},
        [2447] = {
            shots = 1,
            shots_delay = 50,
            area = ar1,
            exha = 5,
            ammo = {
                --Configure aqui as munições da arma.
                [11400] = {min = 25600, max = 35720, effect = 15, dist_effect = 8},
                [11399] = {min = 25600, max = 35720, effect = 48, dist_effect = 8},
                [11398] = {min = 25600, max = 35720, effect = 51, dist_effect = 8},
                [11397] = {min = 25600, max = 35720, effect = 43, dist_effect = 8},
                [11396] = {min = 25600, max = 35720, effect = 7, dist_effect = 8},
                [11395] = {min = 25600, max = 35720, effect = 20, dist_effect = 8},
            },
        },
    }
    local gun = weapons[item.itemid]
    if gun then
        if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then
            doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true
        elseif getPlayerStorageValue(cid, 18391) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar enquanto dirige.") return true
        elseif getPlayerStorageValue(cid, 18393) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar com o capacete.") return true
        elseif exhaustion.check(cid, 57193) then
            doPlayerSendCancel(cid, "Você está exausto.") return true
        elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid < 1 then
            return doPlayerSendCancel(cid, "A munição deve estar equipada no slot da munição.")
        elseif not gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid] then
            return doPlayerSendCancel(cid, "Wrong ammo for this gun.")
        elseif getPlayerItemCount(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) < gun.shots then
            doPlayerSendCancel(cid, "Você não possui munição.") return true
        end
        local ammo = gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid]
        doPlayerRemoveItem(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid, gun.shots)
        doPlayerShootBazooka(cid, itemEx.uid, gun.shots, gun.shots_delay, gun.area, ammo.min, ammo.max, ammo.effect, ammo.dist_effect, gun.exha)
    end
   end
    return true
end

tente assim acho que agora vai

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites

Atualmente, esse erro

[10/05/2015 15:50:44] [Error - LuaScriptInterface::loadFile] data/actions/scripts/launchergrenade.lua:47: ')' expected near ','
[10/05/2015 15:50:44] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/launchergrenade.lua)
[10/05/2015 15:50:44] data/actions/scripts/launchergrenade.lua:47: ')' expected near ','
[10/05/2015 15:50:44] Reloaded actions.

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

tente:

local ar1 = createCombatArea{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 
local freeze = createConditionObject(CONDITION_FREEZING)
setConditionParam(freeze, CONDITION_PARAM_TICKS, 10000)   
setConditionFormula(freeze, -0.5, 0, -0.5, 0)
 
local burning = createConditionObject(CONDITION_FIRE)
setConditionParam(burning, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(burning, -0.5, 0, -0.5, 0)
 
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(poison, -0.5, 0, -0.5, 0)
 
local confusion = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(confusion, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(confusion, -0.5, 0, -0.5, 0)
 
local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(paralyze, -0.5, 0, -0.5, 0)
    local condition = {
        [11400] = {burning},
        [11399] = {paralyze},
        [11398] = {confusion},
        [11397] = {poison},
        [11396] = {freeze},
        [11395] = {burning},
        }
function doPlayerShootBazooka(cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds)
    if rounds == nil then rounds = 1 end
    exhaustion.set(cid, 57193, exhaust)
    if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == true then
    local cond = doAddCondition[(condition).itemid]
    doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), dist_effect, cond)
    doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getThingPos(target), area, -min, -max, effect)
    if rounds == times then
        return true
    end
    addEvent(doPlayerShootBazooka, shots_delay, cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds+1)
end
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local weapons = { -- [iD da arma] = {tiros, delay_dos_tiros, ammo, area, dano_min, dano_max, efeito, distance_effect, exhaustion},
        [2447] = {
            shots = 1,
            shots_delay = 50,
            area = ar1,
            exha = 5,
            ammo = {
                --Configure aqui as munições da arma.
                [11400] = {min = 25600, max = 35720, effect = 15, dist_effect = 8},
                [11399] = {min = 25600, max = 35720, effect = 48, dist_effect = 8},
                [11398] = {min = 25600, max = 35720, effect = 51, dist_effect = 8},
                [11397] = {min = 25600, max = 35720, effect = 43, dist_effect = 8},
                [11396] = {min = 25600, max = 35720, effect = 7, dist_effect = 8},
                [11395] = {min = 25600, max = 35720, effect = 20, dist_effect = 8},
            },
        },
    }
    local gun = weapons[item.itemid]
    if gun then
        if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then
            doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true
        elseif getPlayerStorageValue(cid, 18391) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar enquanto dirige.") return true
        elseif getPlayerStorageValue(cid, 18393) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar com o capacete.") return true
        elseif exhaustion.check(cid, 57193) then
            doPlayerSendCancel(cid, "Você está exausto.") return true
        elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid < 1 then
            return doPlayerSendCancel(cid, "A munição deve estar equipada no slot da munição.")
        elseif not gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid] then
            return doPlayerSendCancel(cid, "Wrong ammo for this gun.")
        elseif getPlayerItemCount(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) < gun.shots then
            doPlayerSendCancel(cid, "Você não possui munição.") return true
        end
        local ammo = gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid]
        doPlayerRemoveItem(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid, gun.shots)
        doPlayerShootBazooka(cid, itemEx.uid, gun.shots, gun.shots_delay, gun.area, ammo.min, ammo.max, ammo.effect, ammo.dist_effect, gun.exha)
    end
   end
    return true
end

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites

Erro

[10/05/2015 15:58:31] [Error - Action Interface]
[10/05/2015 15:58:31] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:58:31] Description:
[10/05/2015 15:58:31] (luaSetConditionFormula) Condition not found

[10/05/2015 15:58:31] [Error - Action Interface]
[10/05/2015 15:58:31] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:58:31] Description:
[10/05/2015 15:58:31] (luaSetConditionFormula) Condition not found

[10/05/2015 15:58:31] [Error - Action Interface]
[10/05/2015 15:58:31] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:58:31] Description:
[10/05/2015 15:58:31] (luaSetConditionFormula) Condition not found

[10/05/2015 15:58:31] [Error - Action Interface]
[10/05/2015 15:58:31] data/actions/scripts/launchergrenade.lua
[10/05/2015 15:58:31] Description:
[10/05/2015 15:58:31] (luaSetConditionFormula) Condition not found
[10/05/2015 15:58:31] [Warning - Event::loadScript] Event onUse not found (data/actions/scripts/launchergrenade.lua)
[10/05/2015 15:58:31] Reloaded actions.

 

será que não teria que fazer o condition em outro arquivo separado?
tipo, carregar um arquivo em action que adiciona condition aos itens 11395 ao 11400 e o outro que seria o lançador, que já usaria o código atual?
 

   
<action itemid="2447" script="launchergrenade.lua"/>
<action itemid="11395; 11396; 11397; 11398; 11399; 11400" script="ammocondition.lua"/>
Editado por biel.stocco (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Ta muito complicado adicionar a condition  -.-... tente esse:

local ar1 = createCombatArea{

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 3, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
 

function doPlayerShootBazooka(cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds)
if condition[item.itemid] == getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid then
local cond = condition[item.itemid]
local condition = {
        [11400] = {burning},
        [11399] = {paralyze},
        [11398] = {confusion},
        [11397] = {poison},
        [11396] = {freeze},
        [11395] = {burning},
        }
local freeze = createConditionObject(CONDITION_FREEZING)
setConditionParam(freeze, CONDITION_PARAM_TICKS, 10000)   
setConditionFormula(freeze, -0.5, 0, -0.5, 0)
 
local burning = createConditionObject(CONDITION_FIRE)
setConditionParam(burning, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(burning, -0.5, 0, -0.5, 0)
 
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(poison, -0.5, 0, -0.5, 0)
 
local confusion = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(confusion, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(confusion, -0.5, 0, -0.5, 0)
 
local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(paralyze, -0.5, 0, -0.5, 0)
 
    if rounds == nil then rounds = 1 end
    exhaustion.set(cid, 57193, exhaust)
    doSendDistanceShoot(getCreaturePosition(cid), getThingPos(target), dist_effect, cond)
    doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, getThingPos(target), area, -min, -max, effect)
    if rounds == times then
        return true
    end
    addEvent(doPlayerShootBazooka, shots_delay, cid, target, times, delay, area, min, max, effect, dist_effect, exhaust, rounds+1)
end
end

 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    local weapons = { -- [ID da arma] = {tiros, delay_dos_tiros, ammo, area, dano_min, dano_max, efeito, distance_effect, exhaustion},
        [2447] = {
            shots = 1,
            shots_delay = 50,
            area = ar1,
            exha = 5,
            ammo = {
                --Configure aqui as munições da arma.
                [11400] = {min = 25600, max = 35720, effect = 15, dist_effect = 8},
                [11399] = {min = 25600, max = 35720, effect = 48, dist_effect = 8},
                [11398] = {min = 25600, max = 35720, effect = 51, dist_effect = 8},
                [11397] = {min = 25600, max = 35720, effect = 43, dist_effect = 8},
                [11396] = {min = 25600, max = 35720, effect = 7, dist_effect = 8},
                [11395] = {min = 25600, max = 35720, effect = 20, dist_effect = 8},
            },
        },
    }
    local gun = weapons[item.itemid]
    
    
if gun then
        if getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid ~= item.itemid then
            doPlayerSendCancel(cid, "O lançador deve estar equipado no slot da arma.") return true
        elseif getPlayerStorageValue(cid, 18391) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar enquanto dirige.") return true
        elseif getPlayerStorageValue(cid, 18393) == 1 then
            doPlayerSendCancel(cid, "Você não pode atirar com o capacete.") return true
        elseif exhaustion.check(cid, 57193) then
            doPlayerSendCancel(cid, "Você está exausto.") return true
        elseif getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid < 1 then
            return doPlayerSendCancel(cid, "A munição deve estar equipada no slot da munição.")
        elseif not gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid] then
            return doPlayerSendCancel(cid, "Wrong ammo for this gun.")
        elseif getPlayerItemCount(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) < gun.shots then
            doPlayerSendCancel(cid, "Você não possui munição.") return true
        end
        local ammo = gun.ammo[getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid]
        doPlayerRemoveItem(cid, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid, gun.shots)
        doPlayerShootBazooka(cid, itemEx.uid, gun.shots, gun.shots_delay, gun.area, ammo.min, ammo.max, ammo.effect, ammo.dist_effect, gun.exha)
    end
    return true
end

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites

carrega normal, porém é como acontece aqui:

[10/05/2015 18:43:10] Reloaded actions.
[10/05/2015 18:43:11] Reloaded actions.

[10/05/2015 18:43:56] [Error - Action Interface]
[10/05/2015 18:43:56] data/actions/scripts/launchergrenade.lua:onUse
[10/05/2015 18:43:56] Description:
[10/05/2015 18:43:56] data/actions/scripts/launchergrenade.lua:17: attempt to index global 'item' (a nil value)
[10/05/2015 18:43:56] stack traceback:
[10/05/2015 18:43:56]     data/actions/scripts/launchergrenade.lua:17: in function 'doPlayerShootBazooka'
[10/05/2015 18:43:56]     data/actions/scripts/launchergrenade.lua:97: in function <data/actions/scripts/launchergrenade.lua:59>



manin, não prefere tentar como eu te disse, deixar o script do lança granadas do jeito que tá, porém fazer um outro script para as conditions das munições?

Link para o post
Compartilhar em outros sites

Agora vai  :P nem pensei em usar uma função para trocar a condition

em data/weapons/scripts crie o arquivo com o nome conditionarma.lua e coloque nele:

local freeze = createConditionObject(CONDITION_FREEZING)
setConditionParam(freeze, CONDITION_PARAM_TICKS, 10000)   
setConditionFormula(freeze, -0.5, 0, -0.5, 0) 
local burning = createConditionObject(CONDITION_FIRE)
setConditionParam(burning, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(burning, -0.5, 0, -0.5, 0)
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(poison, -0.5, 0, -0.5, 0)
local confusion = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(confusion, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(confusion, -0.5, 0, -0.5, 0)
local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(paralyze, -0.5, 0, -0.5, 0)
 
local combat = createCombatObject()
setCombatCondition(combat, condition)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)
local area = createCombatArea( { {0, 3, 0}, {0, 3, 0}, {0, 3, 0} } )
setCombatArea(combat, area)
 
function onUseWeapon(player, var)
local condition = math.random(burning, freeze, poison, confusion, paralyze)
local itens = {11400, 11399, 11398, 11397, 11396, 11395}
if getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid == itens then
return doCombat(player, combat, var)
end

e em data/weapons abra o weapons.xml e coloque o codigo:

<distance id="IDDAARMA" script="conditionarma.lua"/>

 

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites

Vou chorar auehaeuae
 

[10/05/2015 20:08:18] [Error - Weapon Interface]
[10/05/2015 20:08:18] data/weapons/scripts/ammo.lua
[10/05/2015 20:08:18] Description:
[10/05/2015 20:08:18] (luaSetConditionFormula) Condition not found

[10/05/2015 20:08:18] [Error - Weapon Interface]
[10/05/2015 20:08:18] data/weapons/scripts/ammo.lua
[10/05/2015 20:08:18] Description:
[10/05/2015 20:08:18] (luaSetConditionFormula) Condition not found

[10/05/2015 20:08:18] [Error - Weapon Interface]
[10/05/2015 20:08:18] data/weapons/scripts/ammo.lua
[10/05/2015 20:08:18] Description:
[10/05/2015 20:08:18] (luaSetConditionFormula) Condition not found

[10/05/2015 20:08:18] [Error - Weapon Interface]
[10/05/2015 20:08:18] data/weapons/scripts/ammo.lua
[10/05/2015 20:08:18] Description:
[10/05/2015 20:08:18] (luaSetConditionFormula) Condition not found

[10/05/2015 20:08:18] [Error - Weapon Interface]
[10/05/2015 20:08:18] data/weapons/scripts/ammo.lua
[10/05/2015 20:08:18] Description:
[10/05/2015 20:08:18] (luaSetCombatCondition) Condition not found

ps: tudo sendo feito em action, não estou usando weapon embora testei em tal

Editado por biel.stocco (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Mudar de actions para weapons não muda nada deis de que configure a arma :P :
<distance id="IDDAARMA" script="conditionarma.lua"/>

local freeze = createConditionObject(CONDITION_FREEZING)
setConditionParam(freeze, CONDITION_PARAM_TICKS, 10000)   
setConditionFormula(freeze, -0.5, 0, -0.5, 0) 
local burning = createConditionObject(CONDITION_FIRE)
setConditionParam(burning, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(burning, -0.5, 0, -0.5, 0)
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(poison, -0.5, 0, -0.5, 0)
local confusion = createConditionObject(CONDITION_PHYSICAL)
setConditionParam(confusion, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(confusion, -0.5, 0, -0.5, 0)
local paralyze = createConditionObject(CONDITION_PARALYZE)
setConditionParam(paralyze, CONDITION_PARAM_TICKS, 10000)
setConditionFormula(paralyze, -0.5, 0, -0.5, 0)
 
local combat = createCombatObject()
setCombatCondition(combat, math.random(burning, freeze, poison, confusion, paralyze))
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)
local area = createCombatArea( { {0, 3, 0}, {0, 3, 0}, {0, 3, 0} } )
setCombatArea(combat, area)
 
function onUseWeapon(player, var)
local itens = {11400, 11399, 11398, 11397, 11396, 11395}
if getPlayerSlotItem(cid, CONST_SLOT_AMMO).uid == itens then
return doCombat(player, combat, var)
end

vou sair até amanhã

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites
[10/05/2015 22:41:07] [Error - Weapon Interface]
[10/05/2015 22:41:07] data/weapons/scripts/ammo.lua
[10/05/2015 22:41:07] Description:
[10/05/2015 22:41:07] (luaSetConditionFormula) Condition not found

[10/05/2015 22:41:07] [Error - Weapon Interface]
[10/05/2015 22:41:07] data/weapons/scripts/ammo.lua
[10/05/2015 22:41:07] Description:
[10/05/2015 22:41:07] (luaSetConditionFormula) Condition not found

[10/05/2015 22:41:07] [Error - Weapon Interface]
[10/05/2015 22:41:07] data/weapons/scripts/ammo.lua
[10/05/2015 22:41:07] Description:
[10/05/2015 22:41:07] (luaSetConditionFormula) Condition not found

[10/05/2015 22:41:07] [Error - Weapon Interface]
[10/05/2015 22:41:07] data/weapons/scripts/ammo.lua
[10/05/2015 22:41:07] Description:
[10/05/2015 22:41:07] (luaSetConditionFormula) Condition not found

[10/05/2015 22:41:07] [Error - Weapon Interface]
[10/05/2015 22:41:07] data/weapons/scripts/ammo.lua
[10/05/2015 22:41:07] Description:
[10/05/2015 22:41:07] data/weapons/scripts/ammo.lua:18: wrong number of arguments
[10/05/2015 22:41:07] [Warning - Event::loadScript] Cannot load script (data/weapons/scripts/ammo.lua)
Editado por biel.stocco (veja o histórico de edições)
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