Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Jak zmienic sile czaru tibia 8.60


LinuxPl

Rekomendowane odpowiedzi

Opublikowano

Witam!,

mam problem z zmiana sily czaru mam 3 czary ktore musze zmienic.O to one :

 

1. Dla Sorcerera

local arr = {

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

{
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}
}
}

local combat = {}
for i = 1, 3 do
    combat[i] = createCombatObject()
end

    setCombatArea(combat[1], createCombatArea(arr[1]))
 setCombatParam(combat[1], COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
 setCombatParam(combat[1], COMBAT_PARAM_BLOCKSHIELD, false)
 setCombatParam(combat[1], COMBAT_PARAM_BLOCKARMOR, false)
 setCombatArea(combat[2], createCombatArea(arr[2]))
 setCombatParam(combat[2], COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
 setCombatParam(combat[3], COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)

function spellCallbackUltimate(param)
if param.count > 0 or math.random(0, 1) == 1 then
 doSendMagicEffect(param.pos, CONST_ME_EXPLOSIONHIT)
 addEvent(doSendMagicEffect, 50, param.pos, CONST_ME_EXPLOSIONAREA)
end

if(param.count < 3) then
 param.count = param.count + 1
 addEvent(spellCallbackUltimate, math.random(0, 500), param)
end
end

function onTargetTile(cid, pos)
local param = {}
param.cid = cid
param.pos = pos
param.count = 0
spellCallbackUltimate(param)
end

function onTargetTile2(cid, pos)
   doCombat(cid, combat[3], positionToVariant(pos))
end

function onGetFormulaValues(cid, level, maglevel)
local min = -((level/8)+(maglevel*32))
local max = -((level/8)+(maglevel*35))
return min, max
end

setCombatCallback(combat[1], CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
setCombatCallback(combat[1], CALLBACK_PARAM_TARGETTILE, "onTargetTile")
setCombatCallback(combat[2], CALLBACK_PARAM_TARGETTILE, "onTargetTile2")

function onCastSpell(cid, var)
doCombat(cid, combat[1], var)
doCombat(cid, combat[2], var)
return true
end

 

2. Dla Druida

local arr = {

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

{
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}
}

}

local combat = {}
for i = 1, 3 do
    combat[i] = createCombatObject()
end

    setCombatArea(combat[1], createCombatArea(arr[1]))
 setCombatParam(combat[1], COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
 setCombatArea(combat[2], createCombatArea(arr[2]))
 setCombatParam(combat[2], COMBAT_PARAM_EFFECT, CONST_ME_POISONAREA)

function spellCallbackStorm(param)
if param.count > 0 or math.random(0, 1) == 1 then
 doSendMagicEffect(param.pos, CONST_ME_HITBYPOISON)
 doSendDistanceShoot({ x = param.pos.x - 7, y = param.pos.y - 7, z = param.pos.z}, param.pos, CONST_ANI_POISON)
 addEvent(doSendMagicEffect, 50, param.pos, CONST_ME_GREEN_RINGS)
end

if(param.count < 3) then
 param.count = param.count + 1
 addEvent(spellCallbackStorm, math.random(0, 500), param)
end
end

function onTargetTile(cid, pos)
local param = {}
param.cid = cid
param.pos = pos
param.count = 0
spellCallbackStorm(param)
end

function onTargetTile2(cid, pos)
   doCombat(cid, combat[3], positionToVariant(pos))
end

function onGetFormulaValues(cid, level, maglevel)
local min = -((level/8)+(maglevel*32))
local max = -((level/8)+(maglevel*35))
return min, max
end

setCombatCallback(combat[1], CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
setCombatCallback(combat[1], CALLBACK_PARAM_TARGETTILE, "onTargetTile")
setCombatCallback(combat[2], CALLBACK_PARAM_TARGETTILE, "onTargetTile2")

function onCastSpell(cid, var)
doCombat(cid, combat[1], var)
doCombat(cid, combat[2], var)
return true
end

 

3. Dla Paladyna

local holyDeathArea = {
createCombatArea({
 {0, 1, 0},
 {1, 2, 1},
 {0, 1, 0}
}),
createCombatArea({
 {0, 1, 1, 1, 0},
 {1, 1, 0, 1, 1},
 {1, 0, 2, 0, 1},
 {1, 1, 0, 1, 1},
 {0, 1, 1, 1, 0}
}),
createCombatArea({
 {0, 0, 1, 1, 1, 0, 0},
 {0, 1, 0, 0, 0, 1, 0},
 {1, 0, 0, 0, 0, 0, 1},
 {1, 0, 0, 2, 0, 0, 1},
 {1, 0, 0, 0, 0, 0, 1},
 {0, 1, 0, 0, 0, 1, 0},
 {0, 0, 1, 1, 1, 0, 0}
}),
createCombatArea({
 {0, 0, 1, 1, 1, 1, 1, 0, 0},
 {0, 1, 1, 0, 0, 0, 1, 1, 0},
 {1, 1, 0, 0, 0, 0, 0, 1, 1},
 {1, 0, 0, 0, 0, 0, 0, 0, 1},
 {1, 0, 0, 0, 2, 0, 0, 0, 1},
 {1, 0, 0, 0, 0, 0, 0, 0, 1},
 {1, 1, 0, 0, 0, 0, 0, 1, 1},
 {0, 1, 1, 0, 0, 0, 1, 1, 0},
 {0, 0, 1, 1, 1, 1, 1, 0, 0}
})
}

local holyCircleArea = {
createCombatArea({
 {1, 2}
}),
createCombatArea({
 {1, 0},
 {0, 2}
}),
createCombatArea({
 {1},
 {2}
}),
createCombatArea({
 {0, 1},
 {2, 0}
}),
createCombatArea({
 {2, 1}
}),
createCombatArea({
 {2, 0},
 {0, 1}
}),
createCombatArea({
 {2},
 {1}
}),
createCombatArea({
 {0, 2},
 {1, 0}
})
}


local holyDeath = {}
for k, area in ipairs(holyDeathArea) do
holyDeath[k] = createCombatObject()
setCombatParam(holyDeath[k], COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(holyDeath[k], COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
setCombatFormula(holyDeath[k], COMBAT_FORMULA_LEVELMAGIC, -17.376, -(100 * (#holyDeathArea - k)), -17.841, -(150 * (#holyDeathArea - k)))

setCombatArea(holyDeath[k], area)

loadstring([[onTargetTile]] .. k .. [[ = function(cid, pos)
 doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_HOLY)
end]])()
setCombatCallback(holyDeath[k], CALLBACK_PARAM_TARGETTILE, "onTargetTile" .. k)
end

local holyCircle = {}
for k, area in ipairs(holyCircleArea) do
holyCircle[k] = createCombatObject()
setCombatParam(holyCircle[k], COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(holyCircle[k], COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
setCombatFormula(holyCircle[k], COMBAT_FORMULA_LEVELMAGIC, -9.466, -200, -9.841, -100)

setCombatArea(holyCircle[k], area)

loadstring([[onTargetTile]] .. k + #holyDeath .. [[ = function(cid, pos)
 doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_HOLY)
end]])()
setCombatCallback(holyCircle[k], CALLBACK_PARAM_TARGETTILE, "onTargetTile" .. k + #holyDeath)
end

loadstring([[onTargetTile]] .. #holyDeath + #holyCircle + 1 .. [[ = function(cid, pos)
doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_SMALLHOLY)
end]])()

local function castSpellDelay(p)
doCombat(unpack(p))
end

local stepDelay = 75
local spins = 2
function onCastSpell(cid, var)
local delay = 0
for i = 1, spins do
 for k, area in ipairs(holyCircle) do
  addEvent(castSpellDelay, delay, {cid, holyCircle[k], var})
  delay = delay + stepDelay
 end
end
for k, area in ipairs(holyDeath) do
 addEvent(castSpellDelay, delay, {cid, holyDeath[k], var})
 delay = delay + stepDelay
end

return LUA_NO_ERROR
end

 

To tyle.

Prosze o pomoc

Pozdrawiam Linux

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...