[SERVICE] Die Questkontrolle

01/03/2015 20:37 PRoTHoRaX#10801
Hallo Community,
Ich check grad nicht ganz wie ich Rüstungen, Helme, Schilder, Armbänder, Schuhe und Ohrringe als "Drops" für die Lehrlingstruhe einstellen kann.

Wo muss ich das einfügen?

01/03/2015 22:10 Rofelmau#10802
Quote:
Originally Posted by PRoTHoRaX View Post
Hallo Community,
Ich check grad nicht ganz wie ich Rüstungen, Helme, Schilder, Armbänder, Schuhe und Ohrringe als "Drops" für die Lehrlingstruhe einstellen kann.

Wo muss ich das einfügen?

Hab dir das mal geschrieben
du musst jetzt nur noch oben und zwar in diesem teil
PHP Code:
local item_vnum 10 --Schwert+
            local ruestung_vnum 
=   
            
local helm_vnum =
            
local schild_vnum 
            
local armband_vnum =
            
local ohrringe_vnum =
            
local halskette_vnum =
            
local schuhe_vnum =
            if 
pc.get_job() == 1 then 
                item_vnum 
1000 --Dolche+
                ruestung_vnum 
=
                
helm_vnum =
            elseif 
pc.get_job() == 2 then                 
                item_vnum 
10   --Schwert+
                ruestung_vnum 
=
                
helm_vnum =
            elseif 
pc.get_job() == 3 then 
                item_vnum 
7000 --Fächer+
                ruestung_vnum 
=
                
helm_vnum =
            
end 
Die jewaligen vnum's hitner das "=" setzen
ach und übrigens pc.get_job() == 1 steht für ninjas, also dadrunter kommen die ninja items
pc.get_job == 2 ist für suras, also dadrunter die sura items
pc.get_job() == 3 steht für schmanen und bei dem ersten einfach alles für Kkrieger eintragen, also helm und rüssi weil schild schuhe armband kette und ohringe sind ja immer gleich für alle Rassen
01/03/2015 22:59 PRoTHoRaX#10803
Quote:
Originally Posted by Rofelmau View Post
Hab dir das mal geschrieben
du musst jetzt nur noch oben und zwar in diesem teil
PHP Code:
local item_vnum 10 --Schwert+
            local ruestung_vnum 
=   
            
local helm_vnum =
            
local schild_vnum 
            
local armband_vnum =
            
local ohrringe_vnum =
            
local halskette_vnum =
            
local schuhe_vnum =
            if 
pc.get_job() == 1 then 
                item_vnum 
1000 --Dolche+
                ruestung_vnum 
=
                
helm_vnum =
            elseif 
pc.get_job() == 2 then                 
                item_vnum 
10   --Schwert+
                ruestung_vnum 
=
                
helm_vnum =
            elseif 
pc.get_job() == 3 then 
                item_vnum 
7000 --Fächer+
                ruestung_vnum 
=
                
helm_vnum =
            
end 
Die jewaligen vnum's hitner das "=" setzen
ach und übrigens pc.get_job() == 1 steht für ninjas, also dadrunter kommen die ninja items
pc.get_job == 2 ist für suras, also dadrunter die sura items
pc.get_job() == 3 steht für schmanen und bei dem ersten einfach alles für Kkrieger eintragen, also helm und rüssi weil schild schuhe armband kette und ohringe sind ja immer gleich für alle Rassen

Hab jetzt alles bearbeitet und bekomme diesen Fehler:
[Only registered and activated users can see links. Click Here To Register...]

hier die Quest:

Greetz, PRoTHoRaX
01/03/2015 23:19 Rofelmau#10804
hm probier es mal so
01/03/2015 23:39 PRoTHoRaX#10805
Quote:
Originally Posted by Rofelmau View Post
hm probier es mal so
Jetzt sagt er mir:
when doesn't have begin-end clause. (()
Lehrlingstruhen.quest:3: Error occured on compile Lehrlingstruhen.quest
01/03/2015 23:55 .Delta#10806
Zeile 3, war falsch.
PHP Code:
quest truhen_zero begin  
    state start begin  
        when login 
or levelup with pc.get_level() >= 1 begin 
            set_state
(truhen
        
end 
    end 
    state truhen begin 
        when 50187.
use begin 
            local item_vnum 
19 --Schwert+
            local ruestung_vnum 
11209 --Mönchsplattenpanzer+9  
            local helm_vnum 
12209 --Traditioneller Helm+9
            local schild_vnum 
13009 --Schlachtschild+9
            local armband_vnum 
14009 --Holzarmband+9
            local ohrringe_vnum 
17009 --Holzohrringe+9
            local halskette_vnum 
16009 --Holzhalskette+9
            local schuhe_vnum 
15009 --Lederschuhe+9
            
if pc.get_job() == 1 then 
                item_vnum 
1009 --Dolche+
                ruestung_vnum 
11409 --Azuranzug+9
                helm_vnum 
12349 --Lederkapuze
            
elseif pc.get_job() == 2 then                 
                item_vnum 
19 --Schwert+
                ruestung_vnum 
11609 --Requiem-Plattenpanzer+9
                helm_vnum 
12489 --Blutiger Helm
            
elseif pc.get_job() == 3 then 
                item_vnum 
7009 --Fächer+
                ruestung_vnum 
11809 --Purpurkleidung+9
                helm_vnum 
12629 --Mönchshut+9
            end 
            pc
.give_item2(item_vnum) --lvl 1er waffe je nach rasse 
            pc
.give_item2(helm_vnum)
            
pc.give_item2(ruestung_vnum)
            
pc.give_item2(schild_vnum
            
pc.give_item2(armband_vnum)
            
pc.give_item2(ohrringe_vnum)
            
pc.give_item2(halskette_vnum)
            
pc.give_item2(schuhe_vnum)
            
pc.give_item2(27003200) --Roter Trank (G)
            
pc.give_item2(27006200) --Blauer Trank (G)
            
pc.give_item2(727231) --Elixier der Sonne(K
            
pc.give_item2(727271) --Elixier des Mondes(K
            
pc.give_item2(2711220)  --Grüner Trank(K
            
pc.give_item2(2711320)  --Violetter Trank(K)
            
pc.give_item2(700071) --Warpring
            pc
.give_item2(711241) --Löwe
            pc
.give_item2(70038200) --Tapferkeitsumhänge
            pc
.give_item2(500531) --Militärpferdebuch
            pc
.give_item2(3902920) --Gegenstand Verstärken
            pc
.give_item2(3902820) --Gegenstand Verzaubern
            pc
.give_item2(501881) --Lehrlingstruhe II
            pc
.remove_item(501871) --Lehrlingstruhe I verschwindet 
        end  
        when 50188.
use with pc.get_level() >= 10 begin  
            pc
.give_item2(727231)  --Elixier der Sonne (K
            
pc.give_item2(271113)  --Grüner Trank(M)  
            
pc.give_item2(271133)  --Geschwindigkeits Trank(K
            
pc.give_item2(760083)  --Medaille des Drachen  
            pc
.give_item2(501891)  --Lehrlingstruhe III 
            pc
.remove_item(501881) --Lehrlingstruhe II verschwindet 
        end  
        when 50189.
use with pc.get_level() >= 20 begin  
            pc
.give_item2(727271)  --Elixier des Mondes (K
            
pc.give_item2(271113)  --Grüner Trank(M
            
pc.give_item2(271133)  --Geschwindigkeits Trank(K)  
            
pc.give_item2(760061)  --Kompass des Metinsteins  
            pc
.give_item2(760243)  --Grüner Zauber 
            pc
.give_item2(760253)  --Grüne Stärke 
            pc
.give_item2(501901)  --Expertentruhe I 
            pc
.remove_item(501891) --Lehrlingstruhe III verschwindet 
        end  
        when 50190.
use with pc.get_level() >= 30 begin  
            pc
.give_item2(271133)  --Geschwindigkeits Trank(K)  
            
pc.give_item2(271123)  --Trank des Angriffs 
            pc
.give_item2(250405)  --Segenschriftrollen 
            pc
.give_item2(700031)  --Buch des Anführers             
            pc
.give_item2(501911)  --Expertentruhe II 
            pc
.remove_item(501901) --Expertentruhe I verschwindet 
        end  
        when 50191.
use with pc.get_level() >= 40 begin  
            pc
.give_item2(711013)  --Trank der Hast 
            pc
.give_item2(271123)  --Trank des Angriffs 
            pc
.give_item2(711531)  --Trank der Weisheit 
            pc
.give_item2(700031)  --Buch des Anführers 
            pc
.give_item2(501921)  --Expertentruhe III 
            pc
.remove_item(501911) --Expertentruhe II verschwindet 
        end  
        when 50192.
use with pc.get_level() >= 50 begin  
            pc
.give_item2(711013)  --Trank der Hast 
            pc
.give_item2(271123)  --Trank des Angriffs 
            pc
.give_item2(7003820)  --Tapferkeitsümhänge 
            pc
.give_item2(710955)  --Passierschein 
            pc
.give_item2(700581)  --Teleportationsring 
            pc
.give_item2(501931)  --Meistertruhe I 
            pc
.remove_item(501921) --Expertentruhe III verschwindet 
        end  
        when 50193.
use with pc.get_level() >= 60 begin  
            pc
.give_item2(710323)  --Schriftrolle des Drachen 
            pc
.give_item2(711013)  --Trank der Hast 
            pc
.give_item2(271123)  --Trank des Angriffs 
            pc
.give_item2(760005)  --Pfirsichblütenwein 
            pc
.give_item2(501941)  --Meistertruhe II 
            pc
.remove_item(501931) --Meistertruhe I verschwindet 
        end  
        when 50194.
use with pc.get_level() >= 70 begin 
            pc
.give_item2(711013)  --Trank der Hast 
            pc
.give_item2(271123)  --Trank des Angriffs 
            pc
.give_item2(760012)  --Status-Neuverteilung 
            pc
.give_item2(710843)  --Gegenstand verstärken 
            pc
.give_item2(710853)  --Gegenstand verzaubern 
            pc
.give_item2(501951)  --Meistertruhe III 
            pc
.remove_item(501941) --Meistertruhe II verschwindet 
        end  
        when 50195.
use with pc.get_level() >= 80 begin 
            pc
.give_item2(711013)  --Trank der Hast 
            pc
.give_item2(271123)  --Trank des Angriffs 
            pc
.give_item2(727281)  --Elixier des Mondes (M
            
pc.give_item2(727283)  --Elixier des Forschers 
            pc
.give_item2(501961)  --Großmeistertruhe 
            pc
.remove_item(501951) --Meistertruhe III verschwindet 
        end  
        when 50196.
use with pc.get_level() >= 90 begin 
            pc
.give_item2(390041)  --Segenskugel 
            pc
.give_item2(727241)  --Elixier der Sonne (M
            
pc.give_item2(760103)  --Blutstein 
            pc
.give_item2(303193)  --Schrumpfkopf 
            pc
.give_item2(501271)  --Grüne Zaubertruhe 
            pc
.remove_item(501961) --Großmeistertruhe verschwindet 
        end  
    end  
end 
01/04/2015 00:00 PRoTHoRaX#10807
@.Delta hat geklappt :D

Thx button raped.

Danke!!!!

Edit:
hab die quest compiled und ingame /reload q eingegeben.
jedoch bekomme ich bei neuem login mit neuem char keine truhe

hab ich etwas vergessen?
01/05/2015 09:44 .Boa Hancock#10808
Was ist hier falsch?

Quest
Code:
quest cube2 begin
    state start begin
		when 20383.chat."Crafting" begin 
			say_title("Kim-Seong: ")
				if pc.get_level() < 50 then
				say("")
				return
			end
				else
			say_title("Kim-Seong: ")				
				say("")
				say("")
				say("")
				say("")
				say("")
				say("")
				say("")
				say("")
				wait()
				setskin(NOWINDOW)
				command("cube open")
			end
		end
	end
end
Error
Code:
cube2.quest:26:syntax error : [string "start"]:6: <eof> expected near `else'
Error occured on compile cube2.quest
01/05/2015 11:37 .Delta#10809
Joa Du gibst ihm nie eine Truhe ;)
--------------------------------------------------------------------------
If Bedingung zu früh geschlossen, dein else hing in der Luft ;)
01/06/2015 10:36 rollback#10810
PHP Code:
quest beispiel begin
    state start begin
        when login begin
            local beispiel_query 
mysql_query("SELECT * FROM ...")
        
end
        when ___
.use begin
            say
("".. beispiel_query .."")
        
end
    end
end 
Wann wird die Abfrage ausgeführt? Beim Login oder beim Benutzen des Items?
Falls es erst beim Benutzen des Items ausgeführt wird, gibt es eine Möglichkeit, die Abfrage beim Login auszuführen und später anzuzeigen ... ?
01/06/2015 12:01 .Delta#10811
beispiel_query ist in ___.use block nicht mehr gültig, würde ich sagen :)
Eine local ist meines Wissens nach nur in dem Block gültig, in dem sie deklariert wurde.
01/06/2015 12:33 rollback#10812
Quote:
Originally Posted by .Delta View Post
beispiel_query ist in ___.use block nicht mehr gültig, würde ich sagen :)
Eine local ist meines Wissens nach nur in dem Block gültig, in dem sie deklariert wurde.
Dann also so:
PHP Code:
quest beispiel begin
    state start begin
    local beispiel_query 
mysql_query("SELECT * FROM ...")
        
when ___.use begin
            say
("".. beispiel_query .."")
        
end
    end
end 
Aber wann wird mysql_query ausgeführt? (ausgeführt, nicht angezeigt!)
01/06/2015 14:55 Sp0ngeb0b ist cool#10813
Nope dann wird mysql nicht ausgeführt, da der compiler meckern wird ;)
Bei deiner ersten Version wird mysql ausgeführt, kann jedoch wie Delta schon sagte nicht aufgerufen werden, da Variabeln die mit 'local' festgelegt werden eben nur lokal (lokal = im whenblock) gespeichert werden.
Btw: Ich verstehe nicht, warum die query nach jedem login nutzen möchtest, wenn du sie auch direkt bei der nutzung des items ausführen könntest?! Was willste denn machen?
Übrigens: im Questerstellungsthread hast du ein '=' vergessen (pc.get_mapindex() == 62) musst du noch schnell verbessern :P

lg
01/06/2015 17:17 rollback#10814
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
Nope dann wird mysql nicht ausgeführt, da der compiler meckern wird ;)
Bei deiner ersten Version wird mysql ausgeführt, kann jedoch wie Delta schon sagte nicht aufgerufen werden, da Variabeln die mit 'local' festgelegt werden eben nur lokal (lokal = im whenblock) gespeichert werden.
Btw: Ich verstehe nicht, warum die query nach jedem login nutzen möchtest, wenn du sie auch direkt bei der nutzung des items ausführen könntest?! Was willste denn machen?
Übrigens: im Questerstellungsthread hast du ein '=' vergessen (pc.get_mapindex() == 62) musst du noch schnell verbessern :P

lg
Die Quest ist nur ein Beispiel ... ich habe eine Warptool Quest, mit der man Warppunkte speichern kann. Die Quest an sich hat auch keinen Fehler und es funktioniert alles, nur wenn mehrere Spieler gleichzeitig auf "Teleportieren" drücken überschneiden sich teilweise die SELECTs und es kommen falsche Warppunkte zurück ... Deswegen hab ich nach einer Lösung gesucht, womit die SELECT Anweisung nicht so oft ausgeführt werden muss und da war meine erste Idee die:

Beim erstellen eines neuen Warppunktes wird pc.setqf("aktualisieren", 1) gemacht und die Warppunkte werden ausgelesen when login with pc.getqf("aktualisieren") == 1
also so dachte ich mir das ... Ziel ist eben, dass nicht bei jedem klick auf Teleportieren ein SELECT laufen muss...^^
01/06/2015 21:30 °Ace°#10815
Es gibt ein Fehler bei der Quest. Und zwar wenn man den benutzt wie der gecodet ist, funktioniert alles, jedoch wenn man ein Pferd schon level 1,2 oder 3 hat, funktioniert das Item nicht.

PHP Code:
quest givepony begin 
    state start begin 
        when 30024.
use  with horse.get_level() < 1 begin 
            horse
.set_level(11
            
pc.give_item2(500511
            
pc.remove_item(300241
        
end 
    end 
end