Pferdequest/Pferde

08/01/2012 12:12 II=ExclusivE=II#1
MoInSeLcHeN
Wieder komme ich, mit einem Problem zu Euch, wo Ich mir die Zähne ausbeiße.
Es handelt Sich um eine Quest, die auf meinem FTP-Server liegt.
Mithilfe dieser Quest, kann man seinem Pferd, einen neuen Namen geben. Allerdings benötigt man dafür nicht das Item "Pferdezucker"

Wenn ich aber, das Item Pferdezucker in meinem Inventar habe, und mein Pferd umbennene, verschwindet das Item. So solls ja auch sein!
Aber wie gesagt, ich Kann meinem Gaul beliebig oft, neue Namen geben, unabhängig davon, ob Ich nun Pferdezucker habe oder nicht.

Hier die Quest
Der teil, der Interessant ist, und mit dem Namen des Pferdes zu tun hat, ist Makiert.

Jetzt stellt sich mir natülich die Frage. Was genau muss Ich an dieser quest verändern, damit man wirklich das Item benötigt?
villeicht können mir hier ein paar Questwriter weiter helfen. Ich kriegs nich aufn Schirm. -,-

Und hier Gleich noch ein Problem an dem Ihr euch wahrscheinlich auch die Zähne ausbeissen werdet! (Glaube ich zumindest)

Wenn Ich meinen Gaul rufe, ist alles okay, schicke ich meinen Gaul aber weg und Porte mich, ist mein Gaul, ohne das Ich das Item also mein Millitärpferdebuch benutzt habe, wieder da!

Ich kriegs einfach nicht aufn Schirm, wie ich diesen Bug behoben kriege. Der Gault taucht auch auf, wenn Ich ihn weg schicke, mich auslogge, und wieder einlogge, BUM isser wieder da, ohne das ich mein Buch benutzt habe.

Wenn es euch bei der problemlösung, beider Probleme hilft, ich benutze folgende Serverfiles.

Ich hoffe Ihr könnt mir helfen!
Bis jeztt wurde mir hier Immer geholfen, und ich denke mal, auch hier, wird Eure Intiligenz, und euer wissen, euch nicht im stich lassen!

Ich freue Mich auf jede Antwort.
Mit freundlichen Grüßen
08/01/2012 12:47 xXKimariXx#2
Hier die pferdezucker quest:
08/01/2012 12:56 II=ExclusivE=II#3
Quote:
Hier die pferdezucker quest:
Danke! werd es gleich testen, und wenn es Funktioniert, kriegst du ein Dick gemeintes Thanks!

EDIT
Es hat leider nicht Funktioniert. Ich habe es genauso eingetragen, wie es da stant.
Leider ohne erfolg. ..

Hat hier sonst niemand Ideen >.> ?
08/01/2012 13:36 DasSchwarzeT#4
Du hast keine Abfrage ob die Person ein Pferdezucker im Inventar hat!
PHP Code:
if pc.count_item(71110) >= 1 then 
Das ist die Abfrage und muss vor:

PHP Code:
elseif == 5 then
local old_horse_name 
horse.get_name() ;
say_title("Pferdename")
say("Du kannst du deinem Pferd einen neuen")
say("Namen geben. Somit wird es einzigartig")
say("und bietet dir besseren Schutz.")
if 
string.len(old_horse_name) == 0 then
say_reward
("Dein Pferd besitzt noch keinen Namen.")
else
say_reward("Der momentane Name deines Pferdes lautet "..old_horse_name..".")
end
say
("Gib den neuen Pferdenamen ein.")
local horse_name input()
if 
string.len(horse_name) < 2 then
say_title
("Pferdename")
say("Der Name ist zu kurz.")
say("")
return
elseif 
string.len(horse_name) > 12 then
say_title
("Pferdename")
say("Der Name ist zu lang.")
say("")
return
end
local ret 
horse.set_name(horse_name)
say_title("Pferdename")
if 
ret == 0 then
say_reward
("Du hast momentan kein Pferd!")
say("")
elseif 
ret == 1 then
say_reward
("Du kannst diesen Namen nicht benutzen!")
say("")
elseif 
ret == 2 then
pc
.remove_item("71110")
say("Du hast deinem Pferd einen neuen Namen gegeben!")
say("")
end
end
end
end 
und ans ende:
PHP Code:
elseif say(du benötigst das item pferdezucker
08/01/2012 13:49 xXKimariXx#5
So und nicht anders :
PHP Code:
quest horse_menu begin
state start begin
function horse_menu()
if 
horse.is_mine() then
say_title
("Pferdehandbuch")
say("Das Handbuch für das Pferd")
say("")
local s 6
if horse.is_dead() then
select"Zurückholen des Pferde""Das Pferd zurück geben""Schließen")
if 
== 1 then s 0
elseif == 2 then s 3
elseif == 3 then return
end
else
select(
"Pferd füttern""Pferd reiten""Das Pferd zurückgeben""Status des Pferdes anzeigen"
"Pferd einen Namen geben""Schließen")
end
if == 0 then
horse
.revive()
elseif 
== 1 then
local food 
horse.get_grade() + 50054 1
if pc.countitem(food) > 0 then
pc
.removeitem(food1)
horse.feed()
else
say("Das Item "..item_name(food).." wird benötiogt.")
say("")
end
elseif == 2 then
horse
.ride()
elseif 
== 3 then
horse
.unsummon()
elseif 
== 4 then
say_title
("Pferdestatus")
say("Momentane Lebenspunkte des Pferdes: "..horse.get_health_pct().."%")
say("Momentane Ausdauer des Pferdes: "..horse.get_stamina_pct().."%")
say("")
elseif 
== 5 then    
    
