[SERVICE] Die Questkontrolle

02/15/2013 16:26 ©by Noa#7621
Quote:
Originally Posted by diechecker View Post
Hey,
Hoffe ihr könnt mir helfen:)
PHP Code:
quest Warpring begin
    state start begin
        when 70007.
use begin 
            say_title
("Warpring")
            
say("")
            
say("In welches gebiet möchtest du?")
            
local s select("Joan","Pyungmoo","Yongan","Spinnendungeon2","Farmmap","Highlvlmap1","Highlvlmap2","Schließen")
                if 
s==1 then
                    pc
.warp(55700157900)
                
end
                
if s==2 then
                    pc
.warp(969600278400)
                
end
                
if s==3 then
                    pc
.warp(469300964200)
                
end
                
if s==4 then
                    pc
.warp(665600435200)
                
end
                
if s==5 then
                    pc
.warp(832000)
                
end
                
if s==6 then
                    pc
.warp(01203200)
                
end
                
if s==7 then
                    pc
.warp(256000665600)
                
end
                
if s==8 then
                    
return
                
end
            end
        end
    end
end 
Wen ich die Quest reloade kommt immer der Fehler:
must start with "quest"
Warpring.quest:35 Error occured on compile Warpring.quest
Obwohl sie ja mit quest Warpring beginnt -.-
Hoffe mal ihr könnt mir helfen
PHP Code:
quest Warpring begin
    state start begin
        when 70007.
use begin 
            say_title
("Warpring")
            
say("")
            
say("In welches gebiet möchtest du?")
            
local s select("Joan","Pyungmoo","Yongan","Spinnendungeon2","Farmmap","Highlvlmap1","Highlvlmap2","Schließen")
            
local port={{969600278400},
                {
469300964200},
                {
665600435200},
                {
832000},
                {
01203200},
                {
256000665600}
                }
            for 
ind,co in next,port do
                if 
ind==s then
                    pc
.warp(co[1],co[2])
                
end
            end
            
if s==8 then return end
        end
    end
end 
es gibt noch eine andere möglichkeit, so ähnlich wie die von nova aber hab in mom wenig zeit, mache ich i-wann mal
€. bin mir in mom nicht sicher ob es funktioniert, musst du mal testen

Quote:
Originally Posted by [SA]Con View Post
Weis einer was an der Funktion falsch ist?

PHP Code:
local actual_pw mysql_query("SELECT * FROM account.account WHERE account.password")
                
local actual_pw input()
                if 
actual_pw == TRUE then
                    say_title
("Passwort ändern")
                    
say("ACHTUNG: Dein neues Passwort muss mindestens")
                    
say("8 - Zeichen lang sein!")
                    
say("ACHTUNG: Verwende nur: 0-9 & A-Z")
                    
new_password input()
                    
account.set_pw(""..new_password.."")
                    
say_title("Passwort ändern")
                    
say("Das Passwort wurde erfolgreich")
                    
say("auf: "..new_password.." geändert.")
                    
say("Bitte logge dich erneut ein.")
                else
                    
say("Falsch"
Ich meine die mysql_query Funtkion, wer die Quest versteht, weis was mein Problem ist. :)

Danke schon mal :)
PHP Code:
v1 mit mijago's questlib: local actual_pw = mysql_query("SELECT password FROM account.account WHERE account_id='"..pc.get_accountid().."';")
ohne
local actual_pw = mysql_query("SELECT password FROM account.account WHERE account_id=(SELECT account_id FROM player.player WHERE name='"..pc.get_name().."';")
die Abfrage
if actual_pw[1][1]== nil then
    say("du hast kein passwort")
    return
end
passwort ändern macht man mit mysql update 
02/15/2013 17:19 [SA]Con#7622
Quote:
Originally Posted by ©by Noa View Post
PHP Code:
quest Warpring begin
    state start begin
        when 70007.
use begin 
            say_title
("Warpring")
            
say("")
            
say("In welches gebiet möchtest du?")
            
local s select("Joan","Pyungmoo","Yongan","Spinnendungeon2","Farmmap","Highlvlmap1","Highlvlmap2","Schließen")
            
