[SERVICE] Die Questkontrolle

01/04/2012 00:52 .Delta#4426
der shop id in der shop.sql einen npc zuweisen
01/04/2012 01:04 TubeYourGames#4427
Quote:
Originally Posted by .Delta View Post
der shop id in der shop.sql einen npc zuweisen
Danke erstmal für die Antwort,
aber kannst du es mir evtl. besser erklären? :s
Wo finde ich die Shop SQL?
01/04/2012 01:08 .Colossus.#4428
shop.sql per navicat in der player kategorie

#Edit: hab hier noch n alten nützlichen post von mir entdeckt

[Only registered and activated users can see links. Click Here To Register...]

beim letzten post siehst du deine quest bloß einfacher =)
01/04/2012 01:14 TubeYourGames#4429
Achso ja, habe ich ja zugewiesen...
01/04/2012 01:22 .Colossus.#4430
Quote:
Originally Posted by .Colossus. View Post
#edit:
nehmen wir mal meine quest alls beispiel:
PHP Code:
quest npc_shop begin
    state start begin

    when 9001.chat
."Waffen ab Lvl 0" begin
         npc
.open_shop(6181)
                 
say("Hier findest du alle Waffen ab Lvl 0.")
    
end
    when 9001.chat
."Waffen ab Lvl 20" begin
         npc
.open_shop(6182)
                 
say("Hier findest du alle Waffen ab Lvl 20.")
    
end
        when 9001.chat
."Waffen ab Lvl 36" begin
         npc
.open_shop(6183)
                 
say("Hier findest du alle Waffen ab Lvl 36.")
    
end
        when 9001.chat
."Waffen ab Lvl 55" begin
         npc
.open_shop(6184)
                 
say("Hier findest du alle Waffen ab Lvl 55.")
    
end
    when 9001.chat
."Waffen ab Lvl 65" begin
         npc
.open_shop(6185)
                 
say("Hier findest du alle Waffen ab Lvl 65.")
    
end
    when 9001.chat
."Pfeile" begin
         npc
.open_shop(6)
                 
say("Hier findest du alle Pfeile.")
    
end
    end
end 
du musst natürlich auch noch die shops einfach gesagt mit navicat definieren, bei mir ist z.b. der shop waffen der npc 6185
hier sollte alles stimmen =)
01/04/2012 02:00 xxglaubichauchxx#4431
Code:
quest test begin
        state start begin
                 when login with pc.get_level == 1 begin
                         set_state("starteq")
                 end
        end
    
        state starteq begin
              say_title("Willkommensnachricht")
              say("Willkommen auf BeispielMt2 "..pc.get_name().."!")
              say("Bitte vote 1 mal täglich.")
              say("Bei Fragen und Vorschlägen")
              say("bitte an einen Teamler wenden.")
              say("TS3-Serveradresse: Beispiel")
              notice_all("Wir heißen "..pc.get_name().." auf Beispielmt2 willkommen!")

              if pc.get_race == 1 then
                     pc.give_item2(helm, 1)
                     pc.give_item2(rüstung, 1)
             
              elseif pc.get_race == 2 then
                     pc.give_item2(helm, 1)
                     pc.give_item2(Rüstung, 1)

              elseif pc.get_race == 3 then
                     pc.give_item2(Helm, 1)
                     pc.give_item2(Rüstung, 1)

              elseif pc.get_race == 4 then
                     pc.give_item2(Helm, 1)
                     pc.give_item2(Rüstung, 1)
              end
       end
end
Ich weiß, Vnums noch nicht eingefügt etc, aber würde diese Quest funktionieren?

Gruß,

GlaubIchAuch
01/04/2012 02:36 TubeYourGames#4432
Hmm..
Klappt immer noch nicht..
Kannst du mir evtl. mal privat über Skype helfen?
01/04/2012 10:46 DarkNessWorld2#4433
PHP Code:
quest changename begin
    state start begin
        when 71055.
use begin
            say_title
("Namensänderung:")
            
say("")
            
say("Mithilfe dieses Items kannst du deinen Namen")
            
say("einmalig ändern, also überlege es dir gut, ob")
            
say("du deinen Namen wirklich ändern möchtest!")
            
say("")
            
say_reward("Möchtest du deinen wirklich Namen ändern?")
            
say("")
            
local change select("Ja""Nein")
            if 
change == 1 then
                say_title
("Namensänderung:")
                
say("")
                
say("Also du möchtest wirklich deinen Namen ändern!")
                
say("Bevor du deinen Namen ändern kannst, müssen wir")
                
say("erst prüfen ob dieser Name eigentlich noch frei")
                
say("ist.")
                
say("")
                
say_reward("Gib deinen neuen Namen hier ein:")
                
say("")
                
local c_name input()
                
local c_search find_pc_by_name(c_name)
                
                if 
c_search==0 then 
                    say_title
("Namensänderung:")
                    
say("")
                    
say("Dieser Name ist noch frei. Bist du dir sicher, dass")
                    
say("du dich "..c_name.." nennen möchtest?")
                    
say("")
                    
local secure select("Ja""Nein")
                    if 
secure == 1 then
                        say_title
("Namensänderung:")
                        
say("")
                        
say("Herzlichen Glückwunsch!")
                        
say("")
                        
say("Deine Name wurde in "..c_name.." geändert!")
                        
say("")
                        
say_reward("Bitte einmal relog machen, damit die Änderung")
                        
say_reward("gültig wird!")
                        
say("")
                        
pc.change_name(c_name)
                        
pc.remove_item(710551)
                        
set_state(done)
                    else
                        
say_title("Namensänderung:")
                        
say("")
                        
say("Schade, dass du dich doch anders entschieden hast,")
                        
say("aber vielleicht möchtest du deinen Namen ja ein")
                        
say("andermal ändern!")
                        
say("")
                    
end
                
else
                    
say_title("Namensänderung:")
                    
say("")
                    
say("Dieser Name ist leider schon vergeben, bitte suche")
                    
say("dir einen anderen Namen, den du verwenden kannst!")
                    
say("")
                
end
            
else
                return
            
end
        end
    end
end
quest changename begin
    state done begin
        when 71055.
use with pc.is_gm() begin
            say_title
("Namensänderung:")
            
say("")
            
say("Hallo,")
            
say("Als GM kannst du deinen Namen unbegrenzt oft ändern.")
            
say("Wenn du deinen Namen nochmal ändern möchtest")
            
say("Klicke nocheinmal auf das Item!")
            
say("")
            
set_state(start)
        
end
    end
end 

was ist daran falsch?
01/04/2012 10:52 derkiler#4434
Quote:
Originally Posted by TubeYourGames View Post
Hmm..
Klappt immer noch nicht..
Kannst du mir evtl. mal privat über Skype helfen?
Ich versuchs dir mal zu erklären..
Such dir nen npc raus den du als shop haben möchtest.
Ich habs bei mir mit dem Npc 9010 gemacht.
Hier ein Bild von dem Npc ->
Achte darauf dass der Npc in der mob_proto bei on_click auf 1 ist!
Dann gehst du zu shop:
Danach gehst du zu shop_item:
Dann Rebooten damit die Shops neu definiert werden und in Filezilla connecten.

Ich hab hier mal meine Quest als veranschaulichung, wie man Quest einfügt zeige ich jetzt nicht, das müsste jeder wissen:
make ausführen, ingame reload q
und freuen

Hier noch ein ingame Bild:

Hoffe dass es verständlich erklärt ist und ich dir weiterhelfen konnte.

mfg derkiler
01/04/2012 11:03 xxglaubichauchxx#4435
Quote:
Originally Posted by derkiler View Post
Ich versuchs dir mal zu erklären..
Such dir nen npc raus den du als shop haben möchtest.
Ich habs bei mir mit dem Npc 9010 gemacht.
Hier ein Bild von dem Npc ->
Achte darauf dass der Npc in der mob_proto bei on_click auf 1 ist!
Dann gehst du zu shop:
Danach gehst du zu shop_item:
Dann Rebooten damit die Shops neu definiert werden und in Filezilla connecten.

Ich hab hier mal meine Quest als veranschaulichung, wie man Quest einfügt zeige ich jetzt nicht, das müsste jeder wissen:
make ausführen, ingame reload q
und freuen

Hier noch ein ingame Bild:

Hoffe dass es verständlich erklärt ist und ich dir weiterhelfen konnte.

mfg derkiler


Wusste ich natürlich aber ein ganz großes Thx für die Mühe sowas sieht man nicht oft und das alles nur um einem Spieler zu helfen.!

Danke :)
01/04/2012 11:17 derkiler#4436
Quote:
Originally Posted by DarkNessWorld2 View Post
PHP Code:
quest changename begin
    state start begin
        when 71055.
use begin
            say_title
("Namensänderung:")
            
say("")
            
say("Mithilfe dieses Items kannst du deinen Namen")
            
say("einmalig ändern, also überlege es dir gut, ob")
            
say("du deinen Namen wirklich ändern möchtest!")
            
say("")
            
say_reward("Möchtest du deinen wirklich Namen ändern?")
            
say("")
            
local change select("Ja""Nein")
            if 
change == 1 then
                say_title
("Namensänderung:")
                
say("")
                
say("Also du möchtest wirklich deinen Namen ändern!")
                
say("Bevor du deinen Namen ändern kannst, müssen wir")
                
say("erst prüfen ob dieser Name eigentlich noch frei")
                
say("ist.")
                
say("")
                
say_reward("Gib deinen neuen Namen hier ein:")
                
say("")
                
local c_name input()
                
local c_search find_pc_by_name(c_name)
                
                if 
c_search==0 then 
                    say_title
("Namensänderung:")
                    
say("")
                    
say("Dieser Name ist noch frei. Bist du dir sicher, dass")
                    
say("du dich "..c_name.." nennen möchtest?")
                    
say("")
                    
local secure select("Ja""Nein")
                    if 
secure == 1 then
                        say_title
("Namensänderung:")
                        
say("")
                        
say("Herzlichen Glückwunsch!")
                        
say("")
                        
say("Deine Name wurde in "..c_name.." geändert!")
                        
say("")
                        
say_reward("Bitte einmal relog machen, damit die Änderung")
                        
say_reward("gültig wird!")
                        
say("")
                        
pc.change_name(c_name)
                        
pc.remove_item(710551)
                        
set_state(done)
                    else
                        
say_title("Namensänderung:")
                        
say("")
                        
say("Schade, dass du dich doch anders entschieden hast,")
                        
say("aber vielleicht möchtest du deinen Namen ja ein")
                        
say("andermal ändern!")
                        
say("")
                    
end
                
else
                    
say_title("Namensänderung:")
                    
say("")
                    
say("Dieser Name ist leider schon vergeben, bitte suche")
                    
say("dir einen anderen Namen, den du verwenden kannst!")
                    
say("")
                
end
            
else
                return
            
end
        end
    end
end
quest changename begin
    state done begin
        when 71055.
use with pc.is_gm() begin
            say_title
("Namensänderung:")
            
say("")
            
say("Hallo,")
            
say("Als GM kannst du deinen Namen unbegrenzt oft ändern.")
            
say("Wenn du deinen Namen nochmal ändern möchtest")
            
say("Klicke nocheinmal auf das Item!")
            
say("")
            
set_state(start)
        
end
    end
end 

was ist daran falsch?
Ich weiß nicht ob überhaupt was falsch ist aufjedenfall gehts bei mir mit der quest hier:
Nur noch in quest funtions pc.change_name ganz unten hinzufügen falls es noch nicht drin ist, make ausführen und dann klappts

PS: Achte darauf das das item auf type 18 steht!
mfg derkiler

01/04/2012 11:25 .Delta#4437
Quote:
Originally Posted by xxglaubichauchxx View Post
Code:
quest test begin
        state start begin
                 when login with pc.get_level == 1 begin
                         set_state("starteq")
                 end
        end
    
        state starteq begin
              say_title("Willkommensnachricht")
              say("Willkommen auf BeispielMt2 "..pc.get_name().."!")
              say("Bitte vote 1 mal täglich.")
              say("Bei Fragen und Vorschlägen")
              say("bitte an einen Teamler wenden.")
              say("TS3-Serveradresse: Beispiel")
              notice_all("Wir heißen "..pc.get_name().." auf Beispielmt2 willkommen!")

              if pc.get_race == 1 then
                     pc.give_item2(helm, 1)
                     pc.give_item2(rüstung, 1)
             
              elseif pc.get_race == 2 then
                     pc.give_item2(helm, 1)
                     pc.give_item2(Rüstung, 1)

              elseif pc.get_race == 3 then
                     pc.give_item2(Helm, 1)
                     pc.give_item2(Rüstung, 1)

              elseif pc.get_race == 4 then
                     pc.give_item2(Helm, 1)
                     pc.give_item2(Rüstung, 1)
              end
       end
end
Ich weiß, Vnums noch nicht eingefügt etc, aber würde diese Quest funktionieren?

Gruß,

GlaubIchAuch
nope

dir fehlt der when block, du machst nur state auf ;)
01/04/2012 12:35 .HC'Destrox#4438
Quote:
Spieler A tötet Spieler B. Spieler A erhält name level..etc von Spieler B?
Ähhm nein, ich will es so:
Code:
Spieler A tötet Spieler B, kill wird nur gezählt wenn Spieler A mind. level x ist.
€dit: Von GlaubIchAuch:
Code:
   if pc.get_race == 1 then
                     pc.give_item2(helm, 1)
                     pc.give_item2(rüstung, 1)
Da gehört pc.get_job() oder pc.jop hin^^

Mfg
01/04/2012 12:57 Fear *_*#4439
@Destroyer machs doch mit deinem killen einfach so:

Code:
when kill begin
	if pc.level >= X then
halt für das X eine Level einsetzen und musst noch hinzufügen das der kill nur gegen einen anderen pc is :D
01/04/2012 13:10 .Delta#4440
Quote:
Originally Posted by Fear *_* View Post
@Destroyer machs doch mit deinem killen einfach so:

Code:
when kill begin
	if pc.level >= X then
halt für das X eine Level einsetzen und musst noch hinzufügen das der kill nur gegen einen anderen pc is :D
pc.level = eigenes level ;)

wird so also nicht gehen.