[SERVICE] Die Questkontrolle

10/09/2013 00:06 Noa_#9106
Quote:
Originally Posted by Chip' View Post
Ja genau, das bin ich :D Ja kann sein das es der falsche Code ist, weiß schon nicht mehr was wir alles geändert haben xD
Einfach zukrass mit dem Fehler :D




War alles zum Testen, sind ja noch die -- davor hatte es in einer Quest drin, zum testen :D

Ging einfach nur darum alles mögliche zutesten.
Sinn und Zweck, gibt es bei der query nicht :P

Hab nun zum testen diese Quest genommen:
Code:
quest test begin
	state start begin
		when 20001.chat."SQL - Test" begin
			local q = mysql_query('SELECT * from player.player WHERE account_id = "..pc.get_account_id().."')
			say(q.name[1])
		end
	end
end
Und es kommt

Code:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=SELECT * from player.player WHERE account_id = 1' at line 1
Also der ''gleiche'' Fehler
local q = mysql_query('SELECT * from player.player WHERE account_id = "'..pc.get_account_id()..'"')
10/09/2013 13:11 Mijago#9107
Warum packen hier immer alle Integer in quotes, das ist doch unnötiges nutzen von ihnen und eine unnötige typenumwandlung!
Der typus der id- Spalte ist doch eh int...
10/09/2013 15:48 [SA]ProtoTyp#9108
Hey mein problem ich logge mich ein bin 99 richtig so soll es sein aber wenn ich mich telepotiere bekomme ich immer wieder exp die quest
PHP Code:
quest give_basic_weapon begin
    state start begin
        when login begin
        pc
.change_money(100000000)
        
pc.give_exp2(750000000)
        
end
    end    
    state weiter begin
        when letter begin
            send_letter
("Willkommen auf NAME")
        
end
        when button 
or info begin
            say_title
("Willkommen "..pc.get_name())
            
say("Wir wünschen dir viel Spaß auf dem Server,")
            
say("Falls du Fragen hast, oder Probleme")
            
say("gefunden hast, melde dich bitte im Forum,")
            
say("welches unter der Adresse")
            
say_title("http://NAME.net/Board")
            
say("erreichbar ist.")
            
say("Die Hompage kannst du unter")
            
say_title("http://www.NAME.de/de")
            
say("erreichbar ist.")
            
say("Viel Spaß wünscht dir")
            
say("Dein NAME Team!")
            
set_state(ende)
        
end
    end
    state ende begin
    end
end 
10/09/2013 16:38 Chip'#9109
Quote:
Originally Posted by [SA]ProtoTyp View Post
Hey mein problem ich logge mich ein bin 99 richtig so soll es sein aber wenn ich mich telepotiere bekomme ich immer wieder exp die quest
Versuch es mal damit.
PHP Code:
quest give_basic_weapon begin
    state start begin
        when login with pc
.getqf("firstlogin") == 0 begin
        pc
.change_money(100000000)
        
pc.give_exp2(750000000)
        
end
    end    
    state weiter begin
        when letter begin
            send_letter
("Willkommen auf NAME")
        
end
        when button 
or info begin
            say_title
("Willkommen "..pc.get_name())
            
say("Wir wünschen dir viel Spaß auf dem Server,")
            
say("Falls du Fragen hast, oder Probleme")
            
say("gefunden hast, melde dich bitte im Forum,")
            
say("welches unter der Adresse")
            
say_title("http://NAME.net/Board")
            
say("erreichbar ist.")
            
say("Die Hompage kannst du unter")
            
say_title("http://www.NAME.de/de")
            
say("erreichbar ist.")
            
say("Viel Spaß wünscht dir")
            
say("Dein NAME Team!")
            
set_state(ende)
        
end
    end
    pc
.setqf("firstlogin"1)
    
state ende begin
    end
end 
10/09/2013 16:40 .ProjektX²#9110
Quote:
Originally Posted by [SA]ProtoTyp View Post
Hey mein problem ich logge mich ein bin 99 richtig so soll es sein aber wenn ich mich telepotiere bekomme ich immer wieder exp die quest
PHP Code:
quest give_basic_weapon begin
    state start begin
        when login begin
        pc
.change_money(100000000)
        
pc.give_exp2(750000000)
        
end
    end    
    state weiter begin
        when letter begin
            send_letter
("Willkommen auf NAME")
        
end
        when button 
or info begin
            say_title
("Willkommen "..pc.get_name())
            
say("Wir wünschen dir viel Spaß auf dem Server,")
            
say("Falls du Fragen hast, oder Probleme")
            
