[SERVICE] Die Questkontrolle

07/29/2012 10:52 plechito#6406
Quote:
Originally Posted by Kriegergeist^^
Code:
quest lo2olympiada begin
	state start begin
		when 20002.take with item.vnum == 50153 begin
			say_title("Ah-Yu")
			say("Ahoj bojovníku,")
			say("našla jsem cestu do")
			say("dávno ztraceného města.")
			say("V tomot krásném městě můžeš ")
			say("vyhrát spoustu Yangů.")
			say("Chceš tam tedy vstoupit?")
			say("")
		local s=select("První mapa", "Druhá mapa", "Třetí mapa", "Ne")
		if s==1 then
			pc.warp(2401000,1613900)
        	if pc.count_item (22010) >= 1 then 
        		pc.remove_item(22010, 200)
      			end 
		elseif s==2 then
			pc.warp(2401000,1613900)
        	if pc.count_item (22010) >= 1 then 
         		pc.remove_item(22010, 200)
			end 
		elseif s==3 then
			pc.warp(2401000,1613900)
		if pc.count_item (22010) >= 1 then 
			pc.remove_item(22010, 200)
				end
			end
		end

		when plechito_konec.timer begin
			pc.warp(1805000, 905000)
			end

		when login with pc.get_map_index() == 91 begin
			timer("plechito_konec", 900) 
		end

		when logout with pc.get_map_index() == 91 begin
		pc.warp(1805000, 905000)
		end
	end
end
Thanks :)
07/29/2012 12:14 Kevke1996#6407
Quote:
Originally Posted by Mijago View Post
Lösche mal die Nullen hinter 9999 9999
d.new_jump_all Funktioniert nach folgendem Schema:
PHP Code:
d.new_jump_all(MID, X,Y) 
wobei X sich so zusammensetzt:
Kooridinate der Map (bei DT zB 2048) plus den lokalen X-Wert . (Und das OHNE die doppelnullen!)
Bei y Das selbe, nur mit den Y-Werten.


lg Mijago
Wenn die Kooridinaten nicht stimmen, will der Metin2 Core oft auch nicht porten :D
geändert aber klappt nicht
ich werde nach dem drachen nicht raus geportet
07/29/2012 13:37 Kriegergeist^^#6408
versuch es mal so
HTML Code:
quest hallenrun begin  
    state start begin  
        when 30101.use begin  
            pc.warp(83200,0)  
        end  
        when kill with pc.get_map_index() == 200 begin 
        if npc.race == 2291 then
            timer("hallenrun_1", 3)
           end  
        end
        when hallenrun_1.timer begin
            d.new_jump_all(191, 9999 , 9999)  
            d.notice("Willkommen in der Halle der Hexe!")  
            d.notice("zerstört alle Metin Ma-An's!")  
            d.regen_file("data/dungeon/hallenrun_regen.txt")
        end  
        when 8027.kill with pc.get_map_index() == 191 begin 
        local a =d.getf("count") + 1  
            d.setf("count", a)  
        if a == 15 then  
            d.notice("Killt nun den Anführer!")  
            d.spawn_mob(1192, 121, 134)  
        end  
    end  
        when 1192.kill with pc.get_map_index() == 191 begin 
            d.notice("Ihr habt die Herausforderungen der Halle der Hexe erfolgreich beendet!")  
            d.notice("Ihr könnt euch nun eine Belohnung bei Seon-Hae abhohlen!")  
            d.kill_all()  
            d.spawn_mob(20095, 121, 134)  
        end  
        when 20095.chat."Belohnung" with pc.in_dungeon begin  
            say_title("Seon-Hae:")  
            say("Du hast es geschafft:")  
            say("Du hast den Wasserdrachen,:")  
            say("den Roten Drachen und:")  
            say("Die Eishexe besiegt.:")  
            say("Du bekommst folgendes:")  
            say("50.000.000Yang")  
            say("5.000 Rangpunkte")  
                pc.change_money(50000000)  
            pc.change_alignment(5000)  
            wait()  
            warp_to_village()  
        end  
    end  
end
Wenn es nicht klappt, habe ich eine andere lösung, weiß bloß nicht ob die auch klappt

MfG
Kriegergeist^^
07/29/2012 14:15 Stamm1994#6409
PHP Code:
quest vipmap begin
    state start begin
        when 60001.
use begin
            say_title
("VIP-Farmmap Zutritt (1 Stunde)")
            
