Nie tylko o tibii...
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:
Spoiler:
local exh = 2
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
Offline