local port={{969600278400},
                {
469300964200},
                {
665600435200},
                {
832000},
                {
01203200},
                {
256000665600}
                }
            for 
ind,co in next,port do
                if 
ind==s then
                    pc
.warp(co[1],co[2])
                
end
            end
            
if s==8 then return end
        end
    end
end 
es gibt noch eine andere möglichkeit, so ähnlich wie die von nova aber hab in mom wenig zeit, mache ich i-wann mal
€. bin mir in mom nicht sicher ob es funktioniert, musst du mal testen


PHP Code:
v1 mit mijago's questlib: local actual_pw = mysql_query("SELECT password FROM account.account WHERE account_id='"..pc.get_accountid().."';")
ohne
local actual_pw = mysql_query("SELECT password FROM account.account WHERE account_id=(SELECT account_id FROM player.player WHERE name='"..pc.get_name().."';")
die Abfrage
if actual_pw[1][1]== nil then
    say("du hast kein passwort")
    return
end
passwort ändern macht man mit mysql update 
Jetzt schließt sich die Quest sofort. -.-
02/16/2013 02:33 Shindy™#7623
PHP Code:
quest vipen begin
    state start begin
        when 30000.chat
."VIP-Shop" with pc.count_item(90005) == 1 begin
            npc
.open_shop(44)
        
end
    end
end 


Was stimmt an der nicht, Ich will ein Npc wo man nur mit einem bestimmtem Item öffnen kann also z.B man braucht das item 90005 um den Shop 44 auf dem Npc 30000 zu Öffnen aber es Funktioniert nicht Help.
02/16/2013 12:50 x_Core_x#7624
Quote:
Originally Posted by SyMpOhNiE View Post
PHP Code:
quest vipen begin
    state start begin
        when 30000.chat
."VIP-Shop" with pc.count_item(90005) == 1 begin
            npc
.open_shop(44)
        
end
    end
end 


Was stimmt an der nicht, Ich will ein Npc wo man nur mit einem bestimmtem Item öffnen kann also z.B man braucht das item 90005 um den Shop 44 auf dem Npc 30000 zu Öffnen aber es Funktioniert nicht Help.
was kommt für ein fehler? hast du on-click auf 1?
02/16/2013 12:51 [SA]Con#7625
Quote:
Originally Posted by SyMpOhNiE View Post
PHP Code:
quest vipen begin
    state start begin
        when 30000.chat
."VIP-Shop" with pc.count_item(90005) == 1 begin
            npc
.open_shop(44)
        
end
    end
end 


Was stimmt an der nicht, Ich will ein Npc wo man nur mit einem bestimmtem Item öffnen kann also z.B man braucht das item 90005 um den Shop 44 auf dem Npc 30000 zu Öffnen aber es Funktioniert nicht Help.

Habe hier mal 2 Varianten, beide sollten gehen.

Variante 1:
PHP Code:
quest vipen begin
    state start begin
        when 30000.take with item
.vnum == 90005 begin
            npc
.open_shop(44)
        
end
    end
end 

Variante 2:
PHP Code:
quest vipen begin
    state start begin
        when 30000.chat
."VIP-Shop" begin
            say_title
("VIP-Shop")
            
say("Mich kannst du nur mit einem")
            
say("bestimmtem Item öffnen.")
            
say("Um mich zu öffnen brauche ich von dir")
            
say("ITEMNAME.")
            
local item=select("Shop öffnen""Abbrechen")
            if 
item==2 then
                
return
            elseif 
item==1 then
                
if pc.count_item("90005") == 1 then
                    npc
.open_shop(44)
                else
                    
say("Du bist nicht im besitz von ITEMNAME.")
                
end
            end
        end
    end
end 
02/16/2013 14:08 Shindy™#7626
Quote:
Originally Posted by [SA]Con View Post
Habe hier mal 2 Varianten, beide sollten gehen.

Variante 1:
PHP Code:
quest vipen begin
    state start begin
        when 30000.take with item
.vnum == 90005 begin
            npc
.open_shop(44)
        
end
    end
end 

