[SERVICE] Die Questkontrolle

09/03/2011 15:06 FunkYFriDy#3346
Hier nur ne kleinere Quest.
Fehlermeldung:


Die Quest:


Bedeutung:
Wenn ein Player Level 121 erreicht wird er wieder 120 gesetzt.
09/03/2011 15:09 F4m0uZStYle#3347
PHP Code:
quest kill begin
    state start begin
        when 50318.
use begin
            set_state
(mino_kill)
        
end
    end
        
    state mino_kill begin
        when letter begin
            send_letter
("Mission Rang C")
        
end
            
            when button 
or info begin
                say
("Es wird Zeit dass du zeigst")
                
say("was in dir steckt!")
                
say("Zeige es uns indem du 40")
                
say("Minotauren tötest!")
                
say_reward("Töte 40 Minotauren!")
                
say("")
                
pc.setqf("state", 40)
                
q.set_counter("Restliche Minotauren", 40)
                
set_state(monster1)
            
end
        end    
            state monster1 begin
                when letter begin
                    send_letter
(Infos zur Quest)
                
end
                
                when button 
or info begin
                    say_title
("Monster:")
                    
say_reward( "Du musst noch ".." "..pc.getqf("state").."von 40 Minotauren töten")
                
end
            
            when 2604.kill begin
                local count 
= pc.getqf("state") - 1
                
if count <= 40 then
                pc
.setqf("state", count)
                
q.set_counter("Restliche Minotauren", count)
                if 
count == 0 then
                say_title
("Du hast es geschafft!")
                
say("Du hast 40 Minotauren getötet!")
                
say("Du erhälst für deine Mühen:")
                
say_reward("10 Muscheln")
                
say_reward("100.000 Yang")
                
say_reward("Den Titel 'Chunin'")
                
pc.change_money(100000)
                
pc.changealignment(2000)
                
pc.give_item2(27987, 10)
                
pc.give_item2(50319, 1)
                
notice_all("".. pc.get_name() .." hat soeben die Chunin Prüfung abgeschlossen!")
                
notice_all("er hat 40 Minotauren getötet und trägt von nun an den Titel ' Chunin '.")
                
clear_letter()
                
set_state(__COMPLETE__)
                
end
            end
        end
    end
      state __COMPLETE__ begin
          end
  end 





PHP Code:
quest levelgrenze begin
    state start begin
        when kill with pc
.get_level() >= 121 begin
                pc
.get_level(120)
            
end
        end
    end 
09/03/2011 15:19 √π.#3348
PHP Code:
quest levelgrenze begin
    state start begin
        when kill with pc
.get_level() == 120 and not npc.is_pc() begin
            local my_exp 
= pc.get_exp()
            
pc.give_exp2(-my_exp)
        
end
    end
end 
So sollts eher hinhaun.
09/03/2011 15:24 FunkYFriDy#3349
Klar, aber erklär mal was ich da einstellen muss bitte :)

Keine Ahnung wie das geht.
Die Person, die Level 120 ist und 121 wird, soll ja auf 120 zurückgestuft werden.
09/03/2011 15:28 √π.#3350
So wie ichs sehe soll die Lvlgrenze bei 120 liegen, nun wird jeden der Lvl 120 ist und ein Mob killt seine Exp wieder abgezogen -> er bleibt Lvl 120.
Einzige Problem ists Gruppenlvln. Würd sich jemand per Gruppe hochziehen lassen kann er über 120 kommen^^
09/03/2011 22:16 Benhero#3351
PHP Code:
quest levelgrenze begin
    state start begin
        when login begin
            timer
("level_check", 2)
        
end
        when level_check
.timer begin
            
if pc.get_level() == pc.getqf("max_level") then
                pc
.give_exp2(-pc.get_exp())
                
timer("level_check_two", 2)
            else
                
timer("level_check_two", 2)
            
end
        end
        when level_check_two
.timer begin
            
if pc.get_level() == pc.getqf("max_level") then
                pc
.give_exp2(-pc.get_exp())
                
timer("level_check", 2)
            else
                
timer("level_check", 2)
            
end
        end
    end
