• logo_cipsoft
    Nowe serwery zostały otwarte 19 Lut 2025:
    Noctalia (Open PvP) Ignitera (Open PvP) us_logo Xybra (Open PvP)

Spells [8.x]4 czary w jednym

[8.x]4 czary w jednym

  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%
  • Zdecydowanie Tak

    Votes: 0 0,0%
  • Tak

    Votes: 0 0,0%
  • ?rednio

    Votes: 0 0,0%
  • Nie

    Votes: 0 0,0%
  • Zdecydowanie Nie

    Votes: 0 0,0%
  • Nie Mam Zdania

    Votes: 0 0,0%

  • Total voters
    0
Status
Zamknięty.

Damikosek

New User
Dołączył
Grudzień 7, 2010
Posty
6
Liczba reakcji
2
Widzia?em sporo czar?w i wiem ?e ka?dy to mo?e zrobi?, ale postanowi?em wrzuci? taki oto skrypcik na czar (upija, zadaje obra?enia, podw?jne na zewn?trz i wtedy nie upija. Na deser wygl?da inaczej w zale?no?ci od profesji). Mo?na przerabia? i modyfikowa? wygl?d, efekt dystansowy i obra?enia dla swoich potrzeb, ale najlepiej by w skrypcie zosta?y dwie pierwsze linijki z komentarzami.
Tworzymy w folderze data\spells\scripts naszego OTSa plik o nazwie xxxxx.lua, i wklejamy tam to:
Kod:
-- Code By Damikosek
-- Made for www.tibia.net.pl
-- Poczatek czesci dla sorca
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1, -100, -2, -200)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 31)
local c = createConditionObject(CONDITION_DRUNK)
setConditionParam(c, CONDITION_PARAM_TICKS, 30 * 1000)
setCombatCondition(combat2, c)
local acombat3 = createCombatObject() 
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -1, -100, -2, -200)
-- Koniec czesci dla sorca
-- Poczatek czesci dla druida
local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, 15)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -1, -100, -2, -200)
local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_EFFECT, 31)
local co = createConditionObject(CONDITION_DRUNK)
setConditionParam(co, CONDITION_PARAM_TICKS, 30 * 1000)
setCombatCondition(combat5, co)
local acombat6 = createCombatObject() 
local combat6 = createCombatObject()
setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat6, COMBAT_PARAM_EFFECT, 8)
setCombatParam(combat6, COMBAT_PARAM_DISTANCEEFFECT, 3)
setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -1, -100, -2, -200)
-- Koniec czesci dla druida
-- Poczatek czesci dla palla 
local combat7 = createCombatObject()
setCombatParam(combat7, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat7, COMBAT_PARAM_EFFECT, 21)
setCombatFormula(combat7, COMBAT_FORMULA_LEVELMAGIC, -1, -100, -2, -200)
local combat8 = createCombatObject()
setCombatParam(combat8, COMBAT_PARAM_EFFECT, 31)
local con = createConditionObject(CONDITION_DRUNK)
setConditionParam(c, CONDITION_PARAM_TICKS, 30 * 1000)
setCombatCondition(combat8, con)
local acombat9 = createCombatObject() 
local combat9 = createCombatObject()
setCombatParam(combat9, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat9, COMBAT_PARAM_EFFECT, 17)
setCombatParam(combat9, COMBAT_PARAM_DISTANCEEFFECT, 17)
setCombatFormula(combat9, COMBAT_FORMULA_LEVELMAGIC, -1, -100, -2, -200)
-- Koniec czesci dla palla
-- Poczatek czesci dla knighta
local combat10 = createCombatObject()
setCombatParam(combat10, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat10, COMBAT_PARAM_EFFECT, 34)
setCombatFormula(combat10, COMBAT_FORMULA_LEVELMAGIC, -1, -100, -2, -200)
local combat11 = createCombatObject()
setCombatParam(combat11, COMBAT_PARAM_EFFECT, 31)
local cond = createConditionObject(CONDITION_DRUNK)
setConditionParam(cond, CONDITION_PARAM_TICKS, 30 * 1000)
setCombatCondition(combat11, cond)
local acombat12 = createCombatObject() 
local combat12 = createCombatObject()
setCombatParam(combat12, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat12, COMBAT_PARAM_EFFECT, 2)
setCombatParam(combat12, COMBAT_PARAM_DISTANCEEFFECT, 10)
setCombatFormula(combat12, COMBAT_FORMULA_LEVELMAGIC, -1, -100, -2, -200)
-- Koniec czesci dla knighta
arr1 = {
{0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 2, 1, 1, 1, 0, 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, 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}
}
arr2 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 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, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 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}
}
arr3 = {
{0, 0, 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, 1, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0},
{0, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0},
{0, 0, 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, 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}
}

local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)

setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(acombat3, area3)
setCombatArea(combat4, area1)
setCombatArea(combat5, area2)
setCombatArea(acombat6, area3)
setCombatArea(combat7, area1)
setCombatArea(combat8, area2)
setCombatArea(acombat9, area3)
setCombatArea(combat10, area1)
setCombatArea(combat11, area2)
setCombatArea(acombat12, area3)
function onTargetTile3(cid, pos)
    doCombat(cid,combat3,positionToVariant(pos))