Variante 2:
PHP Code:
quest vipen begin
    state start begin
        when 30000.chat
."VIP-Shop" begin
            say_title
("VIP-Shop")
            
say("Mich kannst du nur mit einem")
            
say("bestimmtem Item öffnen.")
            
say("Um mich zu öffnen brauche ich von dir")
            
say("ITEMNAME.")
            
local item=select("Shop öffnen""Abbrechen")
            if 
item==2 then
                
return
            elseif 
item==1 then
                
if pc.count_item("90005") == 1 then
                    npc
.open_shop(44)
                else
                    
say("Du bist nicht im besitz von ITEMNAME.")
                
end
            end
        end
    end
end 

Sry mussten nur one_click auf 2 machen es Funkt alles Danke con :)
02/16/2013 14:15 [SA]Con#7627
Quote:
Originally Posted by SyMpOhNiE View Post
Es kommt immer noch keine Anfrage, ich kann auf den Shop draufklicken & der Npc öffnet sich...
Ich habe beide Quests gerade bei mir getestet, und sie funktionieren genauso wie der Quest Ablauf ist. Hast du auch den QC ausgeführt?
02/16/2013 14:23 HenK™#7628
Warum bekomme ich bei dieser Quest Ingame nicht die Attribute und Items?

PHP Code:
quest lvl_nachricht begin
    state start begin
        when levelup begin
            
if pc.get_level() == 35 then
                notice_all
("".. pc.get_name() .." hat gerade")
                
notice_all("Level 35 erreicht!")
                
notice_all("Er/Sie erhaelt 5% stark gegen Monster")
            elseif 
pc.get_level() == 50 then
                notice_all
("".. pc.get_name() .." hat gerade")
                
notice_all("Level 50 erreicht!")
                
notice_all("Er/Sie erhaelt 50 Verteidigungspunkte")
            elseif 
pc.get_level() == 75 then
                notice_all
("".. pc.get_name() .." hat gerade")
                
notice_all("Level 75 erreicht!")
                
notice_all("Er/Sie erhaelt 50 Angriffspunkte")
            elseif 
pc.get_level() == 90 then
                notice_all
("".. pc.get_name() .." hat gerade")
                
notice_all("Level 90 erreicht!")
                
notice_all("Glueckwunsch!")
                
notice_all("Gratuliert ihm!")
                
notice_all("Fuer seine/ihre harte Arbeit hat")
                
notice_all("Er/Sie Permanent 1500tp bekommen!!")
            
local klasse pc.get_job
            
if klasse == 0 then
                affect
.add_collect(apply.ATTBONUS_MONSTER2060*60*24*7)
                
pc.give_item250134 ,15 )
            elseif 
klasse == 1 then
                affect
.add_collect(POINT_DEF_BONUS5060*60*24*7)
                
pc.give_item250134 ,25 )
            elseif 
klasse == 2 then
                affect
.add_collect(POINT_ATT_BONUS5060*60*24*365*60)
                
pc.give_item270005 ,)
            elseif 
klasse == 3 then
                affect
.add_collect(apply.MAX_HP150060*60*24*365*60)
                
pc.give_item271123 ,)
                
pc.give_item271129 ,)
            
end
            end
        end
    end 
end 
02/16/2013 14:47 ForumExperte#7629
Warum geht diese GM-Item Quest nicht?

02/17/2013 02:07 HeroOfMetin#7630
Hallo also mein Problem mit diesem quest ist und zwar
Wenn ich 10 metins habe und 1 kille und ich danach Rlg oder Porte und ich den quest wieder starte will er von mir wieder 10 metins haben obwohl ich 1 schon gekillt habe
da ist der quest

