Reklama
Pokazuje wyniki od 1 do 5 z 5

Temat: [LUA][7.6]Różne efekty czaru dla różnych mlvl

  1. #1
    Avatar Rysiek
    Data rejestracji
    2006
    Posty
    185
    Siła reputacji
    20

    Domyślny [LUA][7.6]Różne efekty czaru dla różnych mlvl

    Dawno nie bawiłem się z OTS-ami, ale ostatnio przyszła mi chęć. Postanowiłem zrobić zaklęcie przywołujące światło zależne od profesji gracza, jednak uznałem, że lepiej byłoby zrobić zależne od magic lvl. Więc wziąłem skrypt utevo lux i nieco zeedytowałem, pogrzebałem w necie itd. Ale gdy odpalam zaklęcie nie dzieje się zupełnie nic.
    Kod :
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
    setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE)
    
    local condition = createConditionObject(CONDITION_LIGHT)
    setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 10)
    
    function onBeginCast(cid, var)
    if getPlayerMagLevel > 40 then
    setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 195) -- red
    elseif getPlayerMagLevel(cid) <= 40 then
    setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 176) -- green
    elseif getPlayerMagLevel(cid) <= 20 then
    setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 267) -- yellow
    elseif getPlayerMagLevel(cid) <= 6 then
    setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215) -- white
    else 
    setConditionParam(condition, CONDITION_PARAM_LIGHT+COLOR, 215) -- white again
    
    end
    end
    
    setConditionParam(condition, CONDITION_PARAM_TICKS, (6*60)*1000) --time
    setCombatCondition(combat, condition)
    
    function onCastSpell(cid, var)
    	return doCombat(cid, combat, var)
    end
    Drugie podejście
    Kod :
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
    setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, FALSE)
    function onBeginCast(cid, var)
    if getPlayerMagLevel > 40 then
    local color = 195 -- red?
    elseif getPlayerMagLevel(cid) <= 40 then
    local color = 176 -- green?
    elseif getPlayerMagLevel(cid) <= 20 then
    local color = 167 -- yellow
    elseif getPlayerMagLevel(cid) <= 6 then
    local color = 215 -- white
    end
    end
    
    local condition = createConditionObject(CONDITION_LIGHT)
    setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 6)
    setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, color)
    setConditionParam(condition, CONDITION_PARAM_TICKS, ((6*60)+10)*1000) --3 minutes and 10 seconds(time in ms)
    setCombatCondition(combat, condition)
    
    function onCastSpell(cid, var)
    	return doCombat(cid, combat, var)
    end
    Co robię źle, i co powinienem poprawić? A może to jest niemożliwe?
    Silnik Avesta 0.6.1, kompilacja z Jul 31 2010.

  2. #2
    Avatar Grim90
    Data rejestracji
    2007
    Położenie
    Toruń / Brzozówka
    Wiek
    35
    Posty
    586
    Siła reputacji
    18

    Domyślny

    Na pierwszy rzut widzę:
    Kod :
    if getPlayerMagLevel > 40 then
    Chyba powinno być:
    Kod :
    if getPlayerMagLevel(cid) > 40 then
    Sprawdź, czy to coś zmieniło.
    Piszę skrypty do OTS. Chcesz mieć unikalny quest, lub skrypt na swoim serwerze? Pisz do mnie. Na pewno się dogadamy.
    Piszę skrypty PHP, strony oraz gotowe serwisy, jeśli jesteś zainteresowany, napisz.
    http://radeg.pl

    Masz facebooka? Zapraszamy do grupy: Grim OTS!
    http://www.facebook.com/?ref=logo#!/...07707075989449

  3. #3
    Avatar Rysiek
    Data rejestracji
    2006
    Posty
    185
    Siła reputacji
    20

    Domyślny

    Już nieco prędzej próbowałem tego i nie działało :(

  4. Reklama
  5. #4
    Avatar GM Esio
    Data rejestracji
    2007
    Położenie
    Mysłowice
    Wiek
    33
    Posty
    333
    Siła reputacji
    19

    Domyślny

    a może dodaj czas trwania tego - skąd silnik ma to wiedzieć? np.
    Kod :
    setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215)
    setConditionParam(condition, CONDITION_PARAM_TICKS, 33 * 60 * 1000)
    http://ots.tibiaserver.pl/tibiaserver.gif

  6. #5
    Avatar Rysiek
    Data rejestracji
    2006
    Posty
    185
    Siła reputacji
    20

    Domyślny

    Hmm, ale już jest w obu skryptach:
    Kod :
    setConditionParam(condition, CONDITION_PARAM_TICKS, (6*60)*1000) --time

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. Sprzedam Różne światy-kilka kont-różne profesje
    Przez Shartek w dziale Postaci
    Odpowiedzi: 3
    Ostatni post: 31-01-2018, 09:46
  2. Różne chary - różne expy
    Przez Sakus w dziale Tibia
    Odpowiedzi: 3
    Ostatni post: 31-07-2014, 23:19
  3. [LUA] Krótsze odpowiedniki w lua - autorstwa Grimkka
    Przez Grimekk w dziale Artykuły developerskie
    Odpowiedzi: 2
    Ostatni post: 13-01-2014, 18:36
  4. [Lua] Od zera do skryptera, czyli LUA: Pętle i tablice*
    Przez Grim90 w dziale Artykuły developerskie
    Odpowiedzi: 9
    Ostatni post: 21-08-2010, 02:47
  5. [Lua] Od zera do skryptera, czyli LUA: PODSTAWY i Actions*
    Przez Grim90 w dziale Artykuły developerskie
    Odpowiedzi: 7
    Ostatni post: 02-08-2009, 01:05

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
  •