end
function onTargetTile6(cid, pos)
    doCombat(cid,combat6,positionToVariant(pos))
end
function onTargetTile9(cid, pos)
    doCombat(cid,combat9,positionToVariant(pos))
end
function onTargetTile12(cid, pos)
    doCombat(cid,combat12,positionToVariant(pos))
end
setCombatCallback(acombat3, CALLBACK_PARAM_TARGETTILE, "onTargetTile3")
setCombatCallback(acombat6, CALLBACK_PARAM_TARGETTILE, "onTargetTile6")
setCombatCallback(acombat9, CALLBACK_PARAM_TARGETTILE, "onTargetTile9")
setCombatCallback(acombat12, CALLBACK_PARAM_TARGETTILE, "onTargetTile12")
local function onCastSpell1(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end
local function onCastSpell2(parameters)
    doCombat(parameters.cid, combat2, parameters.var)
end
local function onCastSpell3(parameters)
    doCombat(parameters.cid, acombat3, parameters.var)
end
local function onCastSpell4(parameters)
    doCombat(parameters.cid, combat4, parameters.var)
end
local function onCastSpell5(parameters)
    doCombat(parameters.cid, combat5, parameters.var)
end
local function onCastSpell6(parameters)
    doCombat(parameters.cid, acombat6, parameters.var)
end
local function onCastSpell7(parameters)
    doCombat(parameters.cid, combat7, parameters.var)
end
local function onCastSpell8(parameters)
    doCombat(parameters.cid, combat8, parameters.var)
end
local function onCastSpell9(parameters)
    doCombat(parameters.cid, acombat9, parameters.var)
end
local function onCastSpell10(parameters)
    doCombat(parameters.cid, combat10, parameters.var)
end
local function onCastSpell11(parameters)
    doCombat(parameters.cid, combat11, parameters.var)
end
local function onCastSpell12(parameters)
    doCombat(parameters.cid, acombat12, parameters.var)
end
-- Ponizszy skrypt sprawdza profesje w momencie wymowy slow czaru
function onCastSpell(cid, var) 
getvoc = getPlayerVocation(cid)
if getvoc == 1 or getvoc == 5 then
        local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3}
        addEvent(onCastSpell1, 50, parameters)
        addEvent(onCastSpell2, 50, parameters)
        addEvent(onCastSpell3, 50, parameters)
elseif getvoc == 2 or getvoc == 6 then
        local parameters = { cid = cid, var = var, combat4 = combat4, combat5 = combat5, combat6 = combat6}
        addEvent(onCastSpell4, 50, parameters)
        addEvent(onCastSpell5, 50, parameters)
        addEvent(onCastSpell6, 50, parameters)
elseif getvoc == 3 or getvoc == 7 then
        local parameters = { cid = cid, var = var, combat7 = combat7, combat8 = combat8, combat9 = combat9}
        addEvent(onCastSpell7, 50, parameters)
        addEvent(onCastSpell8, 50, parameters)
        addEvent(onCastSpell9, 50, parameters)
elseif getvoc == 4 or getvoc == 8 then
        local parameters = { cid = cid, var = var, combat10 = combat10, combat11 = combat11, combat12 = combat12}
        addEvent(onCastSpell10, 50, parameters)
        addEvent(onCastSpell11, 50, parameters)
        addEvent(onCastSpell12, 50, parameters)
end
[COLOR="White"]return true[/COLOR]
end
Bia?y - wymagane je?li chcesz mie? exhaust na czar, jak nie to mo?esz to wykasowa? ;]

Do spells.xml wklejamy to:
Kod:
<instant name="[COLOR="Yellow"]drunk attack[/COLOR]" words="[COLOR="Blue"]Exevo Uvo[/COLOR]" lvl="[COLOR="Red"]1[/COLOR]" maglv="[COLOR="Olive"]0[/COLOR]" mana="[COLOR="Purple"]0[/COLOR]" soul="0" exhaustion="[COLOR="White"]1[/COLOR]" prem="[COLOR="Orange"]0[/COLOR]" script="[COLOR="LightBlue"]xxxxx.lua[/COLOR]"><vocation id="2"/><vocation id="1"/><vocation id="3"/><vocation id="4"/><vocation id="6"/><vocation id="5"/><vocation id="8"/><vocation id="7"/></instant>
zolty - nazwa czaru
niebieski - s?owa s?u??ce do uruchomienia czaru
czerwony - poziom wymagany do uruchomienia czaru
zielony - mlvl wymagany do uruchomienia czaru
fioletowy - ile many ma bra? po u?yciu
pomaranczowy - potrzebne premium na spell? 1 - tak, 0 - nie
jasny niebieski - nazwa stworzonego przez nas pliku na samym pocz?tku
bia?y - exhaust na spell w ms

A tak wygl?da czar w poszczeg?lnych profesjach:

