[SERVICE] Die Questkontrolle

05/16/2012 01:23 Shindy™#5731
Quote:
quest itemdelete begin
state start begin
when 20359.take with pc.get_level() > 80 and item.vnum != 11971 and item.vnum != 11972 and item.vnum != 11973 and item.vnum != 11974 and item.count >= 1 begin
local vnum = item.get_vnum()
say_title("Item Löscher:")
say("Willst du dieses Item löschen?")

local s = select("Ja", "Nein")

if s == 1 then

syschat("Dein Item wurde entfern")
pc.remove_item(vnum)
end
end
end
end

Die geht nicht Kp warum..>.<???? Help Pls
05/16/2012 14:16 black1112#5732
Quote:
Originally Posted by SyMpOhNiE View Post
Die geht nicht Kp warum..>.<???? Help Pls

Weiß zwar nicht wie man des einfügt kann es selbst fast nicht aber habe mich mal hier durch gelesen also:

Du musst noch machen if s == 2 then
return

oder so ähnlich ich hoffe du weißt was ich meine :D
05/16/2012 15:42 bl4ckd3v1l#5733
PHP Code:
quest horse_guard begin
    state start begin
    when 20349.chat
."Pferd steigern" begin
            say_title
("Stallbursche:")
            
say("")
            
say("Hallo!")
            
say("Bei mir kannst du dein Pferd steigern.")
            
say("Das Pferd zu steigern kostet dich 1kk pro Level.")
            
say("")
            
say_reward("Möchtest du dein Pferd steigern?")
            
say("")
                
            
local s select("Ja""Nein")
                
                if 
== 1 then
                    say_title
("Stallbursche:")
                    
say("")
                            if 
pc.money>=1000000 then
                            pc
.changemoney("-1000000")
                            
horse.unride()
                            
horse.advance()
                            
horse.ride()
                            
say("Dein Pferd hat nun Level "..(horse.get_level()).." erreicht.")
                            
say("")
                            elseif 
horse.get_level() >11 then
                            say
("Dein Pferd hat Level 11 erreicht.")
                            
say("Du kannst es nicht mehr steigern.")
                            
say("")
                            elseif 
pc.money<1000000 then
                            say
("Du hast nicht genug Yang um dein Pferd zu steigern.")
                            
say("")
                
end
                
elseif == 2 then
                    
return
        
end
    end
           when 20349.chat
."Reitshop" begin
        npc
.open_shop(11)
                 
say("Hier findest du alle Items für ein Pferd.")
    
end
        when 20349.chat
."Information" begin
            local s
=number(17)
            if 
1>=s then -- 14.29% (1/7)
                
say("Füttere dein Pferd")
                
say("regelmässig sonst")
                
say("stirbt es.")
            elseif 
2>=s then -- 14.29% (1/7)
                
say("Das Anfängerpferd")
                
say("ist sehr schnell erschöpft.")
                
say("Bleibe nicht auf seinem Rücken stehen.")
            elseif 
3>=s then -- 14.29% (1/7)
                
say("Um dein Pferd zu verbessern")
                
say("benötigst du 1kk Yang.")
                
say("Bringe das Yang zu mir")
                
say("und ich werde dein Pferd steigern.")
            elseif 
4>=s then -- 14.29% (1/7)
                
say("Wenn dein Pferd gestorben")
                
say("ist gibt es mehrere")
                
say("Kräuter von den")
                
say("Affenkönigen um")
                
say("sie Wiederzubeleben.")
            elseif 
5>=s then -- 14.29% (1/7)
                
say("Es gibt 9 verschiedene")
                
say("Pferde Aussehen.")
                
say("Ohne Gilde, mit Gilde und als Leader.")
            elseif 
6>=s then -- 14.29% (1/7)
                
say("Das Anfängerpferd")
                
say("isst gerne Heu.")
                
say("Das Kampfpferd")
                
say("isst gerne Karotten.")
                
say("Das Militärpferd")
                
say("isst gerne Roten Ginseng.")
            elseif 
7>=s then -- 14.29% (1/7)
                
say("Lese Handbuch Pferde Zähmen")
                
say("um dein Pferd schneller zu rufen.")
            