say("VIP-Farmmap zutritt")
            
say("Diese Karte ist sehr selten sie bringt dich")
            
say("auf die VIP farmmap aber nur für 1 Stunde")
            
say("Willst du wirklich dorthin?")
            
local s = select("Ja!", "..Nein")
            if 
s == 1 then
                pc
.setqf("timeleft", 60) -- hier die Stunde/Wert eintragen
                pc
.warp(8483300, 10000)
            else
                return
            
end
        end
        
        when login begin
            
if pc.get_map_index() == FARMMAPINDEX then
                pc
.setqf("time", get_time())
                
timer("checktime", pc.getqf("timeleft"))
            else
                
pc.setqf("timeleft", 60) -- hier selben(!) Wert wie oben eintragen
            end
        end
        
        when checktime
.timer begin
            warp_to_village
()
        
end
        
        when logout with pc
.get_map_index() == FARMMAPINDEX begin
            pc
.setqf("timeleft", 60 - (get_time() - pc.getqf("time"))) -- hier selben(!) Wert wie oben eintragen, also die 60 editieren
        end
    end
end 
ich werde nach den 60 sekunden nicht zurück teleportiert :X
07/29/2012 14:28 Kevke1996#6410
Danke damit werde ich rausgeportet wenn ich den drachen getötet habe.

Aber ich werde immer in einen schwarzen teil der neuen map teleportiert.

wenn ich mich aber mit /warp 9999 9999 auf die map porte geht es ja auch.

ich habe an der stelle wo ich dann hingeportet werden sollte mal /state


gemacht und da standen dann andere Koordinaten 1012000 101700

die habe ich dann in der quest bei den 9999 9999 ersetzt aber ich werde

trotzdem noch in einen schwarzen teil der map teleportiert und kann mich da auch nicht bewegen
Quote:
Originally Posted by Kriegergeist^^ View Post
versuch es mal so
HTML Code:
quest hallenrun begin  
    state start begin  
        when 30101.use begin  
            pc.warp(83200,0)  
        end  
        when kill with pc.get_map_index() == 200 begin 
        if npc.race == 2291 then
            timer("hallenrun_1", 3)
           end  
        end
        when hallenrun_1.timer begin
            d.new_jump_all(191, 9999 , 9999)  
            d.notice("Willkommen in der Halle der Hexe!")  
            d.notice("zerstört alle Metin Ma-An's!")  
            d.regen_file("data/dungeon/hallenrun_regen.txt")
        end  
        when 8027.kill with pc.get_map_index() == 191 begin 
        local a =d.getf("count") + 1  
            d.setf("count", a)  
        if a == 15 then  
            d.notice("Killt nun den Anführer!")  
            d.spawn_mob(1192, 121, 134)  
        end  
    end  
        when 1192.kill with pc.get_map_index() == 191 begin 
            d.notice("Ihr habt die Herausforderungen der Halle der Hexe erfolgreich beendet!")  
            d.notice("Ihr könnt euch nun eine Belohnung bei Seon-Hae abhohlen!")  
            d.kill_all()  
            d.spawn_mob(20095, 121, 134)  
        end  
        when 20095.chat."Belohnung" with pc.in_dungeon begin  
            say_title("Seon-Hae:")  
            say("Du hast es geschafft:")  
            say("Du hast den Wasserdrachen,:")  
            say("den Roten Drachen und:")  
            say("Die Eishexe besiegt.:")  
            say("Du bekommst folgendes:")  
            say("50.000.000Yang")  
            say("5.000 Rangpunkte")  
                pc.change_money(50000000)  
            pc.change_alignment(5000)  
            wait()  
            warp_to_village()  
        end  
    end  
end
Wenn es nicht klappt, habe ich eine andere lösung, weiß bloß nicht ob die auch klappt

MfG
Kriegergeist^^
07/29/2012 14:54 Kriegergeist^^#6411
Versuch es mal mit den
HTML Code:
d.new_jump_all(191, 10120, 10164)
MfG
Kriegergeist^^
07/29/2012 15:15 Kevke1996#6412
Quote:
Originally Posted by Kriegergeist^^ View Post
Versuch es mal mit den
HTML Code:
d.new_jump_all(191, 10120, 10164)
MfG
Kriegergeist^^
geh nicht, immer noch das gleiche problem-.-
07/29/2012 17:48 Stamm1994#6413
PHP Code:
quest vipmap begin
    state start begin
        when 60001.