Prosz? o ocenki :)
 
Odp: [8.x]4 czary w jednym

~REFRESH~

Ma?o kto zagl?da, komentujcie i oceniajcie !!!
 
Odp: [8.x]4 czary w jednym

Jest to pierwszy tak oryginalny czar kt?ry dotychczas widzia?em a widzia?em ich do?? du?o.
Fajne efekty, do?? przydatne na servery fun wszystko ?adnie opisane ;) gratuluje
rep ;)
 
Odp: [8.x]4 czary w jednym

PHP:
local config = {
				[1] = {e = CONST_ME_TELEPORT, de = CONST_ANI_ENERGYBALL, t = COMBAT_ENERGYDAMAGE, min = -100, max = -200},
				[2] = {e = CONST_ME_HOLYAREA, de = CONST_ANI_HOLY, t = COMBAT_HOLYDAMAGE, min = -350, max = -400},
				[3] = {e = CONST_ME_FIREAREA, de = CONST_ANI_FIRE, t = COMBAT_FIREDAMAGE, min = -30, max = -50},
				[4] = {e = CONST_ME_MORTAREA, de = CONST_ANI_DEATH, t = COMBAT_DEATHDAMAGE, min = -120, max = -240}
				}

function onTargetTile1(cid, pos)
local v = config[getPlayerVocation(cid)]
if v then
	return ((v.de and doSendDistanceShoot(getThingPosition(cid), pos, v.de)) and (v.e and doSendMagicEffect(pos, v.e)) and (t and getTileThingByPos(pos).itemid > 0 and getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=STACKPOS_TOP_CREATURE}).uid > 0 and doTargetCombatHealth(cid, getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=STACKPOS_TOP_CREATURE}).uid, v.t, v.min, v.max, CONST_ME_NONE)))
end
return true
end
function onTargetTile2(cid, pos)
local v = config[getPlayerVocation(cid)]
if v then
	return ((v.de and doSendDistanceShoot(getThingPosition(cid), pos, v.de)) and (v.e and doSendMagicEffect(pos, v.e)) and (t and getTileThingByPos(pos).itemid > 0 and getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=STACKPOS_TOP_CREATURE}).uid > 0 and doTargetCombatHealth(cid, getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=STACKPOS_TOP_CREATURE}).uid, v.t, v.min, v.max, CONST_ME_NONE)))
end
return true
end
function onTargetTile3(cid, pos)
local v = config[getPlayerVocation(cid)]
if v then
	return ((v.de and doSendDistanceShoot(getThingPosition(cid), pos, v.de)) and (v.e and doSendMagicEffect(pos, v.e)) and (t and getTileThingByPos(pos).itemid > 0 and getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=STACKPOS_TOP_CREATURE}).uid > 0 and doTargetCombatHealth(cid, getThingFromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=STACKPOS_TOP_CREATURE}).uid, v.t, v.min, v.max, CONST_ME_NONE)))
end
return true
end

local area1 = createCombatArea({{0, 0, 1, 1, 1, 0, 0},
								{0, 1, 1, 1, 1, 1, 0},
								{1, 1, 1, 1, 1, 1, 1},
								{1, 1, 1, 2, 1, 1, 1},
								{1, 1, 1, 1, 1, 1, 1},
								{0, 1, 1, 1, 1, 1, 0},
								{0, 0, 1, 1, 1, 0, 0}})
local area2 = createCombatArea({{0, 0, 1, 1, 1, 0, 0},
								{0, 1, 1, 1, 1, 1, 0},
								{0, 1, 1, 2, 1, 1, 0},
								{0, 1, 1, 1, 1, 1, 0},
								{0, 0, 1, 1, 1, 0, 0}})
local area3 = 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}})
local combat1 = createCombatObject()
setCombatArea(combat1, area1)
setCombatCallback(combat1, CALLBACK_PARAM_TARGETTILE, "onTargetTile1")
local combat2 = createCombatObject()
setCombatArea(combat2, area2)
setCombatCallback(combat2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2")
local combat3 = createCombatObject()
setCombatArea(combat3, area3)
setCombatCallback(combat3, CALLBACK_PARAM_TARGETTILE, "onTargetTile3")

local areas = {combat1,combat2,combat3}

local function onCastSpells(cid, combat, var)
return doCombat(cid, combat, var)
end

function onCastSpell(cid, var)
for i = 1, #areas do
	addEvent(onCastSpells, 500 * i, cid, areas[i], var)
end
return true
end

Bez stanu upicia. Da?oby si? chyba to jeszcze jako? upro?ci? pod wzgl?dem niepotrzebnego powtarzania kodu, ale niespecjalnie mi si? to chce robi?.
 
Odp: [8.x]4 czary w jednym

Jeden z bardziej zaawansowanych czar?w jakie widzia?em, lecz skrypt Oskara jest du?o bardziej czytelny i uproszczony : ). Co za tym idzie, szybciej si? b?dzie wykonywa? nie obci??aj?c zbytnio silnika :D.
 
Status
Zamknięty.
Do góry