[SERVICE] Die Questkontrolle

12/02/2011 20:27 [GM]Jan#4171
Quote:
Originally Posted by Dark´s View Post
ich habe kein Fahler gesehen allerdings bin ich darin auch nicht so gut aber hasst du auch die wquest über vpc überschrieben und in das QuestVerzeichnis geschrieben
also sh makequest und honkong_list?
12/02/2011 20:31 [SoLow]#4172
Quote:
Originally Posted by [GM]Jan View Post
Hey
ich habe eine Quest gescriptet, die sagen soll welcher GM on ist und links bei den Quests erscheinen soll
Aber sie erschient iwie nicht


Thx+MfG Jan

Bin mir sowas von garnicht sicher :D, aber muss man ein state nicht erstmal set'n bevor der begin'nen kann?

Bei dem state gotoinformation
12/02/2011 20:37 Akiao#4173
@ Jan jo @SOLOW hmm kann sein wie gesagt bin nicht der beste darin
12/02/2011 20:54 [SoLow]#4174
Versuch es halt mal so, ich bin mir wirklich nicht sicher da ich selber nicht so die Ahnung davon hab, dazu kenn ich den Befehl game.get_event_flag nichtmal, aber ich glaube ein state muss man erst setzen bevor man ein begin machen kann.

PHP Code:
quest gm_online_immer begin
    state start begin
        when login with pc
.is_gm() begin
            game
.set_event_flag(pc.get_name(), 1)
        
end
        
        when logout with pc
.is_game() begin
            game
.set_event_flag(pc.get_name(), 0)
                
set_state(information)
        
end
    end
    
    state information begin
        when letter begin
            send_letter
("Welcher GM/GA ist online?")
        
end
        
        when button 
or info begin
            say_title
("Welcher GM/GA ist Online?")
            
say("Du möchtest wissen, welche GMs/GAs online sind?")
            
say("Bitte beachte, das GMs grün markiert sind und")
            
say("Klammern vor den Namen haben.")
            
say("")
        
            if 
game.get_event_flag("[ADMIN]Kinzao") == 1 then
                say
("ADMIN Kinzao: Online")
                else
                
say("Admin Kinzao: Offline")
            
end
        
            
if game.get_event_flag("[GM]Jan") == 1 then
                say
("GM Jan: Online")
                else
                
say("GM Jan: Offline")
            
end

            
if game.get_event_flag("[GM]TeRRoR") == 1 then
                say
("GM TeRRoR: Online")
                else
                
say("GM TeRRoR: Offline")
            
end
        end
    end
end 
12/02/2011 21:24 xPrivate#4175
Solow hat recht. Den ersten State kann man so starten, also den nach

Code:
quest xxxxx begin
die restlichen muss man in dem State der davor ist per:

Code:
set_state(statename)
setten

Mit freundlichen Grüßen
xPrivate
12/02/2011 23:45 xTheSoulutionxx3#4176
PHP Code:
quest football_event begin
    state start begin
        when game
.get_event_flag("foot_event") == 1 begin
            notice_all
("Das Fußball event hat Begonnen ihr")
            
notice_all("könnt nun Fußbälle droppen und")
            
notice_all("öffnen mit Rechtsklick.")
            
notice_all("Viel Spaß wünscht euch das Team.")
        
end
        when kill with game
.get_event_flag("foot_event") == 1 begin
            local s 
= number(1, 450)
            if 
s == 1 then
            game
.drop_item(50096)
            return
            
end
        end
    end
end 
12/02/2011 23:50 xXxFlash#4177
hallo ich möchte eine map im teleporterhinzufügen weiß ab nicht wo genau
hier die quest

