Skrypt nie mój , znaleziony na innym forum...
Spoiler: Wygląd: fireflanz Atak: przed siebie 3 kratki, ogień, zależy od skilla Atakuje 4 razy Podczas ataku gracz mówi: FIRE!
No więc robimy plik o nazwie miotacz ognia.lua w folderze data/actions/scripts, a do niego wklejamy:
Spoiler: local combatUp = createCombatObject() setCombatParam(combatUp, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combatUp, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combatUp, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combatUp, COMBAT_FORMULA_SKILL, 0.2, 10, 0.5, 20) local combatRight = createCombatObject() setCombatParam(combatRight, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combatRight, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combatRight, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combatRight, COMBAT_FORMULA_SKILL, 0.2, 10, 0.5, 20) local combatDown = createCombatObject() setCombatParam(combatDown, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combatDown, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combatDown, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combatDown, COMBAT_FORMULA_SKILL, 0.2, 10, 0.5, 20) local combatLeft = createCombatObject() setCombatParam(combatLeft, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combatLeft, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combatLeft, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combatLeft, COMBAT_FORMULA_SKILL, 0.2, 10, 0.5, 20) local arrUp = { {1, 1, 1}, {1, 1, 1}, {0, 1, 0}, {0, 1, 0}, {0, 2, 0} } local arrRight = { {0, 0, 1, 1}, {2, 1, 1, 1}, {0, 0, 1, 1} } local arrDown = { {0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {1, 1, 1}, {1, 1, 1} } local arrLeft = { {1, 1, 0, 0}, {1, 1, 1, 2}, {1, 1, 0, 0} } local areaUp = createCombatArea(arrUp) setCombatArea(combatUp, areaUp) local areaRight = createCombatArea(arrRight) setCombatArea(combatRight, areaRight) local areaDown = createCombatArea(arrDown) setCombatArea(combatDown, areaDown) local areaLeft = createCombatArea(arrLeft) setCombatArea(combatLeft, areaLeft) function onUse(cid, item, frompos, item2, topos) local exh = 2 -- Ile sekund exhausted local storage = 15681 if(os.time() > getPlayerStorageValue(cid,storage)) then setPlayerStorageValue(cid,storage,os.time()+exh) local x = {cid = cid, var = numberToVariant(cid)} fire(x) addEvent(fire,300,x) addEvent(fire,800,x) addEvent(fire,1300,x) else doPlayerSendCancel(cid,"You are exhausted.") end end function fire(x) local combat = combatUp local dir = getPlayerLookDir(x.cid) if(isPlayer(x.cid) == TRUE) then if(dir == WEST) then combat = combatRight elseif(dir == NORTH) then combat = combatDown elseif(dir == EAST) then combat = combatLeft end doCreatureSay(x.cid,"FIRE!",TALKTYPE_ORANGE_1) return doCombat(x.cid, combat, x.var) end end
Potem dodajemy do actions.xml, znajdującym się w data/actions taki kod:
Spoiler:
<action itemid="7959" script="miotacz ognia.lua" />
Od teraz każdy kto użyje fireflanz będzie używał miotacza ognia. Skrypt na exhaustion 2 sekundy, żeby nie spamować tym. Exhaustion można zmienić w polu:
czerwony - ile sekund exhausted
Jeżeli komuś nie działa to spróbujcie tą wersje:
Spoiler: local combatUp = createCombatObject() setCombatParam(combatUp, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combatUp, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combatUp, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combatUp, COMBAT_FORMULA_SKILL, 0.2, 10, 0.5, 20) local combatRight = createCombatObject() setCombatParam(combatRight, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combatRight, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combatRight, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combatRight, COMBAT_FORMULA_SKILL, 0.2, 10, 0.5, 20) local combatDown = createCombatObject() setCombatParam(combatDown, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combatDown, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combatDown, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combatDown, COMBAT_FORMULA_SKILL, 0.2, 10, 0.5, 20) local combatLeft = createCombatObject() setCombatParam(combatLeft, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combatLeft, COMBAT_PARAM_EFFECT, CONST_ME_HITBYFIRE) setCombatParam(combatLeft, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) setCombatFormula(combatLeft, COMBAT_FORMULA_SKILL, 0.2, 10, 0.5, 20) local arrUp = { {1, 1, 1}, {1, 1, 1}, {0, 1, 0}, {0, 1, 0}, {0, 2, 0} } local arrRight = { {0, 0, 1, 1}, {2, 1, 1, 1}, {0, 0, 1, 1} } local arrDown = { {0, 2, 0}, {0, 1, 0}, {0, 1, 0}, {1, 1, 1}, {1, 1, 1} } local arrLeft = { {1, 1, 0, 0}, {1, 1, 1, 2}, {1, 1, 0, 0} } local areaUp = createCombatArea(arrUp) setCombatArea(combatUp, areaUp) local areaRight = createCombatArea(arrRight) setCombatArea(combatRight, areaRight) local areaDown = createCombatArea(arrDown) setCombatArea(combatDown, areaDown) local areaLeft = createCombatArea(arrLeft) setCombatArea(combatLeft, areaLeft) function onUse(cid, item, frompos, item2, topos) local exh = 2 -- Ile sekund exhausted local storage = 15681 if(os.time() > getPlayerStorageValue(cid,storage)) then setPlayerStorageValue(cid,storage,os.time()+exh) local x = {cid = cid, var = numberToVariant(cid), combatUp = combatUp, combatLeft = combatLeft, combatDown = combatDown, combatRight = combatRight} fire(x) addEvent(fire,300,x) addEvent(fire,800,x) addEvent(fire,1300,x) else doPlayerSendCancel(cid,"You are exhausted.") end end function fire(x) local combat = x.combatUp local dir = getPlayerLookDir(x.cid) if(isPlayer(x.cid) == TRUE) then if(dir == WEST) then combat = x.combatRight elseif(dir == NORTH) then combat = x.combatDown elseif(dir == EAST) then combat = x.combatLeft end return doCombat(x.cid, combat, x.var) end end
|