end 
Mfg. Benhero!
09/03/2011 22:25 √π.#3352
Würds
PHP Code:
pc.getqf("max_level") 
dann durch ne eventflag ersetzen und durch ne andere Funktion für GM's veränderbar machen, wenn die Lvlgrenze schnell ändern möchte.
09/03/2011 22:51 Fame™#3353
PHP Code:
quest chat begin
    state start begin
        when 30168.
use."GM" begin
            say
("Was willst du machen?")
            
local a = select("Schreiben wie ein GM", "Support", "Nichts")
           
            if 
a == 3 then
                
return
            
            elseif 
a == 1 then
                local notice_text 
= input()
                
notice_all(pc.get_name().." : "..notice_text)
                return
            elseif 
a == 2 then
                notice_all
(pc.get_name().." ist nun für eure Fragen verfügbar!)
            end    
        end
    end
end 
Kommt keine Fehlermeldung, aber es passiert nichts wenn ich das Item anklicke (Type ist auf 18).
09/03/2011 23:05 .Delta#3354
letztes notice_all fehlt dir hinten ein "
09/03/2011 23:19 Fame™#3355
Also so?

PHP Code:
quest chat begin
    state start begin
        when 30168.
use."GM" begin
            say
("Was willst du machen?")
            
local a = select("Schreiben wie ein GM", "Support", "Nichts")
           
            if 
a == 3 then
                
return
            
            elseif 
a == 1 then
                local notice_text 
= input()
                
notice_all(pc.get_name().." : "..notice_text)
                return
            elseif 
a == 2 then
                notice_all
(pc.get_name().." ist nun für eure Fragen verfügbar!")
            
end    
        end
    end
end 
09/04/2011 03:32 xTheSoulutionxx3#3356
quest:
PHP Code:
quest Truhe begin
state start begin
when 50132.
use begin
say_title
("Mysteriöse RubinTruhe:")
say("")
say("Willst du mit dem Schlüssel die Truhe öffnen?")
local main_set = select("Ja, Truhe öffnen","Nein, jetzt nicht")
if 
main_set == 2 then
return
end
pc
.removeitem(50132, 1)
pc.removeitem(50150, 1)
local r=number(1, 12)
if 
1>=r then
pc
.give_item2("71130", 1)
elseif 
2>=r then
pc
.give_item2("72043", 1)
elseif 
3>=r then
pc
.give_item2("72040", 1)
elseif 
4>=r then
pc
.give_item2("72037", 1)
elseif 
5>=r then
pc
.give_item2("72034", 1)
elseif 
6>=r then
pc
.give_item2("71094", 1)
elseif 
7>=r then
pc
.give_item2("72027", 1)
elseif 
8>=r then
pc
.give_item2("70039", 1)
elseif 
9>=r then
pc
.give_item2("71032", 1)
elseif 
10>=r then
pc
.give_item2("25040", 1)
elseif 
11>=r then
pc
.give_item2("70024", 1)
elseif 
12>=r then
pc
.give_item2("71083", 1)

end
else
end
end
end
end
end 
fehler:
syntax error : [string "start"]:36: <eof> expected near else
truhe.quest : 105: abort trap (core dumped)
error occcured on compile truhe.quest
09/04/2011 04:33 Andreas9#3357
selbstgelöst - trotzdem danke!
09/04/2011 05:04 Mixxon#3358
Ich wollte Quest schreiben lernen.
Kollege meinte er kanns mir nicht beibringen er meinte ich sollte lieber Quest anschauen und was zusammenbasteln und hier reinschreiben zur Kontrolle.
Würde mich freuen fals sie jemand kontrollieren könnte und mir dann schreiben könnte was ich falsch gemacht habe.
Nicht ernst nehmen die Quest ist meine erste. xd

Code:
quest metins begin
	state start begin
		when login or levelup with pc.get_level() >= 5
		
			say("Hey,"..pc.get_name() .."!")
			say("Wie ich sehe hast du das level 5 erreicht")
			say("Jetzt bist du stark genug um die Invasion der Metins aufzuhalten")
			say("Möchtest du diese Quest annehmen?")
			
			local main_set = select ("Ja","Nein")
			if main_set == 2 then
				return
			end
			
			if main_set == 1 then
			say("Da du diese Quest angenommen hast")
			say("muss du 12 Metins töten.")
			say("Du musst je 3x den 5er,10er,15er und 20er Metin töten.")
	pc.setqf("state", 12)
	q.set_counter("Metin der Kummer", 3)
	q.set_counter("Metin des Kampfes", 3)
	q.set_counter("Metin der Schlacht", 3)
	q.set_counter("Metin der Gier", 3)
		
	when 8001.kill begin
			local count = pc.getqf("state") - 1
			if count <= 12 then
					pc.setqf("state", count)
	when 8002.kill begin
			local count = pc.getqf("state") - 1
			if count <= 12 then
					pc.setqf("state", count)
	when 8003.kill begin
			local count = pc.getqf("state") - 1
			if count <= 12 then
					pc.setqf("state", count)
	when 8004.kill begin
			local count = pc.getqf("state") - 1
			if count <= 12 then
					pc.setqf("state", count)
		q.set_counter(Metin der Kummer", count)
		q.set_counter(Metin des Kampfes", count)
		q.set_counter(Metin der Schlacht", count)
		q.set_counter(Metin der Gier", count)
			end
			if count == 0 then
				say_title("Glückwunsch")
				say("Da du es geschafft hast werde ich dir etwas geben als Belohnung.")
				say("Du erhälst je nach Klasse deine Belohnung.")
	set_state("__COMPLETE__")
			if pc . job == 0 then
			pc.give_item2 ("299 , 1")
			pc.give_item2 ("3219 , 1)
			say_reward("Du hast die Kriegerwaffen bekommen!")
			elseif pc . job == 2 then 
			pc.give_item2 ("1179 , 1")
			pc.give_item2 ("2159 , 1")
			say_reward("Du hast die Ninjawaffen bekommen!")
			elseif pc . job == 3 then 
			pc.give_item2 ("299 , 1")
			say_reward("Du hast die Surawaffen bekommen!")
			elseif pc . job == 3 then 
			pc.give_item2 ("7199  , 1")
			pc.give_item2 ("5119 , 1")
			say_reward("Du hast die Schamiwaffen bekommen!")
end
09/04/2011 08:41 ƬheGame#3359
manchmal sollte man nicht auf freunde hören die quest ist ziemlich komplett verkehrt und unvollständig
09/04/2011 10:56 .Delta#3360
PHP Code:
quest Truhe begin
    state start begin
        when 50132.
use begin
            say_title
("Mysteriöse RubinTruhe:")
            
say("")
            
say("Willst du mit dem Schlüssel die Truhe öffnen?")
            
local main_set = select("Ja, Truhe öffnen","Nein, jetzt nicht")
            if 
main_set == 2 then
                
return
            
end
            
if pc.count_item(50132) < 1 and pc.count_item(50150) < 1 then
                say
("Dir Fehlt Truhe oder Schlüssel.")
                
say("Versuche es später erneut.")
                return
            
end
            pc
.removeitem(50132, 1)
            
pc.removeitem(50150, 1)
            
local r=number(1, 12)
            if 
r == 1 then
                pc
.give_item2(71130, 1)
            elseif 
r == 2 then
                pc
.give_item2(72043, 1)
            elseif 
r == 3 then
                pc
.give_item2(72040, 1)
            elseif 
r == 4 then
                pc
.give_item2(72037, 1)
            elseif 
r == 5 then
                pc
.give_item2(72034, 1)
            elseif 
r == 6 then
                pc
.give_item2(71094, 1)
            elseif 
r == 7 then
                pc
.give_item2(72027, 1)
            elseif 
r == 8 then
                pc
.give_item2(70039, 1)
            elseif 
r == 9 then
                pc
.give_item2(71032, 1)
            elseif 
r == 10 then
                pc
.give_item2(25040, 1)
            elseif 
r == 11 then
                pc
.give_item2(70024, 1)
            elseif 
r == 12 then
                pc
.give_item2(71083, 1)
            
end
        end
    end
end