die map soll heißen Farmmap und kordis sind 400 650
Code:
local map = pc . get_map_index ( ) 
local empire = pc . get_empire ( ) 
local level = pc . get_level ( ) 
local cost = math . floor ( level / 5 ) * 1000 
local guild_map_names = { "Jungrang" , "Waryong" , "Imha" , } 
guild_map_name = guild_map_names [ empire ] 
local empire_castle = { "Rote Burg" , "Gelbe Burg" , "Blaue Burg" , } 
empire_castle = empire_castle [ empire ] 
local warp = { 
{ 
{ 128500 , 1000 } , 
{ 179500 , 1000 } , 
{ 271800 , 13000 } , 
} , 
{ 
{ 402100 , 673900 } , 
{ 270400 , 739900 } , 
{ 321300 , 808000 } , 
} , 
{ 
{ 217800 , 627200 } , 
{ 221900 , 502700 } , 
{ 344000 , 502500 } , 
} , 
{ 
{ 434200 , 290600 } , 
{ 375200 , 174900 } , 
{ 491800 , 173600 } , 
} , 
{ 
{ 599400 , 756300 } , 
{ 597800 , 622200 } , 
{ 730700 , 689800 } , 
} , 
{ 
{ 590500 , 110500 } , 
{ 590500 , 110500 } , 
{ 590500 , 110500 } , 
} , 
{ 
{ 1.1199e+06 , 70800 } , 
{ 1.1199e+06 , 70800 } , 
{ 1.1199e+06 , 70800 } , 
} , 
{ 
{ 51200 , 486400 } , 
{ 51200 , 486400 } , 
{ 51200 , 486400 } , 
} , 
{ 
{ 553600 , 143600 } , 
{ 553600 , 143600 } , 
{ 553600 , 143600 } , 
} , 
{ 
{ 480800 , 1.0696e+06 } , 
{ 480800 , 1.0696e+06 } , 
{ 480800 , 1.0696e+06 } , 
} , 
{ 
{ 5.5555e+06 , 5.5555e+06 } , 
{ 5.5555e+06 , 5.5555e+06 } , 
{ 5.5555e+06 , 5.5555e+06 } , 
} , 
{ 
{ 665600 , 435200 } , 
{ 665600 , 435200 } , 
{ 665600 , 435200 } , 
} , 
{ 
{ 1.23457e+08 , 1.23457e+08 } , 
{ 1.23457e+08 , 1.23457e+08 } , 
{ 1.23457e+08 , 1.23457e+08 } , 
} , 
} 
local sub_set = 0 
say_title ( "Teleportieren" ) 
if map == 1 or map == 3 or map == 21 or map == 23 or map == 41 or map == 43 then 
say ( "Hier gibt es keine Starken Monster.." ) 
say ( "Jedoch gibt es viele andere Regionen," ) 
say ( "in denen es viele, neue und starke" ) 
say ( "Monster gibt.." ) 
say ( "" ) 
say_reward ( "Nungut, soll ich dich teleportieren?" ) 
else 
say ( "Anscheinend sind die Monster zustark" ) 
say ( "für dich.." ) 
say ( "Oder du möchtest dir einfach neue Tränke kaufen.." ) 
say ( "" ) 
say_reward ( "Nungut, möchtest du zurück in die Stadt?" ) 
end 
local s = select ( "Teleportieren" , "Schließen" ) 
if s == 2 then 
return 
end 
say_title ( "Teleportieren" ) 
if map == 1 or map == 3 or map == 21 or map == 23 or map == 41 or map == 43 then 
if level < 60 then 
say ( "Da dein Level noch sehr niedrig ist," ) 
say ( "kannst du erst in einige Gebiete Reisen.." ) 
say_reward ( "Eine Reise kostet" .. cost .. " yang!" ) 
sub_set = select ( guild_map_name , "Tal von Seungryong" , "Yongbi-Wüste" , "Berg Sohan" , "Abbrechen" ) 
if sub_set == 5 then 
return 
end 
else 
say ( "Da dein Level schon recht hoch ist," ) 
say ( "kann ich dich auch auf neue Regionen" ) 
say ( "Teleportieren.." ) 
say_reward ( "Eine Reise kostet" .. cost .. " yang!" ) 
sub_set = select ( guild_map_name , "Tal von Seungryong" , "Yongbi-Wüste" , "Berg Sohan" , "Weiter" , "Abbrechen" ) 
if sub_set == 6 then 
return 
end 
if sub_set == 5 then 
say_title ( "Teleportieren" ) 
say ( "Dies sind die schweren Regionen.." ) 
say_reward ( "Eine Reise kostet" .. cost .. " yang!" ) 
if is_test_server ( ) then 
sub_set = select ( "Feuerland" , "Dämonenturm" , "Roter Wald" , "Spinnendungeon" , "Tempel" , "Feuerland 2" , "Weiter" , "Abbrechen" ) + 4 
if sub_set == 12 then 
return 
end 
if sub_set == 11 then 
say_reward ( "Eine Reise kostet" .. cost .. " yang!" ) 
sub_set = select ( "Dämonenturm2" , "Weiter" , "Abbrechen" ) + 10 
if sub_set == 19 then 
return 
end 
if sub_set == 18 then 
say_reward ( "Eine Reise kostet" .. cost .. " yang!" ) 
sub_set = select ( "Spinnendungeon2" , "Spinnendungeon3" , "Abbrechen" ) + 17 
if sub_set == 24 then 
return 
end 
end 
end 
else 
say_reward ( "Eine Reise kostet" .. cost .. " yang!" ) 
sub_set = select ( "Feuerland" , "Dämonenturm" , "Roter Wald" , "Spinnendungeon" , "Tempel" , "Feuerland 2" , "Abbrechen" ) + 4 
if sub_set == 14 then 
return 
end 
end 
end 
end 
if pc . get_gold ( ) < cost then 
say_title ( "Teleportiern" ) 
say_reward ( "Du hast zuwenig yang!" ) 
return 
end 
pc . changegold ( - cost ) 
pc . warp ( warp [ sub_set ] [ empire ] [ 1 ] , warp [ sub_set ] [ empire ] [ 2 ] ) 
else 
if empire == 1 then 
sub_set3 = select ( "Yongan" , "Jayang" , "Abbrechen" ) 
if sub_set3 == 1 then 
if pc . get_gold ( ) < cost then 
say_title ( "Teleportiern" ) 
say_reward ( "Du hast zuwenig yang!" ) 
return 
end 
pc . changegold ( - cost ) 
pc . warp ( 474300 , 954800 ) 
end 
if sub_set3 == 2 then 
if pc . get_gold ( ) < cost then 
say_title ( "Teleportiern" ) 
say_reward ( "Du hast zuwenig yang!" ) 
return 
end 
pc . changegold ( - cost ) 
pc . warp ( 353100 , 882900 ) 
end 
if sub_set3 == 3 then 
return 
end 
elseif empire == 2 then 
local sub_set3 = select ( "Joan" , "Bokjung" , "Abbrechen" ) 
if sub_set3 == 1 then 
if pc . get_gold ( ) < cost then 
say_title ( "Teleportiern" ) 
say_reward ( "Du hast zuwenig yang!" ) 
return 
end 
pc . changegold ( - cost ) 
pc . warp ( 63800 , 166400 ) 
end 
if sub_set3 == 2 then 
if pc . get_gold ( ) < cost then 
say_title ( "Teleportiern" ) 
say_reward ( "Du hast zuwenig yang!" ) 
return 
end 
pc . changegold ( - cost ) 
pc . warp ( 145500 , 240000 ) 
end 
if sub_set3 == 3 then 
return 
end 
elseif empire == 3 then 
local sub_set3 = select ( "Pyungmoo" , "Bakra" , "Abbrechen" ) 
if sub_set3 == 1 then 
if pc . get_gold ( ) < cost then 
say_title ( "Teleportiern" ) 
say_reward ( "Du hast zuwenig yang!" ) 
return 
end 
pc . changegold ( - cost ) 
pc . warp ( 959900 , 269200 ) 
end 
if sub_set3 == 2 then 
if pc . get_gold ( ) < cost then 
say_title ( "Teleportiern" ) 
say_reward ( "Du hast zuwenig yang!" ) 
return 
end 
pc . changegold ( - cost ) 
pc . warp ( 863900 , 246000 ) 
end 
if sub_set3 == 3 then 
return 
end 
end 
end
12/03/2011 12:51 [GM]Jan#4178
Quote:
Originally Posted by xPrivate View Post
Solow hat recht. Den ersten State kann man so starten, also den nach