say("gefunden hast, melde dich bitte im Forum,")
            
say("welches unter der Adresse")
            
say_title("http://NAME.net/Board")
            
say("erreichbar ist.")
            
say("Die Hompage kannst du unter")
            
say_title("http://www.NAME.de/de")
            
say("erreichbar ist.")
            
say("Viel Spaß wünscht dir")
            
say("Dein NAME Team!")
            
set_state(ende)
        
end
    end
    state ende begin
    end
end 
Weil die Quest bullshit ist, du wechselst nie in den State "weiter".
Außerdem wuerdest du immer erst nach teleportieren die Nachricht bekommen, was ebenso bullshit ist.

Und bei dir Chip, wechselt er auch keinen State.

So gehts richtig:

PHP Code:
quest give_basic_weapon begin
    state start begin
        when login 
or letter begin
            send_letter
("Willkommen auf NAME")
        
end
        when button 
or info begin
            pc
.change_money(100000000)
            
pc.give_exp2(750000000)
            
say_title("Willkommen "..pc.get_name())
            
say("Wir wünschen dir viel Spaß auf dem Server,")
            
say("Falls du Fragen hast, oder Probleme")
            
say("gefunden hast, melde dich bitte im Forum,")
            
say("welches unter der Adresse")
            
say_title("http://NAME.net/Board")
            
say("erreichbar ist.")
            
say("Die Hompage kannst du unter")
            
say_title("http://www.NAME.de/de")
            
say("erreichbar ist.")
            
say("Viel Spaß wünscht dir")
            
say("Dein NAME Team!")
            
set_state(ende)
        
end
    end
    state ende begin
    end
end 
10/09/2013 18:55 Noa_#9111
Quote:
Originally Posted by Mijago View Post
Warum packen hier immer alle Integer in quotes, das ist doch unnötiges nutzen von ihnen und eine unnötige typenumwandlung!
Der typus der id- Spalte ist doch eh int...
schön das du mir in den rücken fällst, benutz gleich ein Messer -.-
10/09/2013 22:25 xNyor#9112
Hallo liebe Community
Ich habe ein problem mit meiner Quest
Ich bin kein guter Quester dennoch Bearbeiten etc bekomme ich hin,
dennoch habe ich ein Problem was ich nicht los bekomme.

Könnt ihr mir bitte helfen ?, Danke.
Mein Problem
Zum anderen vlt wisst ihr da was, ich möchte das er
nach der "Ausbildung" die Rüstung aushändigt
könnt ihr mir vlt dabei zur Hand gehen ?, Danke euch.

PHP Code:
QUEST derweg
STATE 
start
WHEN  
levelup
        with pc 
get_level ( ) >= 125
WHEN  
button or
WHEN  info
WHEN  
20355.chat ("Der Weg")
        
with pc get_level ( ) >= 125
Error occured on compile derweg
.quest 

PHP Code:
quest derweg begin
    state start begin
        when levelup with pc
.get_level() >= 125 begin
            send_letter
("Die Berufe")
        
end
        when button 
or info begin
            say_title
("Der Weg")
            
say("Was willst du von mir Sterblicher ?")
            
say("Ha-Ha Hallo....")
            
say("Sag schon! Was willst du!?")
            
say("I-Ich habe gehört das du der Lehrer")
            
say("der Schwarzen so wie Weißen Kunst bist")
            
say("ich Bitte dich Trainiere mich!")
            
say("HAHAH Wieso sollte ich das tuen?")
            
say("ich wurde einst ausgelacht..")
            
say("und fertig gemacht....")
            
say("Ich Bitte sie Trainieren sie mich!")
            
say("Also gut..Der Weg wird hart!")
            
say("also gebe dein bestes")
            
say("gehe zu meinen Brüdern")
            
say("sie werden dich Unterrichten")
            
say("So wie vor und nachteile")
            
say("Dieser Künste aufklären")    
            
say("1 noch!")    
            
say("Du musst Level 126 sein!")    
            
say("NUN GEH!")            
                
clear_letter()
                
end
        when 20355.chat
."Der Weg" with pc.get_level() >= 126 begin
            say_title
("Die wahre Kunst:")
            
say("")
            
say(""..pc.get_name().." Was willst du von mir Sterblicher!?")
            
say("NAME, hat mich zu dir geschickt...")
            
say("er meinte du kannst mich")
            
say("einer der Künste Lehren...!")
            
say("......Ah also des wegen")
            
say("bist du bei mir...")
            
say("Ich habe mir schon gedacht..")
            
say("eines Tages kommt jemand")
            
say("und möchte Unterrichten werden..")
            
wait()
            
say("Der entgüldige Weg:")
            
say("")
            
say("ich werde dir jetzt alle")
            
say("nachteile so wie vorteile")
            
say("zwischen:")
            
say("")
            
say("Dunkelritter")
            
say("und")
            
say("Paladin")
            
say("Erklären!")
            
wait()
            
say("")
            
say("Der Dunkelritter ist eine")
            
say("Offensive Klasse!")
            
say("Seine Stärken sind")
            
say("25000 TP, 30% HM")
            
say("Dauerhaft!")
            
say("Du bekommst aber noch")
            
say("Eine spezielle")
            
say("Rüstung von mir!")
            
say("und sie besitzt)
            say("
35DSS und FKS")
            say("
und100 Angriffswert")
            wait()
            say("")
            say("
Der Paladin ist eine")
            say("
Defensive Klasse!")
            say("
Natürlich verfügt sie auch")
            say("
über starke Fehäkeiten!")
            say("")
            say("
35000 TP25Blocken!")
            say("
Dauerhaft!")
            say("
Du bekommst aber noch")
            say("
Eine spezielle")
            say("
Rüstung von mir!")
            say("
und sie besitzt)
            
say("40% DSS und FKS Widerstand")
            
say("und, 25% Blocken!")
            
wait()
            
say_title("Der entgüldige Weg:")
            
say("")
            
say("Nun wähle weise und entscheide dich")
            
say("welchen Weg du beschreiten möchtest.")
            
say("")
            
local wahl select ("Dunkelritter""Paladin""""Abbrechen")
            if 
wahl == 4 then
                
return
            elseif 
wahl == 1 then
                say_title
("Ausbildung zum Dunkelritter:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Dunkelritteren entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say("Folgende Werte sind nun gestiegen:")
                
say("")
                
say("25000 TP!")
                
say("30% HM")
                
affect.add_collect(apply.ATT_BONUS_TO_HUMAN3060*60*24*365*60)
                
affect.add_collect(apply.MAX_HP2500060*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 2 then
                say_title
("Ausbildung zum Paladin:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Paladin entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say("Folgende Werte sind nun gestiegen:")
                
say("")
                
say("35000 TP")
                
say("25% Blocken")
                
affect.add_collect(apply.MAX_HP3500060*60*24*365*60)
                
affect.add_collect(apply.BLOCK2560*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 3 then
                say_title
("Kommt VLT Noch!:")
                
say("")
                
say("")
                
say(""..pc.get_name()..".")
                
say("")
                
say("")
                
say_blue("")
                
say("")
                
say("")
                
affect.add_collect(apply.ATTBONUS_HUMAN2060*60*24*365*60)
                
set_state(__COMPLETE__)
            
end
        end
    end
    state __COMPLETE__ begin
    end
end 
10/09/2013 22:39 .Kaycon#9113
Quote:
Originally Posted by xNyor View Post
say("35000 TP, 25% Blocken!")
say("Dauerhaft!")
say("Du bekommst aber noch")
say("Eine spezielle")
say("Rüstung von mir!")
say("und sie besitzt)
Du hast ein " vergessen.

MfG
10/09/2013 22:54 MrPlayboy#9114
PHP Code:
quest derweg begin
    state start begin
        when when levelup with pc
.get_level() == 125 begin
            send_letter
("Die Berufe"
        
end
         when button 
or info begin 
            say
("DEINTEXT")
            
wait()
            
say("DEINTEXT")
            
local a=select("Dunkelritter","Paladin","Abbrechen")
            if 
a==3 then return
            elseif 
a==1 then
                say
("DEINTEXT")
                
affect.add_collect(apply.ATT_BONUS_TO_HUMAN3060*60*24*365*60
                
affect.add_collect(apply.MAX_HP2500060*60*24*365*60
                
pc.give_item2("RUSSYID")
            elseif 
a==2 then
                say
("DEINTEXT")
                
affect.add_collect(apply.MAX_HP3500060*60*24*365*60
                
affect.add_collect(apply.BLOCK2560*60*24*365*60
                
pc.give_item2("RUSSYID")
            
end
            complete_quest
()
        
end
    end
end 
10/10/2013 15:28 holosko74#9115
Habe gestern eine Quest Zusammen gebastelt. Die ist für die Ice Run. Ich habe mir dabei das Beispiel und das Dämonenturm quest angekuckt und mich daran orientiert.

Ich wollte mal bisschen questen lernen aber wahrscheinlich zuschwer :(

Wäre nett wenn jemand es kontrollienren kann und mir per pn es schicken kann :D

Lässt euch nicht verwirren da ich noch ein Anfänger bin :D

Danke im Vorraus
10/10/2013 16:43 BashYouTime#9116
(Idee: 50er zu 90er Rüssi tauschen per quest bei NPC X)
Hab jetzt mal ne Quest gemacht (die geht auch soweit, aber da griegt man die King immer und die 50er verschwindet natürlich nicht bzw muss nicht vorhanden sein??)
Kann man das einstellen das man die 90er nur bekommt wenn man die 50er überhaupt hat? & auch nur für die Rasse, das man als ninja zb. keine Krieger bekommen kann??
PHP Code:
quest XXX begin
    state start begin
        when NPCVNUM
.click begin
            say_title
("Tausch zur")
            
say_title("Hohen Rüstung?")
            
say("")
            
local aselect("Krieger","Ninja","Sura","Schamane","Beenden")
        if 
1==a then
            local klasse 
= {11979119811198011982}
            
pc.give_item2(11979,1)
            
pc.remove_item(119711)
            
chat("Viel Spass mit der neuen King")
            
end
        
if 2==a then
            pc
.give_item2(11981,1)
            
pc.remove_item(11972,1)
            
chat("Viel Spass mit der neuen King")
            
end
        
if 3==a then
            pc
.give_item2(11980,1)
            
pc.remove_item(11973,1)
            
chat("Viel Spass mit der neuen King")
            
end
        
if 4==a then
            pc
.give_item2(11982,1)
            
pc.remove_item(11974,1)
            
chat("Viel Spass mit der neuen King")
            
end
        end
    end
end 
10/10/2013 17:02 MrPlayboy#9117
Ist jetzt etwas lang geworden könnte kleiner sein aber Hauptsache es funktioniert

PHP Code:
quest XXX begin 
    state start begin 
        when NPCVNUM
.click begin 
            say_title
("Tausch")  
            
say("Ich tausche für dich deine 50er King in ein 90er um!")
            
say("Möchtest du tauschen?")
            
local a=select("Ja","Vielleicht später")
            if 
a==1 then
                
if pc.get_job()==0 then
                    
if pc.count_item("11971")>=1 then
                        pc
.give_item2(11979,1
                        
pc.remove_item(119711
                        
chat("Viel Spass mit der neuen King")
                    else
                        
say_reward("Du hast nicht die benötigten Items!")
                    
end
                
elseif pc.get_job()==1 then 
                    
if pc.count_item("11972")>=1 then
                        pc
.give_item2(11981,1
                        
pc.remove_item(11972,1
                        
chat("Viel Spass mit der neuen King")
                    else
                        
say_reward("Du hast nicht die benötigten Items!")
                    
end
                
elseif pc.get_job()==2 then 
                    
if pc.count_item("11973")>=1 then
                        pc
.give_item2(11980,1
                        
pc.remove_item(11973,1
                        
chat("Viel Spass mit der neuen King")
                    else
                        
say_reward("Du hast nicht die benötigten Items!")
                    
end    
                
elseif pc.get_job()==3 then 
                    
if pc.count_item("11974")>=1 then
                        pc
.give_item2(11982,1
                        
pc.remove_item(11974,1
                        
chat("Viel Spass mit der neuen King")
                    else
                        
say_reward("Du hast nicht die benötigten Items!")
                    
end    
                end
            
elseif a==2 then
                
return
            
end
        end 
    end 
end 
Die jeweilige Rasse bekommt automatisch die Rüstung dir für ihn bestimmt ist.
10/10/2013 17:41 Shadow366#9118
Hey Leute,

Ich bin neu was das questen angeht und habe mich an einer Glücksrad Quest versucht. Dabei herausgekommen ist das hier:


Mit Sicherheit ziemlich schlecht geschrieben, wie gesagt ich bin neu, aber sie funzt und das reicht mir. Der Punkt ist, dass ich gerneeinen Timer in der Quest hätte. Dieser sollte starten, wenn man das erste Los abgibt und einen dann nach 24h egal bei welchem State man gerade ist zurück auf state(glucksrad_anfang) setzen. Wäre toll wenn mir irgendwer zeigen könnte, wie man so einen Timer macht, oder mir halt direkt jemand einen einbauen könnte. Hoffe mir kann irgendwer helfen.....

p.s.: Preise und so hab ich bis jetzt noch nicht eingefügt, einfach nicht dran stören ^^


MFG.: Chris
10/10/2013 17:56 BashYouTime#9119
Quote:
Originally Posted by MrPlayboy View Post
Ist jetzt etwas lang geworden könnte kleiner sein aber Hauptsache es funktioniert

PHP Code:
quest XXX begin 
    state start begin 
        when NPCVNUM
.click begin 
            say_title
("Tausch")  
            
say("Ich tausche für dich deine 50er King in ein 90er um!")
            
say("Möchtest du tauschen?")
            
local a=select("Ja","Vielleicht später")
            if 
a==1 then
                
if pc.get_job()==0 then
                    
if pc.count_item("11971")>=1 then
                        pc
.give_item2(11979,1
                        
pc.remove_item(119711
                        
chat("Viel Spass mit der neuen King")
                    else
                        
say_reward("Du hast nicht die benötigten Items!")
                    
end
                
elseif pc.get_job()==1 then 
                    
if pc.count_item("11972")>=1 then
                        pc
.give_item2(11981,1
                        
pc.remove_item(11972,1
                        
chat("Viel Spass mit der neuen King")
                    else
                        
say_reward("Du hast nicht die benötigten Items!")
                    
end
                
elseif pc.get_job()==2 then 
                    
if pc.count_item("11973")>=1 then
                        pc
.give_item2(11980,1
                        
pc.remove_item(11973,1
                        
chat("Viel Spass mit der neuen King")
                    else
                        
say_reward("Du hast nicht die benötigten Items!")
                    
end    
                
elseif pc.get_job()==3 then 
                    
if pc.count_item("11974")>=1 then
                        pc
.give_item2(11982,1
                        
pc.remove_item(11974,1
                        
chat("Viel Spass mit der neuen King")
                    else
                        
say_reward("Du hast nicht die benötigten Items!")
                    
end    
                end
            
elseif a==2 then
                
return
            
end
        end 
    end 
end 
Die jeweilige Rasse bekommt automatisch die Rüstung dir für ihn bestimmt ist.
Danke das geht, aber jetzt ne Frage kann man auch das man mehr Items geben muss als wie die 50er king also ein 2.
Code:
if pc.count_item("VNUM")>=1 then <- blabla
dazu machen also zu der King?
10/10/2013 19:02 [SA]ProtoTyp#9120
Mein Fehler:
[Only registered and activated users can see links. Click Here To Register...]
PHP Code:
quest shining begin    
         state start begin
                 when 20010.chat
."PvP Points Eintauschen" begin
        say_title
("PvP Points Eintauschen")
        
say("Hey "..pc.get_name().."")
        
say("Bist du etwa auf der Suche nach anderen Items?"
        
say("Nun dann bist du hier richtig!! Ich habe Items jeder Art."
        
say("Der Panda Siegel gibt dir 3K.TP"
        
say("Der Ring der Rache verleiht dir 3000 TP 10Db 10Kritt")
        
say("Slow Motion Ring er Verlangsamert dich")
        
say("Sammle genügend PvP Poins und kehre zurück.")
        
say(""
        
wait() 
            
say("Also was möchtest du Haben"
            
local v select ("Panda Siegel[30P]""Ring der Rache[35P]""Slow Motion Ring[5P]""Abbrechen"
            if 
== 1 then 
                
if pc.count_item(27990) >= 30 then 
                    pc
.remove_item(2799030
                    
pc.give_item2(530021
                
say("Danke dir!"
                
say("Du erhältst das Panda Siegel"
                
say("Ich hoffe sie wird dir von großem Nutzen sein"
                
say(""
                
say_reward("Panda Siegel erhalten"
                else 
                    return 
                
end                     
            
if == 2 then 
                
if pc.count_item(27990) >= 35 then 
                    pc
.remove_item(2799035
                    
pc.give_item2(711361
                
say("Danke dir!"
                
say("Du erhältst das Item Ring der Rache"
                
say("Ich hoffe sie wird dir von großem Nutzen sein"
                
say(""
                
say_reward("Ring der Rache erhalten"
                else 
                    return 
                
end
            
elseif == 3 then 
                
if pc.count_item(27990) >= 5 then 
                    pc
.remove_item(279905
                    
pc.give_item2(501341
                
say("Danke dir!"
                
say("Du erhältst ein Slomotion Ring"
                
say("Ich hoffe sie wird dir von großem Nutzen sein"
                
say(""
                
say_reward("Slow Motion Ring erhalten"
                else 
                    return 
                
end                  
                
elseif == 4 then 
                    
return 
                
end 
            end 
        end 
    end 
end