doCombatBeam
Tibia Mod :: Kody C++ :: Funkcje Lua
Strona 1 z 1
doCombatBeam
W data/lib/050-function.lua doklejamy:
Wyjaśnię jak należy się za to zabrać. Na przykładzie:
W tym przykładzie 'beam' będzie mieć długość równą 6 sqm, każdy następny efekt będzie następować po sobie w odstępie 250ms (0.25 sekundy), 'beam' pojawiać się będzie czterokrotnie, będzie zadawać obrażenia od śmierci w zakresie 100 do 300, podczas patrzenia w górę pojawi się efekt numer 17, patrząc w prawo numer 13, w dół numer 38 oraz w lewo numer 2.
Polecam kombinować i próbować bawić się tą funkcją, można całkiem fajne efekty uzyskać.
Oraz objaśnienia:
length to długość promienia
time to odstęp czasowy między efektami (w ms)
count to ilość beamów, które się uaktywnią (każdy następny w odstępstwie kilku sekund)
combat to rodzaj obrażeń
min oraz max to minimalne oraz maksymalne obrażenia
effect, jeśli chcecie jeden efekt, nieważne w którą stronę się obrócicie to w tym miejscu się go ustawia
direction ustawcie zawsze 'getCreatureLookDirection(cid)'
pos ustawcie zawsze 'getThingPos(cid)'
efekty, tutaj ustawiamy efekty, jakie będą nam towarzyszyć w zależności od strony w którą patrzy nasza postać. Wypełniamy to w ten sposób:
- Kod:
function doCombatBeam(cid, length, time, count, combat, min, max, effect, direction, pos, efekty)
if length > 0 then
if direction == NORTH then
pos.y = pos.y - 1
elseif direction == EAST then
pos.x = pos.x + 1
elseif direction == SOUTH then
pos.y = pos.y + 1
elseif direction == WEST then
pos.x = pos.x - 1
end
local position, effect = {x=pos.x,y=pos.y,z=pos.z}, (efekty ~= nil and efekty[direction+1] or effect)
if getTileThingByPos({x=pos.x,y=pos.y,z=pos.z,stackpos=0}).itemid ~= 0 then
local target = getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=STACKPOS_TOP_CREATURE}).uid
if isCreature(target) then
doTargetCombatHealth(cid, target, combat, min, max, CONST_ME_NONE)
end
end
doSendMagicEffect(pos, effect)
for v = count, 1, -1 do
if v > 1 then
addEvent(function()
if getTileThingByPos(position).itemid > 0 then
local target_1 = getThingFromPos({x=position.x,y=position.y,z=position.z,stackpos=STACKPOS_TOP_CREATURE}).uid
if target ~= target_1 and isCreature(target_1) then
doTargetCombatHealth(cid, target_1, combat, min / 5, max / 3, CONST_ME_NONE)
end
end
return doSendMagicEffect(position, effect)
end,
time + (150 * v),
position, effect, combat, min, max, target
)
else
return addEvent(doCombatBeam, time, cid, length - 1, time, count, combat, min, max, effect, direction, pos, efekty)
end
end
end
return true
end
Wyjaśnię jak należy się za to zabrać. Na przykładzie:
- Kod:
function onCastSpell(cid, var)
return doCombatBeam(cid, 6, 250, 4, COMBAT_DEATHDAMAGE, -100, -300, nil, getCreatureLookDirection(cid), getThingPos(cid), {CONST_ME_MORTAREA,CONST_ME_MAGIC_RED,CONST_ME_SMALLCLOUDS,CONST_ME_POFF})
end
W tym przykładzie 'beam' będzie mieć długość równą 6 sqm, każdy następny efekt będzie następować po sobie w odstępie 250ms (0.25 sekundy), 'beam' pojawiać się będzie czterokrotnie, będzie zadawać obrażenia od śmierci w zakresie 100 do 300, podczas patrzenia w górę pojawi się efekt numer 17, patrząc w prawo numer 13, w dół numer 38 oraz w lewo numer 2.
Polecam kombinować i próbować bawić się tą funkcją, można całkiem fajne efekty uzyskać.
Oraz objaśnienia:
- Kod:
(cid, length, time, count, combat, min, max, effect, direction, pos, efekty)
length to długość promienia
time to odstęp czasowy między efektami (w ms)
count to ilość beamów, które się uaktywnią (każdy następny w odstępstwie kilku sekund)
combat to rodzaj obrażeń
min oraz max to minimalne oraz maksymalne obrażenia
effect, jeśli chcecie jeden efekt, nieważne w którą stronę się obrócicie to w tym miejscu się go ustawia
direction ustawcie zawsze 'getCreatureLookDirection(cid)'
pos ustawcie zawsze 'getThingPos(cid)'
efekty, tutaj ustawiamy efekty, jakie będą nam towarzyszyć w zależności od strony w którą patrzy nasza postać. Wypełniamy to w ten sposób:
- Kod:
{efekt_north,efekt_east,efekt_south,efekt_west}
darkes- Uploader
- Liczba postów : 27
Join date : 13/11/2012
Tibia Mod :: Kody C++ :: Funkcje Lua
Strona 1 z 1
Permissions in this forum:
Nie możesz odpowiadać w tematach
|
|