Do spells.xml wklejamy:
<instant name="Sorcerer Fury" words="blind anger" lvl="200" mana="1500" prem="1" selftarget="1" exhaustion="2500" needlearn="0" script="anger.lua"> <vocation id="1"/> <vocation id="5"/> </instant> <instant name="Druid Fury" words="druid fury" lvl="200" mana="1500" exhaustion="2500" needlearn="0" script="razgos exo.lua"> <vocation id="2" /> <vocation id="6" /> </instant> <instant name="Divine Condition" words="exevo san condition" lvl="200" mana="1500" prem="1" selftarget="1" exhaustion="2500" needlearn="0" script="thecondition.lua"> <vocation id="3"/> <vocation id="7" /> </instant> <instant name="Exori Super Gran" words="exori super gran" lvl="200" mana="1500" prem="1" selftarget="1" exhaustion="2500" needlearn="0" script="superexor.lua"> <vocation id="4"/> <vocation id="8" /> </instant>
W spells/scripts tworzymy plik anger.lua
i do niego wklejamy
local repeatAmount = 3 local deathFlamesArea = { 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} }) } local bigFlamesArea = 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 deathFlames = {} for k, area in ipairs(deathFlamesArea) do deathFlames[k] = createCombatObject() setCombatParam(deathFlames[k], COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(deathFlames[k], COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA) setCombatFormula(deathFlames[k], COMBAT_FORMULA_LEVELMAGIC, -5.593, -50,
-7.929, -100) setCombatArea(deathFlames[k], area) end local bigFlames = createCombatObject() setCombatParam(bigFlames, COMBAT_PARAM_TYPE, COMBAT_ENERGYLDAMAGE) setCombatParam(bigFlames, COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS) setCombatFormula(bigFlames, COMBAT_FORMULA_LEVELMAGIC, -6.766, -50, -8.241
, -100) setCombatArea(bigFlames, bigFlamesArea) function onTargetTile(cid, pos) doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_DEATH) end setCombatCallback(bigFlames, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function castSpellDelay(p) if(isCreature(p[1]) == TRUE) then doCombat(unpack(p)) end end function onCastSpell(cid, var) for i = 0, repeatAmount - 1 do for k, combat in ipairs(deathFlames) do addEvent(castSpellDelay, (150 * k) + #deathFlames * 150 * i + 700 * i,
{cid, combat, var}) end addEvent(castSpellDelay, (150 * #deathFlames) + #deathFlames * 150 * i + 700 * i,
{cid, bigFlames, var}) end return LUA_NO_ERROR end
Następnie tworzymy plik razgos exo.lua i wklejamy
local repeatAmount = 3 local deathFlamesArea = { 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} }) } local bigFlamesArea = 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 deathFlames = {} for k, area in ipairs(deathFlamesArea) do deathFlames[k] = createCombatObject() setCombatParam(deathFlames[k], COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(deathFlames[k], COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO) setCombatFormula(deathFlames[k], COMBAT_FORMULA_LEVELMAGIC, -5.593, -50,
-7.929, -100) setCombatArea(deathFlames[k], area) end local bigFlames = createCombatObject() setCombatParam(bigFlames, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) setCombatParam(bigFlames, COMBAT_PARAM_EFFECT, CONST_ME_PLANTATTACK) setCombatFormula(bigFlames, COMBAT_FORMULA_LEVELMAGIC, -6.766, -50, -8.241
, -100) setCombatArea(bigFlames, bigFlamesArea) function onTargetTile(cid, pos) doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_DEATH) end setCombatCallback(bigFlames, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function castSpellDelay(p) if(isCreature(p[1]) == TRUE) then doCombat(unpack(p)) end end function onCastSpell(cid, var) for i = 0, repeatAmount - 1 do for k, combat in ipairs(deathFlames) do addEvent(castSpellDelay, (150 * k) + #deathFlames * 150 * i + 700 * i,
{cid, combat, var}) end addEvent(castSpellDelay, (150 * #deathFlames) + #deathFlames * 150 * i + 700 * i,
{cid, bigFlames, var}) end return LUA_NO_ERROR end
Następnie tworzymy plik superexor.lua i wklejamy
local repeatAmount = 3 local deathFlamesArea = { 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} }) } local bigFlamesArea = 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 deathFlames = {} for k, area in ipairs(deathFlamesArea) do deathFlames[k] = createCombatObject() setCombatParam(deathFlames[k], COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(deathFlames[k], COMBAT_PARAM_EFFECT, CONST_ME_GROUNDSHAKE) setCombatFormula(deathFlames[k], COMBAT_FORMULA_LEVELMAGIC, -5.593, -50,
-7.929, -100) setCombatArea(deathFlames[k], area) end local bigFlames = createCombatObject() setCombatParam(bigFlames, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(bigFlames, COMBAT_PARAM_EFFECT, CONST_ME_GROUNDSHAKER) setCombatFormula(bigFlames, COMBAT_FORMULA_LEVELMAGIC, -6.766, -50, -8.241
, -100) setCombatArea(bigFlames, bigFlamesArea) function onTargetTile(cid, pos) doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_WHIRLWINDAXE) end setCombatCallback(bigFlames, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function castSpellDelay(p) if(isCreature(p[1]) == TRUE) then doCombat(unpack(p)) end end function onCastSpell(cid, var) for i = 0, repeatAmount - 1 do for k, combat in ipairs(deathFlames) do addEvent(castSpellDelay, (150 * k) + #deathFlames * 150 * i + 700 * i,
{cid, combat, var}) end addEvent(castSpellDelay, (150 * #deathFlames) + #deathFlames * 150 * i + 700 * i
, {cid, bigFlames, var}) end return LUA_NO_ERROR end
Następnie tworzymy plik thecondition.lua i wklejamy
local repeatAmount = 3 local deathFlamesArea = { 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} }) } local bigFlamesArea = 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 deathFlames = {} for k, area in ipairs(deathFlamesArea) do deathFlames[k] = createCombatObject() setCombatParam(deathFlames[k], COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(deathFlames[k], COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA) setCombatFormula(deathFlames[k], COMBAT_FORMULA_LEVELMAGIC, -5.593, -50,
-7.929, -100) setCombatArea(deathFlames[k], area) end local bigFlames = createCombatObject() setCombatParam(bigFlames, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(bigFlames, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatFormula(bigFlames, COMBAT_FORMULA_LEVELMAGIC, -6.766, -50, -8.241
, -100) setCombatArea(bigFlames, bigFlamesArea) function onTargetTile(cid, pos) doSendDistanceShoot(getCreaturePosition(cid), pos, CONST_ANI_ETHEREALSPEAR) end setCombatCallback(bigFlames, CALLBACK_PARAM_TARGETTILE, "onTargetTile") local function castSpellDelay(p) if(isCreature(p[1]) == TRUE) then doCombat(unpack(p)) end end function onCastSpell(cid, var) for i = 0, repeatAmount - 1 do for k, combat in ipairs(deathFlames) do addEvent(castSpellDelay, (150 * k) + #deathFlames * 150 * i + 700 * i,
{cid, combat, var}) end addEvent(castSpellDelay, (150 * #deathFlames) + #deathFlames * 150 * i + 700 * i,
{cid, bigFlames, var}) end return LUA_NO_ERROR end
Oto jak wyglądają te czary:

Źródło: otland.net Post: http://otland.net/f82/exori-super-gran-druid-fury-sorcerer-fury-divine-condition-custom-spells-131624/
Jak szybko zaznaczac caly skrypt ? kliknij w pole tekstowe ze stryptem i uzyj kombinacji klawiszy Ctrl + A
auto haste (utani hur)
auto stronghaste (utani gran hur)
auto magic shield (utamo vita)
Jak sa kolo ciebie 3 potwory (widzi ich 4 kratki od siebie) i jak nie ma gracza + ma urzyc czar jak bedzie wiecej niz 1500 many bedzie bil z /exevo gran mas frigo/, a gdy bedzie czlowiek lub jak bedzie mniej niz 3 potwory (liczac 4 kratki ode mnie) to zeby bilo z exori frigo.
Ostatnia osoba exivowana
Zaklada "Ston Skin Amulet"
Bije z runy o id 3187
Anty paral
Bije z SD + reattack
Gdy masz x hp urzyje UHa
Leczenie przyjaciela UH-ami
UCHA PRZYJACIOL Dodaj kolege do /List/ i wlacz ponizszy skrypt:
Re-attack
Magwall target czyli rzuca Magic Walle 2 kratki przed "twarz" jezeli mamy ja zaznaczona.(F12)
!soft gdy sie skoncza. id zepsutych softow: 6530
Szybkie zatrzymywanie cavebota i targetingu
Alarm, jezeli GM wysle Ci wiadomosc albo pojawi sie czerwona wiadomosc
Auto lod po restarcie
Anty kick
Jezeli bot sie zatnie to pojdzie jedna kratke w dol
Skrypt bedzie leczyl wszystkich przyjaciol ultimate healthpotionem Dodaj kolegow do /List/
Jak zaznaczy target to atakuje z czaru "exori flam"
Sprawdzanie pozycji x y z
Reconect po deadzie
Auto haste, kazdy rodzaj mozna ustawic
Auto "exura sio" na przyjaciela.
Screen jesli awansujemy z lvl / skill.(ss)
Auto Utana vid (sam wrzuca utana vid jak sie skonczy)
Eat food
Bot wysyla prywatna wiadomosc z informacja o exp/h ile brakuje do next lvl itd
Zmienia wyglad danego gracza np. w potwora
automatyczne siohanie przyjaciol jak ma sie wiecej niz 2k many
gdy nastapi godzina 12:25:31, nasza postac bedzie juz zalogowana
Alarm gdy Pk
Alarm gdy X Cap
Alarm Bezczynnosci
Anty-Trap czyli przechodzenie przez skrzynki, parcele, boxy
Auto Utito Tempo
Msg Box czyli widzimy 6 ostatich wiadomosci w lewym dolnym rogu [Trzeba miec zaznaczone w HUD "On-Screen Info Enabled"] od siebie dodam ze jest to swietna opcja
Jesli nasza stamina spadnie do 14h bot stanie, zgubi pz i sie wyloguje
"Combo" leczenie [Spell + Potion] W miejsce NICK trzeba wpisac nick naszej postaci np Alex. W miejsce SPELL trzeba wpisac jakis czar leczacy np Exana Mort, badz Exura Gran W miejsce ID trzeba wpisac ID potiona.
Rzuca magic walla tak aby odgrodzic dany cel od Twoich wrogow Wrogow dodac do /List/
Rzuca magic wall w miejsce, ktore ochroni Cie on przed najwieksza iloscia wrogow Wrogow dodac do /List/
Jesli przypadkiem zaznaczysz kogos z danej gildii (lub swojej) to skrypt go odznaczy
Wyswietla aktualne hp postaci w liczbie i w procentach Wrogow dodac do /List/
Wyswietla aktualna mane postaci w liczbie i w procentach
Ilosc postaci, ktore znajduja sie wogol postaci
Ilosc kolegow (dodanych w lists), ktorzy aktualnie sa na ekranie
Ilosc wrogow (dodanych w lists), ktorzy aktualnie sa na ekranie
Ilosc potworow, ktore znajduja sie wokol postaci
Jesli postac posiada ponizej 50 SD wylacza cavebota i probuje sie wylogowac
Jesli postac jest w pz wylaczy targeting a jesli jest poza pz wlaczy go.
Zamiana w szczora poprzez uzycie czaru Utevo res ina
Jesli braknie SD bedzie bic z exori frigo.
Dash za potworem. Jesli zamiast NAZWA_STWORZENIA podstawisz Dragon, to postac bedzie "dashowac" za celem (dragonem)
Otwieramy notatnik i wklejamy:
echo off title Twoj Ots cls :controllerini Ots.exe echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: echo :: Serwer zostal zcrashowany. Serwer zostal ponownie uruchomiony :: echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: goto :controllerini
Zapisujemy jako restarter.bat i wsadzamy do folderu naszego otsa. Jeżeli nasz ots nazywa się inaczej niż ots.exe zmieniamy w skrypcie wyżej tak jak chcesz.
addonbonus.php
outfits.xml
Sprawdzane na tfs 0.4
do creaturescripts.xml dodajemy linijkę
<event type="kill" name="KillingInTheNameOf" event="script" value="killinginthenameof.lua"/>
w data\creaturescripts\scripts tworzymy plik killinginthenameof.lua i w nim
do login.lua dodajemy
registerCreatureEvent(cid, "KillingInTheNameOf")
w data/npc dodajemy plik grizzly adams.xml i w nim
<?xml version="1.0" encoding="UTF-8"?> <npc name="Grizzly Adams" script="data/npc/scripts/tasks.lua" access="3" walkinterval="2000" lookdir="2"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="144" head="97" body="97" legs="94" feet="97" addons="3"/> </npc>
w scripts dodajemy plik tasks.lua i w nim
|