use begin
            say_title
("VIP-Farmmap Zutritt (1 Stunde)")
            
say("VIP-Farmmap zutritt")
            
say("Diese Karte ist sehr selten sie bringt dich")
            
say("auf die VIP farmmap aber nur für 1 Stunde")
            
say("Willst du wirklich dorthin?")
            
local s = select("Ja!", "..Nein")
            if 
s == 1 then
                pc
.setqf("timeleft", 60) -- hier die Stunde/Wert eintragen
                pc
.warp(8483300, 10000)
            else
                return
            
end
        end
        
        when login begin
            
if pc.get_map_index() == FARMMAPINDEX then
                pc
.setqf("time", get_time())
                
timer("checktime", pc.getqf("timeleft"))
            else
                
pc.setqf("timeleft", 60) -- hier selben(!) Wert wie oben eintragen
            end
        end
        
        when checktime
.timer begin
            warp_to_village
()
        
end
        
        when logout with pc
.get_map_index() == FARMMAPINDEX begin
            pc
.setqf("timeleft", 60 - (get_time() - pc.getqf("time"))) -- hier selben(!) Wert wie oben eintragen, also die 60 editieren
        end
    end
end 
ich werde nach den 60 sekunden nicht zurück teleportiert :X
07/29/2012 19:18 Sp0ngeb0b ist cool#6414
hmm habe keine Lust alles zu lesen...Stamm? Habe ich richtig verstanden? Du möchtest, dass der jeweilige Spieler nur eine bestimmte Zeit auf einer bestimmten Map verbringen darf? Wenn ja, habs mal etwas umgebastelt^^

PHP Code:
quest vipmap begin
    state start begin
        when 60001.
use begin
            say_title
("VIP-Farmmap Zutritt (1 Stunde)")
            
say("VIP-Farmmap zutritt")
            
say("Diese Karte ist sehr selten sie bringt dich")
            
say("auf die VIP farmmap aber nur für 1 Stunde")
            
say("Willst du wirklich dorthin?")
            
local s = select("Ja!", "..Nein")
            if 
s == 2 then return end
            pc
.setqf('login', pc.getqf('login')+60)
            
item.remove()
            
pc.warp(8483300, 10000)
        
end    
        when login with pc
.get_map_index() == *INDEX* begin  --*INDEX* durch mapindex ersetzen
            loop_timer
("zieh", 60)
        
end
        when zieh
.timer begin
            pc
.setqf('login', pc.getqf('login')-1)
            if 
pc.getqf('login') <= 0 then
                chat
('Die Zeit ist abgelaufen!')
                
warp_to_village()
            
end
        end    
        when logout with pc
.get_map_index() == *INDEX* begin --*INDEX* durch mapindex ersetzen
            pc
.setqf('login', pc.getqf('login')-1)
        
end
    end
end 
lg sponge

Ps: Derzeit wird man nach einer Stunde heraus teleportiert.
PHP Code:
loop_timer("zieh", 60) 
Die Zahl in den Klammern legt die Minuten fest ;)
07/29/2012 19:29 Stamm1994#6415
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
hmm habe keine Lust alles zu lesen...Stamm? Habe ich richtig verstanden? Du möchtest, dass der jeweilige Spieler nur eine bestimmte Zeit auf einer bestimmten Map verbringen darf? Wenn ja, habs mal etwas umgebastelt^^

PHP Code:
quest vipmap begin
    state start begin
        when 60001.
use begin
            say_title
("VIP-Farmmap Zutritt (1 Stunde)")
            
say("VIP-Farmmap zutritt")
            
say("Diese Karte ist sehr selten sie bringt dich")
            
say("auf die VIP farmmap aber nur für 1 Stunde")
            
say("Willst du wirklich dorthin?")
            
local s = select("Ja!", "..Nein")
            if 
s == 2 then return end
            pc
.setqf('login', pc.getqf('login')+60)
            
item.remove()
            
pc.warp(8483300, 10000)
        
end    
        when login with pc
.get_map_index() == *INDEX* begin  --*INDEX* durch mapindex ersetzen
            loop_timer
("zieh", 60)
        
end
        when zieh
.timer begin
            pc
.setqf('login', pc.getqf('login')-1)
            if 
pc.getqf('login') <= 0 then
                chat
('Die Zeit ist abgelaufen!')
                
