state __complete begin (K)

Indította Redmond, 2013-04-11, 18:25:20

2013-04-11, 18:25:20 Utolsó szerkesztés: 2013-04-12, 15:22:37 Szerző: [MOD]Aegist
Sziasztok
Van 1 questem
quest glipkő begin
state start begin
  when 9006.chat."glipkő " begin
   say_title("Öregasszony:")
   say("Hallo, ".. pc.get_name() .. ".")
   say("")
   wait()
   say_title("Öregasszony:")
   say("")
   wait()

   if pc.get_level() < 10 then
    say_title("Öregasszony:")
    say("Üdvözöllek kalandor!")
    say("Én adhatok neked +10% Támadó sebességet.")
    say_reward(" Ne feledd! Bárhol eshet Gliph Kö ")
   else
    say_title("Öregasszony:")
    say("")
    say_item_vnum(30178)
   
    local jn = select("Beváltom", "Nem Szeretném beváltani")
    if jn == 1 then
     local diamant = pc.countitem("30178")
     
     if diamant >= 10 then       
      affect.add_collect(apply.ATT_SPEED, 10, 60*60*24*365*60)
      pc.remove_item(30178, 10)
     else
      say_title("Öregasszony:")
      say("")
     end
    else
     return
    end
   end
  end
end
end

state __complete begin ----> Ezt szeretném bele rakni de akárhova rakom qc nél ezt írja.
metin2# cd /home/game/quest
metin2# ./qc glipko.quest
QUEST : glipkő
STATE : start
WHEN  : 9006.chat ("glipkő ")
expecting 'when' or 'function'
glipko.quest:40:Abort (core dumped)


Ha valaki tudja hova kéne rakni hogy jó legyen megköszönöm :D

2013-04-11, 19:35:09 #1 Utolsó szerkesztés: 2013-04-11, 19:37:02 Szerző: sunshineX
Szerintem Te magad sem tudod, hogy mit akarsz ezzel összehozni.

Be akarsz rakni egy új state-t, anélkül, hogy előtte létrehoztad volna?
A state-k alkalmazása röviden, tömören a következő:

Adott state-ben (legyen az most a "start" [és az azon belül befirkált when, stb. stb marhaságok után]) megadott utasítások legvégén adhatunk meg új state-t. Ha a
set_state(stateneve) utasítás után még megadunk funkciókat ugyan abba a state-be, azt cseszheted, mert nem fogja végrehajtani.

quest pelda begin
state start begin
when blablabla begin
*utasítások*
set_state(stateneve)
end
end
state stateneve begin
when blablabla begin
end
end


Ergo: Ha új state-re akarod rakni a játékost questen belül, akkor az utasítások végére kell írnod ezt a parancsot:
set_state(stateneve)

Aztán az adott when-t, valamint state-t lezárni, és a fent megadottal folytatni a questet:

state stateneve begin

Remélem sikerült felvilágosítanom Téged a dologgal kapcsolatban.  ;D
NEM csinálom meg helyetted a szerveredet.
NEM fogok teljesen alap questeket írni helyetted.

igen értem köszi zárom