if pc.count_item(71110) >= 1 then
        local old_horse_name 
horse.get_name() ;
        
say_title("Pferdename")
        
say("Du kannst du deinem Pferd einen neuen")
        
say("Namen geben. Somit wird es einzigartig")
        
say("und bietet dir besseren Schutz.")
            if 
string.len(old_horse_name) == 0 then
                say_reward
("Dein Pferd besitzt noch keinen Namen.")
            else
                
say_reward("Der momentane Name deines Pferdes lautet "..old_horse_name..".")
            
end
            say
("Gib den neuen Pferdenamen ein.")
            
local horse_name input()
            if 
string.len(horse_name) < 2 then
                say_title
("Pferdename")
                
say("Der Name ist zu kurz.")
                
say("")
            return
            elseif 
string.len(horse_name) > 12 then
                say_title
("Pferdename")
                
say("Der Name ist zu lang.")
                
say("")
                return
            
end
            local ret 
horse.set_name(horse_name)
            
say_title("Pferdename")
                if 
ret == 0 then
                    say_reward
("Du hast momentan kein Pferd!")
                    
say("")
                elseif 
ret == 1 then
                    say_reward
("Du kannst diesen Namen nicht benutzen!")
                    
say("")
                elseif 
ret == 2 then
                    pc
.remove_item(711101)
                    
say("Du hast deinem Pferd einen neuen Namen gegeben!")
                    
say("")
                
end
            end
        end
    
else
        
say_title("Pferdezucker")
        
say("Du benötigst Pferdezucker")
    
end
end

when 20030.click begin horse_menu
.horse_menu() end
when 20101.click begin horse_menu
.horse_menu() end
when 20102.click begin horse_menu
.horse_menu() end
when 20103.click begin horse_menu
.horse_menu() end
when 20104.click begin horse_menu
.horse_menu() end
when 20105.click begin horse_menu
.horse_menu() end
when 20106.click begin horse_menu
.horse_menu() end
when 20107.click begin horse_menu
.horse_menu() end
when 20108.click begin horse_menu
.horse_menu() end
when 20109.click begin horse_menu
.horse_menu() end
end
end 
08/01/2012 14:01 II=ExclusivE=II#6
Quote:
und ans ende:
PHP-Code:
elseif say(du benötigst das item pferdezucker)
Wenn ich das ans ende meiner Quest einfüge, also Spirch:

Kommt bei mir in der Konsole, folgender error code:

Gebe ich allerdings das ein, was xXKimariXx gesagt hat also:
Dann öffnet sich Gar kein fenster wo steht, das man Pferdezucker benötigt. Was nun :/ ?

EDIT
Ich habe auch schon versucht das ein zu geben:
Quote:
elseif ret == 3 then
aber da Passiert auch nicht's
08/01/2012 14:04 xXKimariXx#7
Quote:
Dann öffnet sich Gar kein fenster wo steht, das man Pferdezucker benötigt. Was nun :/ ?
Das fenster kommt nur wenn du KEINEN pferdezucker im inventar hast
08/01/2012 14:15 II=ExclusivE=II#8
Quote:
Das fenster kommt nur wenn du KEINEN pferdezucker im inventar hast
Ja, eben nicht :/ Ich gebe es so ein wie es bei dir steht! es funktioniert auch top!
Wirklich es funtzt!

Einzigstes problem. WENN ich kein Pferdezucker habe, mein Gaul anklicke, und auf Pferdename klicke, öffnet sich KEIN fenster wo steht: Du benötigst Pferdezucker.

Es sieht nur kurz so aus als würde sich ein fenster öffnen, und dann gehen die Schwarzen balken oben wieder weg, und nichts is passirt.

Ich denke es ist weil guck mal hier steht:

Das sagt der Quest, glaube ich zumindest, wenn ich Keinen pferdezucker in meinem Inventar habe, Dann lässt sich das Fenster also die Menüauswahl "Pferdezucker" garnicht erst öffnen, alle andere Menüpunkte aber doch.

Ich glaube der Befehl
Quote:
if pc.count_item(71110) >= 1 then
Muss hier hin, bin mir aber nicht sicher:

Bin mir aber wie gesagt nicht sicher.
08/01/2012 14:24 xXKimariXx#9
08/01/2012 14:39 II=ExclusivE=II#10
Quote:
xXKimariXx
wenn du magst, adde mich bei Skype, und ich zeig dir das problem, per Bildschirmübertragung.

Skype_addy

EDIT
Weil es Funktioniert immer noch nicht .. >.>
Und falsch machen tue ich auch nicht's.