Code:
quest pvm begin
	state start begin
		when login or levelup with pc.level >= 40 begin
			set_state(information)
		end
	end

	state information begin
		when letter begin
			send_letter("Metin Auftrag 1 Level 40")
		end

		when info or button begin
			say_title("Metinkill Auftrag1")
			say("Hallo Spieler!")
			say("Überall spawnen diese Metin steine. Unsere")
			say("Krieger sind alle beim versuch sie zu")
			say("töten gefallen. Wir hoffen auf")
			say("deine Hilfe. Bitte befreie uns von von diesem")
			say("Unheil, damit wir wieder in Frieden leben können.")
			say("Bitte hilf uns:")
			say_reward("Töte 45 Metin des Schattens.")
			say_reward("Du findest sie in Orktal.")
			say_reward("Wenn du es schaffst, erwartet dich eine Belohung!")
			say("")
	        pc.setqf("state", 45)
	        q.set_counter("Metin des Schattens", 45)
		end

		when 8009.kill begin
			local count = pc.getqf("state") - 1
			if count <= 45 then
				pc.setqf("state", count)
	            q.set_counter("Metin des Schattens", count)
			end
			if count == 0 then
			    say_title("Metinkill Auftrag Level 1")
			    say("Gut gemacht.")
			    say("Hier deine Belohung.")
				say_reward("500.000 Yang")
			    say_reward("Anfängertruhe")
				pc.change_money(500000)
				pc.give_item2(50011, 2)
				pc.give_item2(27987, 2)
				clear_letter()
			end
		end
	end
	state __COMPLETE__ begin
	end
end
02/17/2013 13:53 Valnar1996#7631
huhu
ich habe folgendes problem: quest funktiert aber die 2000 tp bekommt man nicht

local priv = select("2000 Trefferpunkte","8 auf jeden Status (Vit,Int,Str,Dex)")

if priv == 1 then
affect.add_collect(1,2000,60*60*24*365*60)
clear_letter()
set_quest_state("kill9", "run")
set_state(__COMPLETE__)
else
affect.add_collect(3,8,60*60*24*365*60)
affect.add_collect(4,8,60*60*24*365*60)
affect.add_collect(5,8,60*60*24*365*60)
affect.add_collect(6,8,60*60*24*365*60)
clear_letter()
set_quest_state("kill9", "run")
set_state(__COMPLETE__)
end

affect.add_collect = Bonus
1 = TP
2000 = ANzahl
60*60*24*365*60 = Zeit
02/17/2013 13:56 x_Core_x#7632
Quote:
Originally Posted by Valnar1996 View Post
huhu
ich habe folgendes problem: quest funktiert aber die 2000 tp bekommt man nicht

local priv = select("2000 Trefferpunkte","8 auf jeden Status (Vit,Int,Str,Dex)")

if priv == 1 then
affect.add_collect(1,2000,60*60*24*365*60)
clear_letter()
set_quest_state("kill9", "run")
set_state(__COMPLETE__)
else
affect.add_collect(3,8,60*60*24*365*60)
affect.add_collect(4,8,60*60*24*365*60)
affect.add_collect(5,8,60*60*24*365*60)
affect.add_collect(6,8,60*60*24*365*60)
clear_letter()
set_quest_state("kill9", "run")
set_state(__COMPLETE__)
end
affect.add_collect = Bonus
1 = TP
2000 = ANzahl
60*60*24*365*60 = Zeit
affect.add_collect
schreib mal die ganze quest rein als php-code

