[SERVICE] Die Questkontrolle

10/16/2010 21:46 .Flynn.#706
Quote:
Originally Posted by CoreDump View Post
@ Shadow
PHP Code:
pc.setqf("state1", 0) 
bei der "0" die erforderliche menge der mobs die zu töten sind eintragen


das ganze:
PHP Code:
 if pc.getqf("state1") >= 100 and pc.getqf("state2") >= 200 and pc.getqf("state3") >= 100 and pc.getqf("state4") >= 10 and pc.getqf("state5") >= 4 and pc.getqf("state6") >= 5 and pc.getqf("state7") >= 5 and pc.getqf("state8") >= 5 and pc.getqf("state9") >= 5 then 
kannst du rauslöschen! wozu brauchst du state2-state9? mitdenken ist gefragt.
PHP Code:
if pc.getqf("state1") >= 100 then 
nur das brauchst du. und die 100 wieder durch die menge der mobs die du brauchst.

-----------------------------------------------------------------------

@ elo_77²
wenn du nichts weiter als 10kk yang für das item eintragst, dann schreib kein quest dafür!!?
wie wärs wenn du das einfach in der special_item_group eintragst?
is das echt so schwer!!?? (kurzschluss im kopf)

-----------------------------------------------------------------------

@ ζσεϣ
ein questname darf kein leerzeichen enthalten.
aber das sollte jeder wissen! also da sollte man schon sagen das du die finger von quests lassen sollst!! man sieht das du 0 ahnung von quests hast.
Okay schön und gut und wieso funzt die andere Quest nicht?


üff jetzt kommt das



syntax error : [string "mob"]:7: `then' expected near `set_state'
calisrache.quest:59:Abort trap (core dumped)
bei der einen quest ^^
10/16/2010 21:56 elo_77²☺#707
Quote:
Originally Posted by Yoshix3 View Post
Die Quest sollte gehen :

Thx das teste ich gleich mal...und stelle Beras Herz in der DB auf Type 18... enttäuschend aber, dass mir ein anderer User hilft und nicht der Threadersteller oder die anderen "Helfer"...

LG elo77
10/16/2010 22:46 CoreDump#708
@ ShaDoW329
ja ich finde kein set_state das zur "state mob begin" führt.

PS: Wollte auch sagen warum elo77 nur immer auswahl "JA" hat. da kann man gleich wait() reinschreiben.
Aber ich warte immer so lange bis mir jemand antwortet, und wenn ich dann seh das mir jemand antwortet sind über 5 posts. erstmal lange warten und dann in kurzer zeit findet man sich vor lauter posts nichtmehr.
10/16/2010 23:05 .Flynn.#709
magst du es mir mal verbessern kopier bereit?
mfg
10/17/2010 00:57 Mastermonkey#710
10/17/2010 06:05 patchen#711
PHP Code:
quest starterpack begin
    state start begin
        when login with pc
.getqf("starterpack") == 0 begin
            
if pc.getqf("starterpack") == 0 then
                pc
.setqf("starterpack", 1)
                
                
say("Willkommen auf ShoXMt2")
                
say("Hier hast du dein EQ")
                
say("Bitte Wende dich bei Fragen an einen GM")
                
wait()
                
say("und nicht an den SA")
                
say("So viel spaß")
                
say_reward("Du erhielst ein Starterpack mit")
                
say_reward("ganz tollen Sachen")
                
say("Viel Spaß damit!")
                
say("")
                
say("")
                
say("")
                
say("")
                
say_reward("Quest ende :D")
                
                
pc.give_exp2(10000000000)
                
pc.give_item2(14209, 1)
                
pc.give_item2(17209, 1)
                
pc.give_item2(17109, 1)
                
pc.give_item2(15229, 1)
                
pc.give_item2(16209, 1)
            
                
local rasse = pc.get_job
                    
if rasse == 0 then       -------Krieger
                        pc
.give_item2(11299, 1)
                        
pc.give_item2(11269, 1)
                        
pc.give_item2(13069, 1)
                        
pc.give_item2(3159, 1)
                        
pc.give_item2(149, 1)
                        
                    elseif 
rasse == 1 then    ------ Ninja
                        pc
.give_item2(11469, 1)
                        
pc.give_item2(11499, 1)
                        
pc.give_item2(13089, 1)
                        
pc.give_item2(1119, 1)
                        
pc.give_item2(1109, 1)
                        
                    elseif 
rasse == 2 then    ------ Sura
                        pc
.give_item2(249, 1)
                        
pc.give_item2(159, 1)
                        
pc.give_item2(11669, 1)
                        
pc.give_item2(11699, 1)
                        
pc.give_item2(13109, 1)
                        
                    elseif 
rasse == 3 then    ------- Schami
                        pc
.give_item2(13129, 1)
                        
pc.give_item2(11869, 1)
                        
pc.give_item2(11899, 1)
                        
pc.give_item2(5129, 1)
                        
pc.give_item2(7149, 1)
                        
                    
end
                end
            end
        end
    end
end 




Wo is da der fehler? o.O
ingame zeigt er mir nur die ursprünglich quest..
normalerweise sollte diese quest den spieler die exp geben, das eq und halt noch je nach rasse, noch mehr eq..
und die quest soll beim einloggen starten!
gespeichert ist sie unter /usr/rain/channel/share_data/locale/hongkong/quest/notarget/letter
10/17/2010 08:46 Mastermonkey#712
Hey Patchen du hast ein end zuviel und was meinst du mit du hast die quest in
/usr/rain/channel/share_data/locale/hongkong/quest/notarget/letter ????

Quests gehören in
/usr/rain/channel/share_data/locale/hongkong/quest

und dann in honkong_list den namen deiner Quest einfügen und inner Kosole
per
Code:
cd /usr/rain/channel/share_data/locale/hongkong/quest
und
Code:
sh make
10/17/2010 16:29 CoreDump#713
ich weiß nicht wie das bei dir funktioniert.
bei mir geht das so:
Code:
cd /usr/rain/channel/share_data/locale/hongkong/quest
chmod u+x make.sh
sh make.sh
10/17/2010 16:30 .Risan.#714
Hab Folgendes Problem oder Wunsch:
Wenn ein Spieler online kommt, soll er immer um 1 erhöhen die Variable, aber nicht auf den Spieler acc sondern, auf eine Tabelle.
Das gleiche gilt für Offline gehen, nur das er dort um 1 weniger setzen soll.
Versteht ihr?

PHP Code:
quest online_user begin
    state start begin
        when login begin
            chat
("Willkommen bei xxxx dem Server xxxx, Bitte meldet Bugs") 
            
game.set_event_flag("Metin2_ONLINE", 1)
                       ---
hier um eins erhöhen +1
        end
        when logout begin
               game
.set_event_flag("Metin2_ONLINE", 0)
                       ---
hier um eins weniegr setzen -1
  end
  end
  end 
setzen tut ers, aber wenn mit + - mache, kommt core fehler, und wenn ich per pc.set.. mache, tut er nur ACC ID setzen <.<
10/17/2010 16:42 iYoshix3#715
Quote:
Originally Posted by Woody° View Post
Hab Folgendes Problem oder Wunsch:
Wenn ein Spieler online kommt, soll er immer um 1 erhöhen die Variable, aber nicht auf den Spieler acc sondern, auf eine Tabelle.
Das gleiche gilt für Offline gehen, nur das er dort um 1 weniger setzen soll.
Versteht ihr?

PHP Code:
quest online_user begin
    state start begin
        when login begin
            chat
("Willkommen bei xxxx dem Server xxxx, Bitte meldet Bugs") 
            
game.set_event_flag("Metin2_ONLINE", 1)
                       ---
hier um eins erhöhen +1
        end
        when logout begin
               game
.set_event_flag("Metin2_ONLINE", 0)
                       ---
hier um eins weniegr setzen -1
  end
  end
  end 
setzen tut ers, aber wenn mit + - mache, kommt core fehler, und wenn ich per pc.set.. mache, tut er nur ACC ID setzen <.<
Versuch mal die hier :

10/17/2010 17:41 .Alessa#716
@Woody:
Oder noch einfacher:
PHP Code:
quest online_user begin 
    state start begin 
        when login begin 
            chat
("Willkommen bei xxxx dem Server xxxx, Bitte meldet Bugs")  
            
setstate(ok)
        
end 
    end
    state ok begin
        when logout begin 
             setstate
(start)
        
end 
    end 
end 
Das sollte es eigtl. gewesen sein. Machen wir weiter mit der nächsten ;-)

@mastermonkey:
Eine Locale wäre hier aber angebracht! Wenn du den Namen ausgeben willst, kannst du es einfach so machen:
say("du heißt "..pc.get_name()..".")
ebenso kannst du es auch als locale speichern
local a = pc.get_name()

Und wenn du den Spieler selbst etwas eingeben lassen willst, hilft dir die Local perfekt:
local a = input()
say(""..a.."")
say("Was für ein interessanter Text.")

Wenn ich das nun falsch verstanden habe, dann korrigiere mich^^
10/17/2010 18:03 .Risan.#717
Quote:
Originally Posted by Yoshix3 View Post
Versuch mal die hier :

tut es leider nicht, er setzt wenn man geht immer -1
Und wenn einer rein geht (egal wie viele) immer 0
Komisch >.<

das mit pc.setqf("logiin", 0) usw. funzt, aber da müllt man unnötig die Quest Tabelle zu xD.
10/17/2010 18:32 .Alessa#718
@Woody: Probier doch meine mal aus, mit der sollte es gehen.
10/17/2010 18:35 Zeroxxxx#719
Beim Anklicken des NPC's passiert nichts

PHP Code:
quest waffen1 begin
    state start begin
        when 20086.chat
."Waffen" begin
            
if pc.countitem("95000")<10 or pc.countitem("95001")<10 or pc.countitem("95002")<10 or pc.countitem("96000")<1 or pc.countitem("96001")<1 or pc.countitem("96002")<1 then
                say_title
("Waffen")
                
say("Du willst Waffen für das Level 95 bis 99")
                
say("von mir? Nun ich habe nicht viele davon")
                
say("deswegen musst du mich dafür bezahlen!)
                say("
Zudem mag ich sehr gerne Schokolade!")
                say("
Du bekommst sie von den goldenen Fröschen")
                say("
In der verlassenden Stadt, oder als OX Gewinn!")
                say("
Geh und besorge mir jeweils:")
                say_reward("
10x 100kk Yang Speicher")
                say_reward("
10x 250kk Yang Speicher")
                say_reward("
10x 500kk Yang Speicher")
                say_reward("
1x Weiße Schokolade")
                say_reward("
1x Vollmilch Schokolade")
                say_reward("
1x Zartbitter Schokolade")
            elseif pc.countitem("
95000")>10 and pc.countitem("95001")>10 and pc.countitem("95002")>10 and pc.countitem("96000")>1 and pc.countitem("96001")>1 and pc.countitem("96002")>1 then[<<<KILL]bis unten ALLES
                say_title("
Waffen")
                say("
Ohh, du hast das Geld und die Schokoladen!")
                say("
Jetzt kannst du dir eine Waffe aussuchen!")
                say_reward("
Für welche Klasse möchtest du eine?")
                local m = select("
Krieger","Ninja","Sura","Schamie","Abbrechen")
                if m == 5 then
                    return
                end
                    
                if m == 1 then
                    say_title("
Special NPC:")
                    say_reward("
Welchen Waffentyp möchtest du?")
                    local t = select("
Einhänder","Zweihänder","Abbrechen")
                    if    t == 3 then
                        return
                    end
                    if t == 1 then
                        pc.give_item2("
300",1)    
                        pc.removeitem("
95000",10)
                        pc.removeitem("
96000",1)
                        pc.removeitem("
95001",10)
                        pc.removeitem("
96001",1)
                        pc.removeitem("
95002",10)
                        pc.removeitem("
96002",1)
                    elseif t == 2 then
                        pc.give_item2("
3220",1)    
                        pc.removeitem("
95000",10)
                        pc.removeitem("
96000",1)
                        pc.removeitem("
95001",10)
                        pc.removeitem("
96001",1)
                        pc.removeitem("
95002",10)
                        pc.removeitem("
96002",1)
                    end
                            
                elseif m == 2 then
                    say_title("
Special NPC:")
                    say_reward("
Welchen Waffentyp möchtest du?")
                    local t = select("
Einhänder","Dolche","Bogen","Abbrechen")
                    if    t == 4 then
                        return
                    end
                    if t == 1 then
                        pc.give_item2("
300",1)    
                        pc.removeitem("
95000",10)
                        pc.removeitem("
96000",1)
                        pc.removeitem("
95001",10)
                        pc.removeitem("
96001",1)
                        pc.removeitem("
95002",10)
                        pc.removeitem("
96002",1)
                    elseif t == 2 then
                        pc.give_item2("
1140",1)    
                        pc.removeitem("
95000",10)
                        pc.removeitem("
96000",1)
                        pc.removeitem("
95001",10)
                        pc.removeitem("
96001",1)
                        pc.removeitem("
95002",10)
                        pc.removeitem("
96002",1)
                    elseif t == 3 then
                        pc.give_item2("
8050",1)    
                        pc.removeitem("
95000",10)
                        pc.removeitem("
96000",1)
                        pc.removeitem("
95001",10)
                        pc.removeitem("
96001",1)
                        pc.removeitem("
95002",10)
                        pc.removeitem("
96002",1)
                    end
                            
                elseif m == 3 then
                    say_title("
Special NPC:")
                    say_reward("
Welchen Waffentyp möchtest du?")
                    local t = select("
Einhänder","Sura Spezial","Abbrechen")
                    if    t == 3 then
                        return
                    end
                    if t == 1 then
                        pc.give_item2("
300",1)    
                        pc.removeitem("
95000",10)
                        pc.removeitem("
96000",1)
                        pc.removeitem("
95001",10)
                        pc.removeitem("
96001",1)
                        pc.removeitem("
95002",10)
                        pc.removeitem("
96002",1)
                    elseif t == 2 then
                        pc.give_item2("
9970",1)    
                        pc.removeitem("
95000",10)
                        pc.removeitem("
96000",1)
                        pc.removeitem("
95001",10)
                        pc.removeitem("
96001",1)
                        pc.removeitem("
95002",10)
                        pc.removeitem("
96002",1)
                    end
                        
                elseif m == 4 then    
                    say_title("
Special NPC:")
                    say_reward("
Welchen Waffentyp möchtest du?")
                    local t = select("
Fächer","Glocke","Abbrechen")
                    if    t == 3 then
                        return
                    end
                    if t == 1 then
                        pc.give_item2("
7180",1)    
                        pc.removeitem("
95000",10)
                        pc.removeitem("
96000",5)
                        pc.removeitem("
95001",10)
                        pc.removeitem("
96001",5)
                        pc.removeitem("
95002",10)
                        pc.removeitem("
96002",5)
                    elseif t == 2 then
                        pc.give_item2("
5330",1)    
                        pc.removeitem("
95000",10)
                        pc.removeitem("
96000",5)
                        pc.removeitem("
95001",10)
                        pc.removeitem("
96001",5)
                        pc.removeitem("
95002",10)
                        pc.removeitem("
96002",5)
                    end
                end
            end
        end
    end    
end 
Mache das für einen guten Freund ^^
10/17/2010 18:41 iYoshix3#720
@ Woodi
Was soll deine Quest eig bewirken?^^