end
        end
    end
    state __COMPLETE__ begin
        when enter begin
            q
.done()
        
end
    end
end 
Eigentlich sollte man ab Level 11 sein Gaul nicht mehr steiger können aber man kann es trzdm, warum?
05/16/2012 19:00 Songoku54#5734
quest Bring mir die Orkzaehne begin
state start begin
when login or levelup with pc.get_level() >=30 begin
set_state(information)
end
end

state information begin
when letter begin
local v = find_npc_by_vnum(20084)
if v != 0 then
target.vid("__TARGET__", v, "Quest")
end
send_letter("Bring mir die Orkzähne")
end

when button or info begin
say_title("Bring mir die Orkzähne")
say("")
say("Bring mir 10 orkzaehne und du erhälst eine fette Belohnung ")
say("Du findest sie im Orktal bei den schwarzen Orks")
say("...")
say("....")
say(".....")
say("......")
say("")
end

when __TARGET__.target.click or
20084.chat."Quest" begin
target.delete("__TARGET__")
say("Biologe:")
--- l
say("..Ich suche diese ekelhaften, stinkenden Zaehne")
say("..Bring mir 10 stück !")
say("...")
say("....")
say(".....")
say(".....")
say("")
set_state(go_to_disciple)
pc.setqf("collect_count",0)
pc.setqf("drink_drug",0)
end
end

state go_to_disciple begin
when letter begin
send_letter("Auftrag von Biologe")

end
when button or info begin
say_title("Quest")
--- l
say("")
say("Biologe gab euch den Auftrag")
say("10 Orkzahn zu sammeln!")
say("Das Item bekommt ihr von Schwarzer Orks.")
say("Viel Glueck!")
say("")
say_item_vnum(30006)
say_reward(" Du hast".." "..pc.getqf("collect_count").." bis jetzt gesammelt!")
say("")
end

when 71035.use begin --°g´bÃĤô
if pc.getqf("drink_drug")==1 then
say("")
say("Bessere Droppchance!")
say("")

return
end
if pc.count_item(30006)==0 then
say("")
say("Du hast keine!")
say("Lauf los und besorg mir welche!")
say("")
return
end
item.remove()
pc.setqf("drink_drug",1)
end


when 636.kill begin
if pc.count_item(30006)<10-pc.getqf("collect_count") then
pc.give_item2(30006, 1)
end
end

when 20084.chat."Quest" with pc.count_item(30006) >0 begin
say("Einen Moment!")
--- l
say("Ich werde das Item")
say("schnell mal ueberpruefen.")
say("Hoffentlich klappt alles!")
say("")
pc.remove_item(30006, 1)
wait()

local pass_percent
if pc.getqf("drink_drug")==0 then
pass_percent=affect.add_collect(apply.ATT_SPEED, 10,60*60*24*365*60)
else
pass_percent=affect.add_collect(apply.ATT_SPEED, 10,60*60*24*365*60)
end

local s= number(1,100)
if s<= pass_percent then
if pc.getqf("collect_count")< 9 then --5*Ó¥H¤U
local index =pc.getqf("collect_count")+1
pc.setqf("collect_count",index) --¨ú±o¤@* +1
say("Biologe:")
say("Perfekt! Das Item ist in Ordnung")
say("Du hast bis jetzt ".." "..10-pc.getqf("collect_count").. " abgegeben!")
say("Bring mir die restlichen!")
say("")
pc.setqf("drink_drug",0) --ÃĤôªì©l¤Æ
return
end
say("Biologe:")
say("Yuhu! Du hast mir")
say("alles gebracht!")
say("Dafür werde ich dich wie versprochen")
say("belohnen!")
say("")
say_reward("Du bekommst ein Angriffstemp 10!")
say_reward("Du bekommst ein Name!")
say_reward("Du bekommst ein Name!")
say_reward("Du bekommst Anzahl Yang!")
say_reward("Du bekommst Anzahl Erfahrung!")
pc.setqf("collect_count",0)
pc.setqf("drink_drug",0)
clear_letter()
set_state(__complete)

affect.add_collect(apply.ATT_SPEED, 10, 60*60*24*365*60)
pc.give_item2(Value)
pc.give_item2(Value)
pc.change_money(Anzahl)
pc.give_exp2(Anzahl)
set_quest_state("levelup","run")