€:wenn es nur am Tp liegt versuch die spalte mals so:
PHP Code:
affect.add_collect(apply.MAX_HP200060*60*24*365*60
€: Für Php-code musst du einfach auf erweitert und dann oben in der auswahlliste auf php-code
02/17/2013 14:00 Valnar1996#7633
habs nochmal editiert^^ damits übersichtlicher ist



kein plan wie ich das mache :S :rtfm:

DAAAAANKE test ich gleich^^
02/17/2013 14:09 dstyl#7634
Es handelt sich um folgende Quest:

PHP Code:
quest kill8 begin
    state start begin
    end    
    
    state run begin
        when letter 
or login or levelup begin
            
if pc.get_level() >= 92 then
                send_letter
("Auftrag 8")
            
end
        end
    
        when button 
or info begin
            say_title
("Auftrag 8")
            
say("Du musst 10 Oberorks töten")
            
set_state(kill)
            
pc.setqf("count",0)
        
end
    end    
    state kill begin
        when letter begin
            send_letter
("Oberorks töten")
        
end    
        when button 
or info begin
            say_title
("Auftrag 8")
            
say("Du hast schon "..pc.getqf("count").." von 10 getötet.")
        
end        
        when kill begin
            
if npc.get_race() == 691 then
                pc
.setqf("count"pc.getqf("count")+1)
            
end
            
if pc.getqf("count") == 10 then
                send_letter
("Geschafft")
                
set_state(give_priv)
            
end
        end
    end    
    
    state give_priv begin
        when login 
or levelup or letter or button or info begin
            say_title
("Belohnung auswählen")
                
say("Entweder:"
                
say_reward("2000 Trefferpunkte")
                
say("oder")
                
say_reward("8 auf jeden Status (Vit,Int,Str,Dex)")
                
local priv select("2000 Trefferpunkte","8 auf jeden Status (Vit,Int,Str,Dex)")
                
                if 
priv == 1 then
                    affect
.add_collect(1,2000,60*60*24*365*60)
                    
clear_letter()
                    
set_quest_state("kill9""run")
                    
set_state(__COMPLETE__)        
                else
                    
affect.add_collect(3,8,60*60*24*365*60)
                    
affect.add_collect(4,8,60*60*24*365*60)
                    
affect.add_collect(5,8,60*60*24*365*60)
                    
affect.add_collect(6,8,60*60*24*365*60)
                    
clear_letter()
                    
set_quest_state("kill9""run")
                    
set_state(__COMPLETE__)    
                
end
        end    
    end
    state __COMPLETE__ begin
    end    
end 
Das Problem liegt da, das wenn man die Quest vollendet hat & dann die 2000 TP auswählt, diese kurz erhält jedoch nach einem Relog o.ä. wieder weg ist.
02/17/2013 14:44 x_Core_x#7635
Quote:
Originally Posted by dstyl View Post
Es handelt sich um folgende Quest:

PHP Code:
quest kill8 begin
    state start begin
    end    
    
    state run begin
        when letter 
or login or levelup begin
            
if pc.get_level() >= 92 then
                send_letter
("Auftrag 8")
            
end
        end
    
        when button 
or info begin
            say_title
("Auftrag 8")
            
say("Du musst 10 Oberorks töten")
            
set_state(kill)
            
pc.setqf("count",0)
        
end
    end    
    state kill begin
        when letter begin
            send_letter
("Oberorks töten")
        
end    
        when button 
or info begin
            say_title
("Auftrag 8")
            
say("Du hast schon "..pc.getqf("count").." von 10 getötet.")
        
end        
        when kill begin
            
if npc.get_race() == 691 then
                pc
.setqf("count"pc.getqf("count")+1)
            
end
            
if pc.getqf("count") == 10 then
                send_letter
("Geschafft")
                
set_state(give_priv)
            
end
        end
    end    
    
    state give_priv begin
        when login 
or levelup or letter or button or info begin
            say_title
("Belohnung auswählen")
                
say("Entweder:"
                
say_reward("2000 Trefferpunkte")
                
say("oder")
                
say_reward("8 auf jeden Status (Vit,Int,Str,Dex)")
                
local priv select("2000 Trefferpunkte","8 auf jeden Status (Vit,Int,Str,Dex)")
                
                if 
priv == 1 then
                    affect
.add_collect(1,2000,60*60*24*365*60)
                    
clear_letter()
                    
set_quest_state("kill9""run")
                    
set_state(__COMPLETE__)        
                else
                    
affect.add_collect(3,8,60*60*24*365*60)
                    
affect.add_collect(4,8,60*60*24*365*60)
                    
affect.add_collect(5,8,60*60*24*365*60)
                    
affect.add_collect(6,8,60*60*24*365*60)
                    
clear_letter()
                    
set_quest_state("kill9""run")
                    
set_state(__COMPLETE__)    
                
end
        end    
    end
    state __COMPLETE__ begin
    end    
end 
Das Problem liegt da, das wenn man die Quest vollendet hat & dann die 2000 TP auswählt, diese kurz erhält jedoch nach einem Relog o.ä. wieder weg ist.

Mach es mit den Bonis so:
PHP Code:
affect.add_collect(apply.MAX_HP200060*60*24*365*60