Code:
quest xxxxx begin
die restlichen muss man in dem State der davor ist per:

Code:
set_state(statename)
setten

Mit freundlichen Grüßen
xPrivate
Alos müsste die quest wo solow gepostet hat funktionieren?

Edit: muss ich nicht noch sagen, dass die quest beim login und lvl up erscheinen muss?
12/03/2011 13:29 [SoLow]#4179
Quote:
Originally Posted by [SoLow] View Post
Versuch es halt mal so, ich bin mir wirklich nicht sicher da ich selber nicht so die Ahnung davon hab, dazu kenn ich den Befehl game.get_event_flag nichtmal, aber ich glaube ein state muss man erst setzen bevor man ein begin machen kann.

PHP Code:
quest gm_online_immer begin
    state start begin
        when login with pc
.is_gm() begin
            game
.set_event_flag(pc.get_name(), 1)
        
end
        
        when logout with pc
.is_game() begin
            game
.set_event_flag(pc.get_name(), 0)
                
set_state(information)
        
end
    end
    
    state information begin
        when letter begin
            send_letter
("Welcher GM/GA ist online?")
        
end
        
        when button 
or info begin
            say_title
("Welcher GM/GA ist Online?")
            
say("Du möchtest wissen, welche GMs/GAs online sind?")
            
say("Bitte beachte, das GMs grün markiert sind und")
            
say("Klammern vor den Namen haben.")
            
say("")
        
            if 
game.get_event_flag("[ADMIN]Kinzao") == 1 then
                say
("ADMIN Kinzao: Online")
                else
                
say("Admin Kinzao: Offline")
            
end
        
            
if game.get_event_flag("[GM]Jan") == 1 then
                say
("GM Jan: Online")
                else
                
say("GM Jan: Offline")
            
end

            
if game.get_event_flag("[GM]TeRRoR") == 1 then
                say
("GM TeRRoR: Online")
                else
                
say("GM TeRRoR: Offline")
            
end
        end
    end
end 
Steht doch drin, Zeile 3? When login with pc.is_gm .. Ich weiß nicht ob sie funktioniert, guck halt was dir VPC /whatever ausgibt wenn du make.sh ausführst.
12/03/2011 13:45 [GM]Jan#4180
Ist meine erste quest aber ich glaube, dass das nur 1 setzt, dass gm on ist und die quest nicht bei gamern links (bei den quests) angezeigt wird
12/03/2011 15:29 kaufman93#4181
Hey könnt ihr mal bitte bei der quest also das man da erst ab lvl 50 reinkann machen?
Wer voll nett weil ich check das einfach nicht bei mir kackt dann immer Server ab


say ( "" )
say ( "" .. mob_name ( 20087 ) .. "" )
say ( "Die zweite Ebene des" )
say ( "Spinnendungeons ist sehr gefährlich!" )
say ( "Ich hoffe du bist stark genug" )
say ( "für die dort lauernden gefahren..." )
say ( "" )
wait ( )
say ( "" )
say ( "" )
if pc . get_premium_remain_sec ( PREMIUM_EXP ) > 0 then
say ( "" )
say ( "¾¾¾¾..±z¨ã³Æ±ø¥ó¤F." )
say ( "¶i¥h§a." )
say ( "¥u±z¬O°ê®aªº¤@¥÷¤l" )
say ( "´N¯à¥X¤JµLªý.." )
wait ( )
pc . warp ( 704100 , 464100 )
return
end
if pc . count_item ( 27003 ) > 0 then
say ( "" )
say ( "" .. mob_name ( 20087 ) .. "" )
say ( "Ich bringe dich nun in die zweite Ebene!" )
say ( "" )
char_log ( 0 , "GO_SPIDER2" , "USE_ITEM(71095)" )
elseif pc . count_item ( 27002 ) > 0 then
say ( "" )
say ( "" .. mob_name ( 20087 ) .. "" )
say ( "Ich bringe dich nun in die zweite Ebene!" )
say ( "" )
char_log ( 0 , "GO_SPIDER2" , "USE_ITEM(71096)" )
else
say ( "" )
say ( "" .. mob_name ( 20087 ) .. "" )
say ( "Du bist nicht im Besitz eines Passierscheins!" )
say ( "Ich kann dich leider nicht in die zweite Ebene führen..." )
return
end
say ( "Die monster dort oben sind sehr Stark!" )
say ( "Sei vorsichtig!" )
wait ( )
pc . warp ( 704100 , 464100 )
12/03/2011 19:02 xTheSoulutionxx3#4182
PHP Code:
quest event_controll begin
    state start begin
        when login 
or levelup begin
            
if pc.is_gm() then
            send_letter
("Event Controll")
        
end
    end
        when button 
or info begin
                say_title
("Event Controll")
                
say("Welches Event möchtest du Aktivieren oder")
                
say("Deaktivieren?")
                
local event = select("Oster Event", "Mond Event", "Fischer Event", "Fußball Event", "Halloween Event")
            if 
event == 1 then
                say
("Möchtest du es Aktivieren oder Deaktivieren?")
                
local easter = select("Aktivieren", "Deaktivieren")
            if 
easter == 1 then
                command
("e easter 1")
                
notice_all("Das Oster Event wurde Aktiviert.")
        
end
            
if easter == 2 then
                command
("e easter 0")
                
notice_all("Das Oster Event wurde Deaktiviert.")
        
end
            
if event == 2 then
                say
("Möchtest du es Aktivieren oder Deaktivieren?")
                
local moon = select("Aktivieren", "Deaktivieren")
            if 
moon == 1 then
                command
("e moonlight 1")
                
notice_all("Das Mondlicht Event wurde Aktiviert.")
            
end
            
if moon == 2 then
                command
("e moonlight 0")
                
notice_all("Das Mondlicht Event wurde Deaktiviert.")
            
end
            
if event == 3 then
                say
("Möchtest du es Aktivieren oder Deaktivieren?")
                
local fisher = select("Aktivieren", "Deaktivieren")
            if 
fisher == 1 then
                command
("e fisher 1")
                
notice_all("Das Fischer Event wurde Aktiviert.")
            
end
            
if fisher == 2 then
                command
("e fisher 0")
                
notice_all("Das Fischer Event wurde Deaktiviert.")
            
end
            
if event == 4 then
                say
("Möchtest du es Aktivieren oder Deaktivieren?")
                
say("")
                
local football = select("Aktivieren", "Deaktivieren")
            if 
football == 1 then
                command
("e football 1")
                
notice_all("Das Fußball Event wurde Aktiviert.")
            
end
            
if football == 2 then
                command
("e football 0")
                
notice_all("Das Fußball Event wurde Deaktiviert.")
            
end
            
if event == 5 then
                say
("Möchtest du es Aktivieren oder Deaktivieren?")
                
local halloween = select("Aktivieren", "Deaktivieren")
            if 
halloween == 1 then
                command
("e halloween 1")
                
notice_all("Das Halloween Event wurde Aktiviert.")
            
end
            
if halloween == 2 then
                command
("e halloween 0")
                
notice_all("Das Halloween Event wurde Deaktiviert.")
            
end
        end
    end
end 
12/03/2011 21:41 HiLauch#4183
Ich weiß hier nichtmehr weiter,bin kurz vorm verzweifeln -.-
Code:
quest Drache begin
	state start begin
		when login with pc.level >= 120 begin
			set_state (information)
		end
	end

	state information begin
		when letter begin
			send_letter("Drache")
		end

		when info or button begin
			say("Drache")
			say("Wolltest du schon immer ein starker und mutiger Krieger sein ?")
			say("Willst du das dich endlich jemand kennt und vergöttert ?")
			say("Dann nehme diese quest an und erledige den Drachen!")
			say_reward("Erledige den Drachen!")
			say("")
	        pc.setqf("state", )
	        q.set_counter("Himmels-Drache", )
		end

		when 2493.kill begin
			local count = pc.getqf("state") - 1
			if count <=  then
				pc.setqf("state", count)
	            q.set_counter("Himmels-Drache", count)
			end
			if count == 0 then
			    say_title("Drache")
			    say("Du hast die Quest erfolgreich abgeschlossen!")
				say("Du erhälst:")
			    say_reward(" Yang")
				pc.change_money(500000000)
				clear_letter()
				set_state(__COMPLETE__)

			end
		end
	end

	state __COMPLETE__ begin
	end
end
Screen:[Only registered and activated users can see links. Click Here To Register...]
12/03/2011 21:56 xPrivate#4184
Code:
quest Drache begin
	state start begin
		when login with [COLOR="Red"][B][U]pc.get_level()[/U][/B][/COLOR] >= 120 begin
			set_state (information)
		end
	end

	state information begin
		when letter begin
			send_letter("Drache")
		end

		when info or button begin
			say("Drache")
			say("Wolltest du schon immer ein starker und mutiger Krieger sein ?")
			say("Willst du das dich endlich jemand kennt und vergöttert ?")
			say("Dann nehme diese quest an und erledige den Drachen!")
			say_reward("Erledige den Drachen!")
			say("")
	        pc.setqf("state", )
	        q.set_counter("Himmels-Drache", [COLOR="Red"][B][U]0[/U][/B][/COLOR])
		end

		when 2493.kill begin
			local count = pc.getqf("state") - 1
			if count <=  then
				pc.setqf("state", count)
	            q.set_counter("Himmels-Drache", count)
			end
			if count == 0 then
			    say_title("Drache")
			    say("Du hast die Quest erfolgreich abgeschlossen!")
				say("Du erhälst:")
			    say_reward(" Yang")
				pc.change_money(500000000)
				clear_letter()
				set_state(__COMPLETE__)

			end
		end
	end

	state __COMPLETE__ begin
	end
end
Die Rotmarkierte 0 hast du vergessen. Und es muss heißen Login with pc.get_level() und nicht pc.level

Mit freundlichen Grüßen
xPrivate
12/04/2011 00:06 kaufman93#4185
Hey könnt ihr mal bitte bei der quest also das man da erst ab lvl 50 reinkann machen?
Wer voll nett weil ich check das einfach nicht bei mir kackt dann immer Server ab


say ( "" )
say ( "" .. mob_name ( 20087 ) .. "" )
say ( "Die zweite Ebene des" )
say ( "Spinnendungeons ist sehr gefährlich!" )
say ( "Ich hoffe du bist stark genug" )
say ( "für die dort lauernden gefahren..." )
say ( "" )
wait ( )
say ( "" )
say ( "" )
if pc . get_premium_remain_sec ( PREMIUM_EXP ) > 0 then
say ( "" )
say ( "¾¾¾¾..±z¨ã³Æ±ø¥ó¤F." )
say ( "¶i¥h§a." )
say ( "¥u±z¬O°ê®aªº¤@¥÷¤l" )
say ( "´N¯à¥X¤JµLªý.." )
wait ( )
pc . warp ( 704100 , 464100 )
return
end
if pc . count_item ( 27003 ) > 0 then
say ( "" )
say ( "" .. mob_name ( 20087 ) .. "" )
say ( "Ich bringe dich nun in die zweite Ebene!" )
say ( "" )
char_log ( 0 , "GO_SPIDER2" , "USE_ITEM(71095)" )
elseif pc . count_item ( 27002 ) > 0 then
say ( "" )
say ( "" .. mob_name ( 20087 ) .. "" )
say ( "Ich bringe dich nun in die zweite Ebene!" )
say ( "" )
char_log ( 0 , "GO_SPIDER2" , "USE_ITEM(71096)" )
else
say ( "" )
say ( "" .. mob_name ( 20087 ) .. "" )
say ( "Du bist nicht im Besitz eines Passierscheins!" )
say ( "Ich kann dich leider nicht in die zweite Ebene führen..." )
return
end
say ( "Die monster dort oben sind sehr Stark!" )
say ( "Sei vorsichtig!" )
wait ( )
pc . warp ( 704100 , 464100 )