return
else
say("Biologe:")
say("Dieses Item ist von schlechter Qualität!")
say("Es kann nicht verwendet werden.")
say("Hole mir ein neues!")
say("")
pc.setqf("drink_drug",0) --ÃĤôªì©l¤Æ
return
end
end
end



state __complete begin
end
end




Bei mir ist folgendes Problem, ich bekomme IG keine Questrolle zum Quest annehmen. wenn ich :

cd /home/game/share/locale/germany/quest "enter"
pythin make.py

eingebe schreibt er nur :

quest doesn't have begin-end clause. (mir)
bio30.quest:1:error occured on compile bio30.quest
05/16/2012 21:22 hr4rjuku#5735
fehlen einige end´s

beende mal jedes when und if mit end
05/16/2012 21:30 metin2sozluk#5736
Hey guys I have a little question. Which form would work properly. First, second or none?

Hey Leute ich habe eine kleine Frage. Welches funktionieren würde. Ersten, zweiten oder keine?

PHP Code:
...
local hodor tonumber(input("")) 
...
pc.setqf("etwas"pc.getqf("etwas")+hodor

PHP Code:
...
local hodor tonumber(input("")) 
...
pc.setqf("etwas"pc.getqf("etwas")+"..hodor.."
05/16/2012 21:57 bl4ckd3v1l#5737
Quote:
Originally Posted by bl4ckd3v1l View Post
PHP Code:
quest horse_guard begin
    state start begin
    when 20349.chat
."Pferd steigern" begin
            say_title
("Stallbursche:")
            
say("")
            
say("Hallo!")
            
say("Bei mir kannst du dein Pferd steigern.")
            
say("Das Pferd zu steigern kostet dich 1kk pro Level.")
            
say("")
            
say_reward("Möchtest du dein Pferd steigern?")
            
say("")
                
            
local s select("Ja""Nein")
                
                if 
== 1 then
                    say_title
("Stallbursche:")
                    
say("")
                            if 
pc.money>=1000000 then
                            pc
.changemoney("-1000000")
                            
horse.unride()
                            
horse.advance()
                            
horse.ride()
                            
say("Dein Pferd hat nun Level "..(horse.get_level()).." erreicht.")
                            
say("")
                            elseif 
horse.get_level() >11 then
                            say
("Dein Pferd hat Level 11 erreicht.")
                            
say("Du kannst es nicht mehr steigern.")
                            
say("")
                            elseif 
pc.money<1000000 then
                            say
("Du hast nicht genug Yang um dein Pferd zu steigern.")
                            
say("")
                
end
                
elseif == 2 then
                    
return
        
end
    end
           when 20349.chat
."Reitshop" begin
        npc
.open_shop(11)
                 
say("Hier findest du alle Items für ein Pferd.")
    
end
        when 20349.chat
."Information" begin
            local s
=number(17)
            if 
1>=s then -- 14.29% (1/7)
                
say("Füttere dein Pferd")
                
say("regelmässig sonst")
                
say("stirbt es.")
            elseif 
2>=s then -- 14.29% (1/7)
                
say("Das Anfängerpferd")
                
say("ist sehr schnell erschöpft.")
                
say("Bleibe nicht auf seinem Rücken stehen.")
            elseif 
3>=s then -- 14.29% (1/7)
                
say("Um dein Pferd zu verbessern")
                
say("benötigst du 1kk Yang.")
                
say("Bringe das Yang zu mir")
                
say("und ich werde dein Pferd steigern.")
            elseif 
4>=s then -- 14.29% (1/7)
                
say("Wenn dein Pferd gestorben")
                
say("ist gibt es mehrere")
                
say("Kräuter von den")
                
say("Affenkönigen um")
                
say("sie Wiederzubeleben.")
            elseif 
5>=s then -- 14.29% (1/7)
                
say("Es gibt 9 verschiedene")
                
say("Pferde Aussehen.")
                
say("Ohne Gilde, mit Gilde und als Leader.")
            elseif 
6>=s then -- 14.29% (1/7)
                
say("Das Anfängerpferd")
                
say("isst gerne Heu.")
                
say("Das Kampfpferd")
                
say("isst gerne Karotten.")
                
say("Das Militärpferd")
                
say("isst gerne Roten Ginseng.")
            elseif 
7>=s then -- 14.29% (1/7)
                
say("Lese Handbuch Pferde Zähmen")
                
say("um dein Pferd schneller zu rufen.")
            
end
        end
    end
    state __COMPLETE__ begin
        when enter begin
            q
.done()
        
end
    end
end 
Eigentlich sollte man ab Level 11 sein Gaul nicht mehr steiger können aber man kann es trzdm, warum?
push..
05/16/2012 22:04 vpser#5738
Quote:
Originally Posted by vpser View Post
Code:
quest testkill begin  
    state start begin  
		    when kill with npc.is_pc() begin  
            if pc.get_empire() == 1 and npc.empire == 2 then 
                pc.setf("safademirelsari", pc.getf("safademirelsari")+1) 
				local safademirelsari = pc.getqf ( "safademirelsari" )
				chat("Şu Ana Kadar "..safademirelsari.." Adam Öldürdün.")
				mysql_query('UPDATE player set safademirelsari = '..pc.getqf("safademirelsari")..' WHERE name = \\"'..pc.get_name()..'\\"','root','pass','player','ip')             
		end
			if pc.get_empire() == 1 and npc.empire == 3 then 
                pc.setf("safademirelmavi", pc.getf("safademirelmavi")+1) 
				local safademirelmavi = pc.getqf ( "safademirelmavi" )
				chat("Şu Ana Kadar "..safademirelmavi.." Adam Öldürdün.")
				mysql_query('UPDATE player set safademirelmavi = '..pc.getqf("safademirelmavi")..' WHERE name = \\"'..pc.get_name()..'\\"','root','pass','player','ip')             
        end          
            if pc.get_empire() == 2 and npc.empire == 1 then 
                pc.setf("safademirelkirmizi", pc.getf("safademirelkirmizi")+1) 
				local safademirelkirmizi = pc.getqf ( "safademirelkirmizi" )
				chat("Şu Ana Kadar "..safademirelkirmizi.." Adam Öldürdün.")
				mysql_query('UPDATE player set safademirelkirmizi = '..pc.getqf("safademirelkirmizi")..' WHERE name = \\"'..pc.get_name()..'\\"','root','pass','player','ip')             
        end       
		            if pc.get_empire() == 2 and npc.empire == 3 then 
                pc.setf("safademirelmavi", pc.getf("safademirelmavi")+1) 
				local safademirelmavi = pc.getqf ( "safademirelmavi" )
				chat("Şu Ana Kadar "..safademirelmavi.." Adam Öldürdün.")
				mysql_query('UPDATE player set safademirelmavi = '..pc.getqf("safademirelmavi")..' WHERE name = \\"'..pc.get_name()..'\\"','root','pass','player','ip')             
        end                         
        		if pc.get_empire() == 3 and npc.empire == 1 then 
                pc.setf("safademirelkirmizi", pc.getf("safademirelkirmizi")+1) 
				local safademirelkirmizi = pc.getqf ( "safademirelkirmizi" )
				chat("Şu Ana Kadar "..safademirelkirmizi.." Adam Öldürdün.")
				mysql_query('UPDATE player set safademirelkirmizi = '..pc.getqf("safademirelkirmizi")..' WHERE name = \\"'..pc.get_name()..'\\"','root','pass','player','ip')             
        end  
		            if pc.get_empire() == 2 and npc.empire == 2 then 
                pc.setf("safademirelsari", pc.getf("safademirelsari")+1) 
				local safademirelsari = pc.getqf ( "safademirelsari" )
				chat("Şu Ana Kadar "..safademirelsari.." Adam Öldürdün.")
				mysql_query('UPDATE player set safademirelsari = '..pc.getqf("safademirelsari")..' WHERE name = \\"'..pc.get_name()..'\\"','root','pass','player','ip')             
        end 
    end 
end
end
It's not work , why ?

I have the functions for mysql query
??
05/16/2012 23:37 |★|554#5739

Probiers mal so:
Code:
quest horse_guard begin
    state start begin
		when 20349.chat."Pferd steigern" begin
            say_title("Stallbursche:")
            say("")
            say("Hallo!")
            say("Bei mir kannst du dein Pferd steigern.")
            say("Das Pferd zu steigern kostet dich 1kk pro Level.")
            say("")
            say_reward("Möchtest du dein Pferd steigern?")
            say("")
                
            local s = select("Ja", "Nein")
                
                if s == 1 then
                    say_title("Stallbursche:")
                    say("")
                    if horse.get_level() >= 11 then
						say("Dein Pferd hat Level 11 erreicht.")
						say("Du kannst es nicht mehr steigern.")
						say("")
						return
					end
					if pc.money < 1000000 then
						say("Du hast nicht genug Yang um dein Pferd zu steigern.")
						say("")
						return
					end
					pc.changemoney("-1000000")
					horse.unride()
					horse.advance()
					horse.ride()
					say("Dein Pferd hat nun Level "..(horse.get_level()).." erreicht.")
					say("")
                else
                    return
				end
		end

        when 20349.chat."Reitshop" begin
			npc.open_shop(11)
            say("Hier findest du alle Items für ein Pferd.")
		end
        when 20349.chat."Information" begin
            local s=number(1, 7)
            if 1>=s then -- 14.29% (1/7)
                say("Füttere dein Pferd")
                say("regelmässig sonst")
                say("stirbt es.")
            elseif 2>=s then -- 14.29% (1/7)
                say("Das Anfängerpferd")
                say("ist sehr schnell erschöpft.")
                say("Bleibe nicht auf seinem Rücken stehen.")
            elseif 3>=s then -- 14.29% (1/7)
                say("Um dein Pferd zu verbessern")
                say("benötigst du 1kk Yang.")
                say("Bringe das Yang zu mir")
                say("und ich werde dein Pferd steigern.")
            elseif 4>=s then -- 14.29% (1/7)
                say("Wenn dein Pferd gestorben")
                say("ist gibt es mehrere")
                say("Kräuter von den")
                say("Affenkönigen um")
                say("sie Wiederzubeleben.")
            elseif 5>=s then -- 14.29% (1/7)
                say("Es gibt 9 verschiedene")
                say("Pferde Aussehen.")
                say("Ohne Gilde, mit Gilde und als Leader.")
            elseif 6>=s then -- 14.29% (1/7)
                say("Das Anfängerpferd")
                say("isst gerne Heu.")
                say("Das Kampfpferd")
                say("isst gerne Karotten.")
                say("Das Militärpferd")
                say("isst gerne Roten Ginseng.")
            elseif 7>=s then -- 14.29% (1/7)
                say("Lese Handbuch Pferde Zähmen")
                say("um dein Pferd schneller zu rufen.")
            end
        end
    end
    state __COMPLETE__ begin
        when enter begin
            q.done()
        end
    end
end
Hab aber nix zum testen, garantiere für nichts. :D
Dein Problem war, dass er erst fragt, ob er mehr als 1.000.000 Yang hat -> wenn ja wird gesteigert, DANACH wurde gefragt, wie hoch das Pferd ist, hab das bisschen umgestellt und außerdem noch paar returns eingewurschtelt...

Und sorry wenn es etwas unordentlich ist, im Notepad ist alles schön ordentlich. :O Probier mal, ob's so geht.
05/17/2012 00:06 bl4ckd3v1l#5740
Danke schonmal für eure Hilfe :)
Aber weil ich so nervig bin und kein Quest profi...

Das Problem ist das ich sobald ich den Metin (8031) kille nichts passiert und ich festsitze :s

€: Die Pferdequest geht leider immernoch nicht. Man kann das Pferd auch steiger wenn es höher als Level 11 ist :/
05/17/2012 12:00 xPrivate#5741
Quote:
Originally Posted by metin2sozluk View Post
Hey guys I have a little question. Which form would work properly. First, second or none?

Hey Leute ich habe eine kleine Frage. Welches funktionieren würde. Ersten, zweiten oder keine?

PHP Code:
...
local hodor tonumber(input("")) 
...
pc.setqf("etwas"pc.getqf("etwas")+hodor

PHP Code:
...
local hodor tonumber(input("")) 
...
pc.setqf("etwas"pc.getqf("etwas")+"..hodor.."
Die erste Form funktioniert. Die 2. würde heiße, das er das Wort "hodor" mit in die Questfile speichert.

Mit freundlichen Grüßen
xPrivate
05/17/2012 13:16 LEL0UCH'#5742
PHP Code:
quest otm begin
    state start begin
        when login 
or levelup with pc.get_level() >= 103 begin
        when 30121.chat
."Zur Mitte" begin
            say_title
("Zur Mitte!")
            
say("Hallo "..pc.get_name()..",")
            
say("du moechtest dich also zur Mitte?")
            
say("Dort lauern aber grosse Gefahren und finstere")
            
say("Kreaturen, die nur darauf warten, jemanden")
            
say("wie dich als Nachspeisse zu essen.")
            
say("")
            
say_reward("Moechtest du teleportieren?")
    
local a select ("Ja""Nein")
        if 
== 2 then
            
return
        elseif 
== 1 then
            say_title
("Los gehts")
            
say_reward("Du wirst nun teleportiert!")
            
pc.warp(76700,80500)
        
end
    end
end 
Man sieht die Quest garrnicht? ;o
05/17/2012 14:01 SkillzWorld2#5743
PHP Code:
quest otm begin
    state start begin
        when login 
or levelup with pc.get_level() >= 103 begin
        when 30121.chat
."Zur Mitte" begin
            say_title
("Zur Mitte!")
            
say("Hallo "..pc.get_name()..",")
            
say("du moechtest dich also zur Mitte?")
            
say("Dort lauern aber grosse Gefahren und finstere")
            
say("Kreaturen, die nur darauf warten, jemanden")
            
say("wie dich als Nachspeisse zu essen.")
            
say("")
            
say_reward("Moechtest du teleportieren?")
    
local a select ("Ja""Nein")
        if 
== 2 then
            
return
        elseif 
== 1 then
            say_title
("Los gehts")
            
say_reward("Du wirst nun teleportiert!")
            
pc.warp(76700,80500)
        
end
    end
end 
Und was wenn er nein drückt :O
05/17/2012 14:06 .NighT™#5744
Quote:
Originally Posted by LEL0UCH' View Post
PHP Code:
quest otm begin
    state start begin
        when login 
or levelup with pc.get_level() >= 103 begin
        when 30121.chat
."Zur Mitte" begin
            say_title
("Zur Mitte!")
            
say("Hallo "..pc.get_name()..",")
            
say("du moechtest dich also zur Mitte?")
            
say("Dort lauern aber grosse Gefahren und finstere")
            
say("Kreaturen, die nur darauf warten, jemanden")
            
say("wie dich als Nachspeisse zu essen.")
            
say("")
            
say_reward("Moechtest du teleportieren?")
    
local a select ("Ja""Nein")
        if 
== 2 then
            
return
        elseif 
== 1 then
            say_title
("Los gehts")
            
say_reward("Du wirst nun teleportiert!")
            
pc.warp(76700,80500)
        
end
    end
end 
Man sieht die Quest garrnicht? ;o
Probiers so:
PHP Code:
quest otm begin
    state start begin
        when 30121.chat
."Zur Mitte" with pc.get_level() >= 103 begin
            say_title
("Zur Mitte!")
            
say("Hallo "..pc.get_name()..",")
            
say("du moechtest dich also zur Mitte?")
            
say("Dort lauern aber grosse Gefahren und finstere")
            
say("Kreaturen, die nur darauf warten, jemanden")
            
say("wie dich als Nachspeisse zu essen.")
            
say("")
            
say_reward("Moechtest du teleportieren?")
    
local a select ("Ja""Nein")
        if 
== 2 then
            
return
        elseif 
== 1 then
            say_title
("Los gehts")
            
say_reward("Du wirst nun teleportiert!")
            
pc.warp(76700,80500)
        
end
    end
end 
05/17/2012 17:40 |★|554#5745
Night, glaube da fehlt noch ein "end" am Schluss, oder?
Das erste macht das "if" zu, das zweite das "when" und das dritte die "state", oder? o.o Also "quest" is noch offen.