Reklama
Pokazuje wyniki od 1 do 13 z 13

Temat: [7.92+][Spells][Łatwiejsze czary z addEventem]

  1. #1
    Avatar Pimpeq
    Data rejestracji
    2006
    Położenie
    :D
    Wiek
    31
    Posty
    39
    Siła reputacji
    0

    Domyślny [7.92+][Spells][Łatwiejsze czary z addEventem]

    Pewnie niewielu z was ma na swoich otsach czary wykorzystujące funkcję addEvent. Tworzenie czarów z ową funkcją było dotychczas bardzo męczące i czasochłonne. Ale koniec z tym xD

    Oto przykładowy czar z neta korzystający ze starej metody:



    local combat1 = createCombatObject()
    setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat1, COMBAT_PARAM_EFFECT, 1)
    setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -1.5, -140, -1.6, -140)
    local combat2 = createCombatObject()
    setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat2, COMBAT_PARAM_EFFECT, 17)
    setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.5, -140, -1.6, -140)
    local combat3 = createCombatObject()
    setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat3, COMBAT_PARAM_EFFECT, 11)
    setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -1.5, -140, -1.6, -140)
    local combat4 = createCombatObject()
    setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat4, COMBAT_PARAM_EFFECT, 9)
    setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -1.5, -140, -1.6, -140)
    local combat5 = createCombatObject()
    setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat5, COMBAT_PARAM_EFFECT, 8)
    setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -1.5, -140, -1.6, -140)
    local combat6 = createCombatObject()
    setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat6, COMBAT_PARAM_EFFECT, 5)
    setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -1.5, -140, -1.6, -140)
    arr1 = {
    {0, 0, 1, 1, 1, 0, 0},
    {0, 1, 1, 1, 1, 1, 0},
    {1, 1, 1, 1, 1, 1, 1},
    {1, 1, 1, 3, 1, 1, 1},
    {1, 1, 1, 1, 1, 1, 1},
    {0, 1, 1, 1, 1, 1, 0},
    {0, 0, 1, 1, 1, 0, 0}
    }
    arr2 = {
    {0, 0, 1, 1, 1, 0, 0},
    {0, 1, 1, 1, 1, 1, 0},
    {1, 1, 1, 1, 1, 1, 1},
    {1, 1, 1, 3, 1, 1, 1},
    {1, 1, 1, 1, 1, 1, 1},
    {0, 1, 1, 1, 1, 1, 0},
    {0, 0, 1, 1, 1, 0, 0}
    }
    arr3 = {
    {0, 0, 1, 1, 1, 0, 0},
    {0, 1, 1, 1, 1, 1, 0},
    {1, 1, 1, 1, 1, 1, 1},
    {1, 1, 1, 3, 1, 1, 1},
    {1, 1, 1, 1, 1, 1, 1},
    {0, 1, 1, 1, 1, 1, 0},
    {0, 0, 1, 1, 1, 0, 0}
    }
    arr4 = {
    {0, 0, 1, 1, 1, 0, 0},
    {0, 1, 1, 1, 1, 1, 0},
    {1, 1, 1, 1, 1, 1, 1},
    {1, 1, 1, 3, 1, 1, 1},
    {1, 1, 1, 1, 1, 1, 1},
    {0, 1, 1, 1, 1, 1, 0},
    {0, 0, 1, 1, 1, 0, 0}
    }
    arr5 = {
    {0, 0, 1, 1, 1, 0, 0},
    {0, 1, 1, 1, 1, 1, 0},
    {1, 1, 1, 1, 1, 1, 1},
    {1, 1, 1, 3, 1, 1, 1},
    {1, 1, 1, 1, 1, 1, 1},
    {0, 1, 1, 1, 1, 1, 0},
    {0, 0, 1, 1, 1, 0, 0}
    }
    arr6 = {
    {0, 0, 1, 1, 1, 0, 0},
    {0, 1, 1, 1, 1, 1, 0},
    {1, 1, 1, 1, 1, 1, 1},
    {1, 1, 1, 3, 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 area1 = createCombatArea(arr1)
    local area2 = createCombatArea(arr2)
    local area3 = createCombatArea(arr3)
    local area4 = createCombatArea(arr4)
    local area5 = createCombatArea(arr5)
    local area6 = createCombatArea(arr6)
    setCombatArea(combat1, area1)
    setCombatArea(combat2, area2)
    setCombatArea(combat3, area3)
    setCombatArea(combat4, area4)
    setCombatArea(combat5, area5)
    setCombatArea(combat6, area6)
    function onCastSpell1(parameters)
    doCombat(parameters.cid, parameters.combat1, parameters.var)
    end
    function onCastSpell2(parameters)
    doCombat(parameters.cid, parameters.combat2, parameters.var)
    end
    function onCastSpell3(parameters)
    doCombat(parameters.cid, parameters.combat3, parameters.var)
    end
    function onCastSpell4(parameters)
    doCombat(parameters.cid, parameters.combat4, parameters.var)
    end
    function onCastSpell5(parameters)
    doCombat(parameters.cid, parameters.combat5, parameters.var)
    end
    function onCastSpell6(parameters)
    doCombat(parameters.cid, parameters.combat6, parameters.var)
    end
    function onCastSpell(cid, var)
    local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6 }
    addEvent(onCastSpell1, 0, parameters)
    addEvent(onCastSpell2, 500, parameters)
    addEvent(onCastSpell3, 1000, parameters)
    addEvent(onCastSpell4, 1600, parameters)
    addEvent(onCastSpell5, 2000, parameters)
    addEvent(onCastSpell6, 2500, parameters)
    end
    Dużo roboty nie? A efekt marny.
    Spójrzmy jednak na taki czar:

    function ShortSpell(dmg,arr,effect,min1,min2,max1,max1)
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE, dmg)
    setCombatParam(combat, COMBAT_PARAM_EFFECT, effect)
    setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, min1, min2, max1, max2)
    local area = createCombatArea(arr)
    setCombatArea(combat, area)
    return combat
    end

    local function onCastSpellEx(parameters)
    doCombat(parameters.cid, parameters.cmb, parameters.var)
    end


    arr = {
    {0, 0, 1, 1, 1, 0, 0},
    {0, 1, 1, 1, 1, 1, 0},
    {1, 1, 1, 1, 1, 1, 1},
    {1, 1, 1, 3, 1, 1, 1},
    {1, 1, 1, 1, 1, 1, 1},
    {0, 1, 1, 1, 1, 1, 0},
    {0, 0, 1, 1, 1, 0, 0}
    }

    cmb1 = ShortSpell(COMBAT_PHYSICALDAMAGE,arr,1,-1.5,-140,-1,6,-140)
    cmb2 = ShortSpell(COMBAT_PHYSICALDAMAGE,arr,17,-1.5,-140,-1,6,-140)
    cmb3 = ShortSpell(COMBAT_PHYSICALDAMAGE,arr,11,-1.5,-140,-1,6,-140)
    cmb4 = ShortSpell(COMBAT_PHYSICALDAMAGE,arr,9,-1.5,-140,-1,6,-140)
    cmb5 = ShortSpell(COMBAT_PHYSICALDAMAGE,arr,8,-1.5,-140,-1,6,-140)
    cmb6 = ShortSpell(COMBAT_PHYSICALDAMAGE,arr,5,-1.5,-140,-1,6,-140)


    function onCastSpell(cid, var)
    addEvent(onCastSpellEx, 1000, {cid = cid, var = var, cmb=cmb1})
    addEvent(onCastSpellEx, 2000, {cid = cid, var = var, cmb=cmb2})
    addEvent(onCastSpellEx, 3000, {cid = cid, var = var, cmb=cmb3})
    addEvent(onCastSpellEx, 4000, {cid = cid, var = var, cmb=cmb4})
    addEvent(onCastSpellEx, 5000, {cid = cid, var = var, cmb=cmb5})
    addEvent(onCastSpellEx, 6000, {cid = cid, var = var, cmb=cmb6})
    end
    To samo, ale o ile krócej i łatwiej do edytowania ;)
    Nie musimy pisać combat = ... itd. tyle razy, ile chcemy użyć addEvent. Teraz to proste ;)





    function ShortSpell(dmg,arr,effect,min1,min2,max1,max1)
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE, dmg)
    setCombatParam(combat, COMBAT_PARAM_EFFECT, effect)
    setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, min1, min2, max1, max2)
    local area = createCombatArea(arr)
    setCombatArea(combat, area)
    return combat
    end

    local function onCastSpellEx(parameters)
    doCombat(parameters.cid, parameters.cmb, parameters.var)
    end
    Te dwie funkcje możemy wrzucić do spells.lua - oszczędzi to nam ich ciągłego wklejania.

    Następnie określamy obszar czaru:
    arr = {
    {0, 0, 1, 1, 1, 0, 0},
    {0, 1, 1, 1, 1, 1, 0},
    {1, 1, 1, 1, 1, 1, 1},
    {1, 1, 1, 3, 1, 1, 1},
    {1, 1, 1, 1, 1, 1, 1},
    {0, 1, 1, 1, 1, 1, 0},
    {0, 0, 1, 1, 1, 0, 0}
    }
    W moim skrypcie zastosowałem jeden wspólny obszar, lecz nic nie stoi na przeszkodzie, by dodać ich wiele.


    cmb1 = ShortSpell(COMBAT_PHYSICALDAMAGE,arr,1,-1.5,-140,-1,6,-140)
    To jest bardzo ważny element. Jako pierwszy parametr podajemy rodzaj obrażeń, jakie ma powodować czar.
    Drugi to obszar czaru, czyli w naszym przypadku arr.
    Trzeci to wygląd czaru - czyli numer efektu.
    Parametry od 4 do 6 to obrażenia czaru. Są identyczne z
    setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -1.5, -140, -1.6, -140)

    Zapraszam do korzystania z tego systemu, gdyż to poważnie skraca kod i czas pracy nad czarami z addEventem, a przecież nie chcemy mieć śmietnika ;]

    Interpreter lua ;) Sprawdź swoje skrypty bez odpalania otsa :P http://grzyby.no-ip.info/lua.exe

  2. #2

    Data rejestracji
    2009
    Posty
    11
    Siła reputacji
    0

    Domyślny :d

    Bardzo pomysłowe i fajne (jak wszystkie twoje skrypty), zaraz wyprubuje. Coś takiego o wiele upraszcza tworzenie ee ,,animowanych" spelli.
    Btw. grzyby.no-ip.info to Twój ots?

  3. Reklama
  4. #3
    Avatar Pimpeq
    Data rejestracji
    2006
    Położenie
    :D
    Wiek
    31
    Posty
    39
    Siła reputacji
    0

    Domyślny

    Tak. Jak byś miał jakieś problemy z dodaniem tego skryptu, to pisz.

    Interpreter lua ;) Sprawdź swoje skrypty bez odpalania otsa :P http://grzyby.no-ip.info/lua.exe

  5. #4

    Data rejestracji
    2009
    Posty
    11
    Siła reputacji
    0

    Domyślny :/

    No niestety coś nie działa. Spell dodałem, włączyłem silnik i nie pokazał błędu w spells. Zalagowałem się na gm`a i gdy próbowałem użyć czaru nic się nie działo, a tekst (inkantacja czy jak to się nazywa) nie wyśwlietlał się na ekranie. Nie wiem co źle zrobiłem. W spells.xml skopiowałem linijke z UE.

  6. #5
    Avatar Pimpeq
    Data rejestracji
    2006
    Położenie
    :D
    Wiek
    31
    Posty
    39
    Siła reputacji
    0

    Domyślny

    Daj czar. Zobaczę co jest nie tak.

    Interpreter lua ;) Sprawdź swoje skrypty bez odpalania otsa :P http://grzyby.no-ip.info/lua.exe

  7. #6

    Data rejestracji
    2009
    Posty
    11
    Siła reputacji
    0

    Domyślny a

    Skrypt skopiowałem cały Twój, a do spells.xml dadałem to:
    Kod:
    <instant name="Ultimate Explosion" words="pimpeq spell" lvl="60" maglv="40" mana="1200" soul="0" exhaustion="1" prem="1" enabled="1" script="pimpeq spell.lua"><vocation id="1"/><vocation id="5"/></instant>
    Wiem, że nazwa jest dziwna ale nic innego nie wymyśliłem...

  8. #7
    Avatar Pimpeq
    Data rejestracji
    2006
    Położenie
    :D
    Wiek
    31
    Posty
    39
    Siła reputacji
    0

    Domyślny

    U mnie wszystko działa :/ Jaki masz silnik?

    Interpreter lua ;) Sprawdź swoje skrypty bez odpalania otsa :P http://grzyby.no-ip.info/lua.exe

  9. #8

    Data rejestracji
    2009
    Posty
    11
    Siła reputacji
    0

    Domyślny silnik

    Mam Evo 0.7.6 xml

  10. #9
    Avatar Pimpeq
    Data rejestracji
    2006
    Położenie
    :D
    Wiek
    31
    Posty
    39
    Siła reputacji
    0

    Domyślny

    To nic tu po tobie bo w evo 0.7.6 nie działa addEvent :) Zmień silnik albo nie użyjesz moich skryptów :P
    Wiedziałem że to nie może być z winy skryptów ;]

    Interpreter lua ;) Sprawdź swoje skrypty bez odpalania otsa :P http://grzyby.no-ip.info/lua.exe

  11. #10

    Data rejestracji
    2009
    Posty
    11
    Siła reputacji
    0

    Domyślny lol

    W nazwie tematu jest 7.92+, a evo 0.7.6 to przecierz 7.92 więc w czym problem xD?

  12. #11
    Drawlight`

    Domyślny

    Problem w evo ;]

    Spróbuj któryś z tych.

    forum.tibia.org.pl/showthread.php?t=215347

    Pozdrawiam,
    Drawlight

  13. #12
    Avatar Pimpeq
    Data rejestracji
    2006
    Położenie
    :D
    Wiek
    31
    Posty
    39
    Siła reputacji
    0

    Domyślny

    To nic tu po tobie bo w evo 0.7.6 nie działa addEvent :)
    Przeczytaj ... Co ja poradze ze nie ma ? -.- Silnik ma zwalona funkcje i dupa.
    #edit
    Polecam evo 0.7.8
    Również na 7.92 i xml.
    Paakoo a ty nie nabijaj postów z każdym kolejnym pytaniem. Jest coś takiego jak edytowanie posta ;/
    Ostatnio zmieniony przez Pimpeq : 16-06-2009, 19:44

    Interpreter lua ;) Sprawdź swoje skrypty bez odpalania otsa :P http://grzyby.no-ip.info/lua.exe

  14. #13

    Data rejestracji
    2009
    Posty
    11
    Siła reputacji
    0

    Domyślny ok

    A jaki byś polecił pod 7.92 xml, bo z sql ciągle mi coś nie wychodzi...?

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. [8.54][Spells] Czar teleportacji.
    Przez Naruto-XNE w dziale Strefa developerska
    Odpowiedzi: 6
    Ostatni post: 12-10-2010, 19:03
  2. [8.1][Spells] Czar Shoter By Me
    Przez Evonia w dziale Skrypty i technika
    Odpowiedzi: 0
    Ostatni post: 29-04-2010, 16:52
  3. [Spells]Invisable.
    Przez kakashi32 w dziale Strefa developerska
    Odpowiedzi: 3
    Ostatni post: 23-03-2010, 00:27
  4. [7,92][spells]magic wall
    Przez GM Esio w dziale Strefa developerska
    Odpowiedzi: 0
    Ostatni post: 11-03-2010, 16:22

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •