[SERVICE] Die Questkontrolle

12/10/2010 17:22 AleKsXx#1036
Hey, ich habe ein Problem mit meiner Quest.
Undzwar wollte ich den NPC Koe Pung (VNUM=20093) zum anklicken bringen, aber bin gescheitert.
Mit meiner Quest scheint alles zu stimmen, make.sh zeigt keine Fehler an. Koe Pung ist auf onklick 2 gestellt.
Meine (Zensierte Quest, weil ich nicht will das andere Server meine Idee übernehmen.")
PHP Code:
quest ----- begin
    state start begin
    when 20093.click begin
        local main 
= select("------", "-----", "Schließen")
            if 
main == 1 then
                say_title
("Koe Pung:")
                
say("------------")
                
say("------------")
                
say("------------")
                
say("------------")
                
say("------------")
                
say("------------")
                
say("------------")
            
end
        
            
elseif main == 2 then
                say_title
("Koe Pung:")
                
say("-------")
                
say("-------")
                
say("")
                
say_title("----- ")
                
say_reward("-----------")
                
say_reward("-----------")
                
say_reward("---------- ")
            
end
            
elseif main == 3 then
            end
        end
    end
    end
end 
Ich habe das auch mit dem Befehl:
Code:
when 20093.chat."Blablabla" begin
        say("Blabla")
end
Damit gings auch nicht.
12/10/2010 18:59 »Xc3llênT#1037
PHP Code:
quest ----- begin 
    state start begin 
        when 20093.click begin 
            local main 
= select("------", "-----", "Schließen") 
            if 
main == 1 then 
                say_title
("Koe Pung:") 
                
say("------------") 
                
say("------------") 
                
say("------------") 
                
say("------------") 
                
say("------------") 
                
say("------------") 
                
say("------------") 
            
end 
         
            
if main == 2 then 
                say_title
("Koe Pung:") 
                
say("-------") 
                
say("-------") 
                
say("") 
                
say_title("----- ") 
                
say_reward("-----------") 
                
say_reward("-----------") 
                
say_reward("---------- ") 
            
end 
            
if main == 3 then 
                 
return
            
end 
        end 
    end 
end 
End fehler...
nach einem else kommt kein end.. nur nach if.(Nach elseif auch nicht)
So dürfte es eigendlich klappen. Text einfügen...
P.S: kenne deinen Questnamen nicht.. doch es darf kein " - " drin sein... wenndan _

Best regards.
12/10/2010 19:27 Flasher2#1038
Quote:
Originally Posted by CoreDump View Post
Die befehle: pc.count_item, pc.remove_item, pc.give_item2. ... schreibt man alle mit einem unterstrich.
Die item id's werden ohne " angegeben.
Und wasfür id's sind das??!!
danke für die antwort

ehm ka wollte ids die es 100% noch net gibt ;) xD
hab nähmlich ca 70 neue items in meinem server xDD
12/10/2010 19:31 Endless.#1039
Habe auch ein Problem bei einer Quest..die ich einfügen möchte..
folgendes:

quest backtostadt begin
state start begin
when 30203.use begin
say ("Hallo "..pc.get_name.." !")
say ("Mit diesem Kristall kannst du dich")
say ("zurück zur Stadt teleportieren")
say ("und es kostet dich nichts^^")
say (" ")
say_title ("möchtest du zurück zur Stadt?")
local a = select ("Ja", "Nein")
if a == 1 then
pc.warp(55700,157900)
else
return
end
end
end
end


Diese Quest wurde vom Server zwar nicht mehr gedumped..
aber sie funktioniert nicht.. es passiert nix wenn ich es anclicke..
sie soll dazu dienen ..das ich über diesen kristall immerwieder
in Map1 teleportiert werde..

habe es sowohl mit make.sh ausgeführt als
auch in der Hongkong_List eingefügt..

und dem Item in der Datenbank natürlich den type "18" gegeben..

jetz kann es nur noch an der Quest liegen..

könnt ihr mir BITTE helfen?


Gruß Endless ;)
12/10/2010 19:56 »Xc3llênT#1040
probier mal so:

quest backtostadt begin
state start begin
when 30203.use begin
say ("Hallo "..pc.get_name.." !")
say ("Mit diesem Kristall kannst du dich")
say ("zurück zur Stadt teleportieren")
say ("und es kostet dich nichts^^")
say (" ")
say_title ("möchtest du zurück zur Stadt?")
local a = select ("Ja", "Nein")
if a == 1 then
pc.warp(55700,157900)
if a == 2 then
return
end
end
end
end
end

vielleicht klappt es dann ja c(:
Auch die proto´s usw alle reloaded? Quests natürlich auch?
Keine Sorge... ist wie bei der Polizei :D ich muss das fragen :D
12/10/2010 20:11 Flasher2#1041
Code:
quest backtostadt begin
state start begin
when 30203.use begin
say ("Hallo "..pc.get_name.." !")
say ("Mit diesem Kristall kannst du dich")
say ("zurück zur Stadt teleportieren")
say ("und es kostet dich nichts^^")
say (" ")
say_title ("möchtest du zurück zur Stadt?")
local a = select ("Ja", "Nein")
if a == 1 then
end
pc.warp(55700,157900)
if a == 2 then
return
end
end
end
end
Du hast das end nach
Code:
if a == 1 then 
pc.warp(55700,157900)
vergessen
=D
12/10/2010 20:29 »Xc3llênT#1042
Nops. War dabei^^
Nur ganz unten dran.. nicht zwischen drin...
Da ich grad nicht am PC bin^^
Konnte es nicht mit Notepad++ vernünftig schreiben....
Desswegen sind auch keine Tabulatoren usw drin...

Bitte nicht böse sein :'(
12/10/2010 20:30 Endless.#1043
Also habe die Proto tables reloadet und auch mal rebootet..
naja :P

die Quest sollte so aussehen?

quest backtostadt begin
state start begin
when 30203.use begin
say ("Hallo "..pc.get_name.." !")
say ("rest des text..."
local a = select ("Ja", "Nein")
if 1 == a then
pc.warp(Kords)
end
if 2 == a then
return
end
end
end
end


oder?^^
12/10/2010 20:34 »Xc3llênT#1044
Im Prinzip ja.
Nur möglichst nach say("rest des text" noch die ) c(:
12/10/2010 20:42 Endless.#1045
klappt nicht :(

weil...

quest backtostadt begin
state start begin
when 30203.use begin
say ("Hallo "..pc.get_name.."!")
say ("Mit diesem Kristall kannst du")
say ("dich wieder zurück in die Stadt")
say ("teleportieren und es kostet dich nichts^^")
say (" ")
say_title ("möchtest du zurück zur Stadt?")
local a = select("Ja", "Nein")
if a == 1 then
pc.warp(55700,157900)
if a == 2 then
return
end
end
end
end


dannach nix passiert..wenn ich dieses Item anclicke..
12/10/2010 20:53 »Xc3llênT#1046
kommt eine fehlermeldung?
wenn ja bitte dazu...
Und probier es mal so:

PHP Code:
quest backtostadt begin
    state start begin
        when 30203.
use begin
            say 
("Hallo "..pc.get_name.."!")
            
say ("Mit diesem Kristall kannst du")
            
say ("dich wieder zurück in die Stadt")
            
say ("teleportieren und es kostet dich nichts^^")
            
say (" ")
            
say_reward ("möchtest du zurück zur Stadt?")
            
local a = select("Ja", "Nein")
            if 
a == 1 then
                pc
.warp(55700,157900)
            
end
            
if a == 2 then
                
return
            
end
        end
    end
end 
War auch ein end zuwenig scheinbar...
12/10/2010 21:25 Endless.#1047
Danke^^ ich versuche es dann... hab gerade sau viel um die Ohren^^
wenn etwas ist..poste ich was^^
12/10/2010 22:46 Backboy96#1048
12/10/2010 23:20 »Xc3llênT#1049
PHP Code:
quest shops begin
    state start begin
        when 20095.chat
."Reittiere"with pc.level<=100 begin
            say_title
("Seon-Hae:")
            
say("")
            
say("Ich habe neulich ein paar Tiere gefangen.")
            
say("Sie sind ganz zahm geworden.")
            
say("Wenn du willst kann ich dir eines für 30 Minuten leihen.")
            
local s = select("Ja", "Nein")

            if 
s == 1 then
                npc
.open_shop(7)
            
end
            
if s == 2 then
                
return
            
end
        end

        when 20095.chat
."Drachengott"with pc.level<= 105 begin
            say_title
("Seon-Hae:")
            
say("")
            
say("Ich habe neulich bei einer Expedition etwas gefunden.")
            
say("Ein 8-teiliges, vergoldetes Equipment.")
            
say("Wenn ich mich nicht Irre dann kommt es aus der Schmiede des Drachengottes.")
            
say("Ich kann es dir verkaufen,dass heißt, wenn du es auch bezahlen kannst.")
            
say("HAHAHAHAHA!")
            
local j = select("Ja", "Nein")

            if 
j == 1 then
                npc
.open_shop(3)
            
end
            
if j == 2 then
                
return
            
end
        end

        when 9010.chat
."Waffen des Drachengottes"with pc.level<=100 begin
            say_title
("Seon-Hae:")
            
say("")
            
say("Ich habe neulich bei einer Expedition etwas gefunden.")
            
say("Sehr viele uralte Waffen")
            
say("Wenn ich mich nicht Irre dann kommt es aus der Schmiede des Drachengottes.")
            
say("Ich kann es dir verkaufen, dass heißt, wenn du es auch bezahlen kannst.")
            
say("HAHAHAHAHA!")
            
local d = select("Zweihänder", "Bögen + Dolche", "Fächer + Glocken", "Einhänder I","Einhänder II" "Nein")

            if 
d == 1 then
                npc
.open_shop(17)
            
end
            
if d == 2 then
                npc
.open_shop(18)
            
end
            
if d == 3 then
                npc
.open_shop(19)
            
end
            
if d == 4 then
                npc
.open_shop(20)
            
end
            
if d == 5 then
                npc
.open_shop(21)
            
end
            
if d == 6 then
                
return
            
end
        end
    end 
end 
So dürfte es klappen...

1.
Kleiner Tipp da ich sehe das viele die Probleme mit dem end haben...
Bei aufzählungen, bzw. stellen wo man wählt (local bla = select) immer if bla == 1 benutzen... nicht else ...

ein end kommt immer nach:
-when
-if
-quest blabla begin
-state blabla begin

das wars eigendlich auch...
Mir fällt grad zumindest keiner mehr ein... Wenn ich es sehe wenndann...

-> bla / blabla kann hier beliebig ersetzt werden.
Ist nur um das ganze zu verallgemeinern...

2.
Macht es wie ich mit Tabulatoren an den richtigen stellen...
Das vereinfacht das einfügen der end sehr...

3.
local bla = select...
->bla möglichst immer durch einen anderen Buchstaben / Wort ersetzten, damit alles übersichtlicher wird.

4.
Das erleichtert den Leuten in der Questkontrolle die Arbeit sehr und ihr bekommt die Quests schneller zurück.
Gebt sie als einen Php-Code aus.

Wie das geht? Siehe hier:

["php]
Quest
Quest
Text
Text
Wenn die Quest zuende ist
["/php]

Nach der [ die " weglassen... Also mal mit Runden Klammern... Die dann durch eckige ersetzen.

(php)
Text
Bzw
Quest
(/php)



P.S.: Hoffe das deine Quest so funktioniert.

Best regards.
12/10/2010 23:44 Backboy96#1050
Hi danke für die mühe aber es will einfach nicht der NPC ist immernoch nicht anklickbar und es kommt jetzt sogar der fehler mit dem cores renamed aber ich komme noch rein.
hm naja ich probiers morgen nochmal.
Danke nochmal für die mühe.