warp_to_village()
            
end
        end    
        when logout with pc
.get_map_index() == *INDEX* begin --*INDEX* durch mapindex ersetzen
            pc
.setqf('login', pc.getqf('login')-1)
        
end
    end
end 
lg sponge

Ps: Derzeit wird man nach einer Stunde heraus teleportiert.
PHP Code:
loop_timer("zieh", 60) 
Die Zahl in den Klammern legt die Minuten fest ;)

danke klappt 1A muss dich leider verbessern
beim Timer die zahl in der Klammer legt nicht die Minuten fest sondern die Sekunden :)

aber danke funktioniert

weis jemand zufällig einen quest befehl um
einen Text mittig zu setzen?
da der text ja Standard links gesetzt wird
wo leider der rand hier Größér ist :(
hier mal ein Screen
[Only registered and activated users can see links. Click Here To Register...]
07/29/2012 19:47 Sp0ngeb0b ist cool#6416
Quote:
Originally Posted by Stamm1994 View Post
danke klappt 1A muss dich leider verbessern
beim Timer die zahl in der Klammer legt nicht die Minuten fest sondern die Sekunden :)
Ich meine nicht allgemein bei Timern, sondern in dem Fall...
Alle 60 Sekunden wird von den 60 Minuten, die man drauf sein darf, eine Min abgezogen. Dh. Wenn du in die Klammern des Timers statt 60 1 eingibst, bist du 60 Sekunden drauf & mit der 60 eine Stunde ;)

Ehm, mach Leertasten vor deinen Text ;)
07/29/2012 21:05 Tentos123#6417
Hey ihr Quester,

Könntet ihr eventuell so eine Quest machen?

mfg
07/29/2012 22:12 .BonG™#6418
PHP Code:
quest phoenix begin
    state start begin
        when 53001.
use begin
            
if pc.getqf("phoenix_fly") == 0 then
                local old_horse_name 
= horse.get_name() ;
                    if 
string.len(old_horse_name) == 0 then
                        say_title
("Feuerphönix-Siegel")
                        
say("Es ist ein Problem beim rufen des Feuerphönix")
                        
say("aufgetreten. Deine Haustiere haben noch nicht")
                        
say("einen Namen erhalten. Du solltest ihnen einen")
                        
say("Namen geben, bevor du solche mächtige Tiere")
                        
say("wie den Feuerphönix rufst. Dafür gibt es einen")
                        
say("ganz besonderen Gegenstand bei der Gemicht-")
                        
say("warenhändlerin zu einem günstigen Preis.")
                        return
                    
end
                chat
("Dein mächtiger Feuerphönix wurde gerufen!")
                
local your_horse_level = horse.get_level()
                
pc.setqf("horse_level_save", your_horse_level)
                
pc.setqf("phoenix_fly", 1)
                
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
                
affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)
                
affect.add_collect(apply.MAX_HP, 1000, 60*60*8)
                
horse.set_level("28")
                
horse.unsummon() horse.summon()
            else
                
chat("Dein Feuerphönix verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
                
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)   
                
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)                   
                
horse.unsummon()
                
pc.setqf("phoenix_fly", 0)
                
                
local horse_settings = pc.getqf("horse_level_save")
                
horse.set_level(horse_settings)
            
            
end
        end
        when logout 
or login with pc.getqf("phoenix_fly") == 1 begin
            
            pc
.setqf("phoenix_fly", 0)
                
            
local horse_settings = pc.getqf("horse_level_save")
            
horse.set_level(horse_settings)
            
            
chat("Dein Feuerphönix ging alleine fort!")
            
affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8)
            
affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8)   
            
affect.remove_collect(apply.MAX_HP, 1000, 60*60*8)  
        
end
    end
end 
eigendlich sollte ein Phönix kommen, da kommt aber mein Pferd :( was ist da falsch?
07/30/2012 02:12 Pаylasici#6419
Quote:
Originally Posted by .BonG™ View Post
eigendlich sollte ein Phönix kommen, da kommt aber mein Pferd :( was ist da falsch?
Hast du auch deine "GAME" Binary modifiziert?
07/30/2012 11:17 .BonG™#6420
Quote:
Originally Posted by Paylasici ™ View Post
Hast du auch deine "GAME" Binary modifiziert?
eine was modifiziert? ich habe grade 0 plan was du meinst sry.
kannst du mir erklären was ich genau modifizieren muss?