[SERVICE] Die Questkontrolle

01/02/2012 06:17 xSanii#4411
PHP Code:
quest dragontemple begin
    state start begin
        when 20087.chat
."Die Drachenoase" begin
            say_title
(""..mob_name(20087).."")
            
say("")
            
say("Wenn du willst kann ich dich sofort,")
            
say("in den Drachnraum bringen.")
            
say("Gib mir einfach 3x")
            
say("")
            
say_item_vnum(50016)
            
say_reward("Rote Bohnenpaste")
            
local s select("Ich möchte rein""Abbrechen")
            if 
== 1 then
                say
("Ich schau eben ob ihr stark genug seit.")
                
say("Ihr seit sicher dass ihr auch alles habt?")
                
local a select("Ja""Nein")
                if 
== 1 then
                    
if pc.count_item(50016) >= 3 then
                    say
("Wunderbar jetzt hast du Rote Bohnenpasten")
                    
say("Aber dir fehlt eine starke Gruppe die dich begleitet.")
                    
say("Suche dir noch mindestens eine Person die dir hilft.")
                    
say("Und komme dann wieder zu mir")
                elseif 
pc.count_item(50016) == 3 then
                    say
("Du hast nur "..pc.count_item(50016).." von 3 benötigten")
                    
say("")
                    
say_item_vnum(50016)
                    
say_reward("Roten Bohnenpasten")
                elseif 
not pc.has_guild() then
                    say_title
(""..mob_name(20087).."")
                    
say("Du bist leider nicht in einer Gruppe.")
                    
say("Suche dir eine Gruppe und komme wieder")
                    
say("Alleine wird es dort zu schwer für dich")
                elseif 
pc.has_guild() and pc.count_item(50016) == 0 then
                    say_title
(""..mob_name(20087).."")
                    
say("Du bist leider nicht in einer Gruppe.")
                    
say("Suche dir eine Gruppe und komme wieder")
                    
say("Alleine wird es dort zu schwer für dich")
                elseif 
pc.has_guild() and pc.count_item(50016) == 0 then
                    say
("Du hast zwar eine Gruppe aber")
                    
say("du hast nur "..pc.count_item(50016).." von 3 benötigten")
                    
say("")
                    
say_item_vnum(50016)
                    
say_reward("Rote Bohnenpaste")
                elseif 
pc.has_guild() and pc.count_item(50016) >= 3 then        
                    say
("Wunderbar , du hast die Roten Bohnenpasten")
                    
say("Und eine Gruppe hast du auch")
                    
say("Viel Glück!")
                    
pc.warp(594000594000)
                    
notice_all (pc.get_name().." versucht mit seiner Gruppe den Drachen zu töten.")
                
end
                
if == 2 then
            end    
            
if == 2 then    
        end
    end
end 

qc in malloc(): error :allocation failed
Eroor occured on compile dargontemple.quest

Wo liegt der fehler ? ...
01/02/2012 11:20 Sp0ngeb0b ist cool#4412
PHP Code:
quest dragontemple begin
    state start begin
        when 20087.chat
."Die Drachenoase" begin
            say_title
(""..mob_name(20087).."")
            
say("")
            
say("Wenn du willst kann ich dich sofort,")
            
say("in den Drachnraum bringen.")
            
say("Gib mir einfach 3x")
            
say("")
            
say_item_vnum(50016)
            
say_reward("Rote Bohnenpaste")
            
local s select("Ich möchte rein""Abbrechen")
            if 
== 2 then
                
return
            
end    
            say
("Ich schau eben ob ihr stark genug seit.")
            
say("Ihr seit sicher dass ihr auch alles habt?")
            
local a select("Ja""Nein")
            if 
== 2 then
                
return
            
end    
            
if pc.count_item(50016) < 3 then
                say
("Du hast nur "..pc.count_item(50016).." von 3 benötigten")
                
say("")
                
say_item_vnum(50016)
                
say_reward("Roten Bohnenpasten")
            
end
            
if pc.has_guild() != 1 then     
                say_title
(""..mob_name(20087).."")
                
say("Du bist leider nicht in einer Gruppe.")
                
say("Suche dir eine Gilde und komme wieder")
                
say("Alleine wird es dort zu schwer für dich")
            
end    
            say
("Wunderbar , du hast die Roten Bohnenpasten")
            
say("Und in einer Gilde bist du auch")
            
say("Viel Glück!")
            
pc.warp(594000594000)
            
notice_all (pc.get_name().." versucht mit seiner Gruppe den Drachen zu töten.")
        
end
    end
end 
du solltest dir den befehl für das prüfen ob der spieler in einer gruppe ist oder nicht heraus suchen
da pc.has_guild() ausgibt ob der spieler in einer gilde ist oder nicht & nicht ob er in einer gruppe ist ;)
(den befehl weiß ich momentan leider nicht :/ )

& bei dem part
if pc.has_guild() != 1 bin ich mir nicht sicher ob man das so schreibt oder
if not pc.has_guild()

wenns nicht klappt musste es mal nach der 2. methode versuchen oder einfach den gruppen prüf befehl einfügen ;)
01/02/2012 11:26 derkiler#4413
Zitat von Mellyx3:

Deine Quest kann so nicht funktionieren, da du das hier:

in
PHP Code:
when 20087.chat."steinstuecktausch" begin 
schreiben müsstest...

Un deine Quest checkt ob du Steinstücke hast


da fehlt jeweils das else

Nehm das, lads hoch und freuen ;)


Nun hierzu:
Zitat von Spongebob ist cool:

Das mit pc.has guild sieht folgendermaßen aus..

PHP Code:
if pc.has_guild() then

--und der andere Befehl

if not pc.has_guild() then 
01/02/2012 12:00 Sp0ngeb0b ist cool#4414
danke kiler ;)

ich denke es wird auch mit zahlen zuordnung funktionieren...ist meistens so :)
01/02/2012 12:07 .HC'Destrox#4415
Hat jemand eine Ahnung zu meiner 1. Frage und zu meiner jetzigen:
Warum kennt der Server (2010er sf) ox.execute net?
01/02/2012 12:17 .Delta#4416
wenn dann ja os.execute oder? o.O

und wenn er die function net findet, dann trag sie doch mal in die quest functions ein.
01/02/2012 14:54 .HC'Destrox#4417
ähh ja mein ich ja :D
hab sie ja in die quest functions eingetragen nur geht sie net...

Oder ist der Code falsch:
Code:
local npc_level = os.execute('mysql player --execute=\\"SELECT `level` FROM `player` WHERE `name`='.."\\'".. npc.get_name() ..'\\"')
Man muss doch iwie das Level des gekillten npc bekommen könn???

MFG
01/02/2012 16:07 LilBenni_-#4418
Hey ich hab ein kleines Problem, unzwar immer wenn ich versuch eine dungeon quest zu writen, und es mich auf die nächste ebene portet seh ich ungefähr für 1 sek mein character und dann werd ich wieder auf map1 geportet <.<

Hier hab ich versucht eine Dt2 quest zu schreiben, beim ersten versuch als ich die make.sh ausgeführt hab gings dann hab ich den run erweitert und dann kam das mit dem map geportet.

01/03/2012 17:39 derkiler#4419
Quote:
Originally Posted by LilBenni_- View Post
Hey ich hab ein kleines Problem, unzwar immer wenn ich versuch eine dungeon quest zu writen, und es mich auf die nächste ebene portet seh ich ungefähr für 1 sek mein character und dann werd ich wieder auf map1 geportet <.<

Hier hab ich versucht eine Dt2 quest zu schreiben, beim ersten versuch als ich die make.sh ausgeführt hab gings dann hab ich den run erweitert und dann kam das mit dem map geportet.

Versuch mal vor dem warp - code ein neuen "d.setf("...",1)" einzufügen, evtl. hilft dir das weiter

PS: Soll das nur eine zweite Quest für den DT sein oder willst du diese Quest für einen zweiten Dämonenturm (welchen du eingebaut hast?)
01/03/2012 19:25 DasKuchen#4420
Ist hier etwas falsch?
PHP Code:
quest Test begin
    state start begin
        when Value
.click begin
            say
("Hmmm,")
            
say("Dort steht ein Spieleautomat.")
            
say("Auf der Anzeige steht 2.000.000 Yang und")
            
say("darunter ist ein Schlitz für Münzen")
            
say("")
            
say("Willst du dort 2.000.000 Yang einwerfen?")
            
say("")
            
local s select("Ja""Nein!")        
            if 
== 2 then
                
return          
            elseif 
== 1 then
            
if pc.money<2000000 then
            say
("Du hast keine 2.000.000 Yang")
            elseif 
pc.money>=2000000 then
                local r
=number(111)
                if 
== 1 then
                say
("Test")
                
pc.changemoney(-2000000)                    
            elseif 
r==2 then 
                say
("Test")
                
pc.changemoney(-2000000)                
            elseif 
r==3 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==4 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==5 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==6 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==7 then 
                say
("Test")
                
pc.changemoney(-2000000)
              elseif 
r==8 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==9 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==10 then 
                say
("Test")
                
pc.changemoney(-2000000)
                
end    
                end
            end
        end
    end
end 
01/03/2012 20:09 Sp0ngeb0b ist cool#4421
PHP Code:
quest Test begin
    state start begin
        when Value
.use begin
            say
("Hmmm,")
            
say("Dort steht ein Spieleautomat.")
            
say("Auf der Anzeige steht 2.000.000 Yang und")
            
say("darunter ist ein Schlitz für Münzen")
            
say("")
            
say("Willst du dort 2.000.000 Yang einwerfen?")
            
say("")
            
local s select("Ja""Nein!")        
            if 
== 2 then
                
return          
            
end
            
if pc.money 2000000 then
                say
("Du hast keine 2.000.000 Yang")
                return
            
end    
            local r
=number(110)
            if 
== 1 then
                say
("Test")
                
pc.changemoney(-2000000)                    
            elseif 
r==2 then 
                say
("Test")
                
pc.changemoney(-2000000)                
            elseif 
r==3 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==4 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==5 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==6 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==7 then 
                say
("Test")
                
pc.changemoney(-2000000)
              elseif 
r==8 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==9 then 
                say
("Test")
                
pc.changemoney(-2000000)
            elseif 
r==10 then 
                say
("Test")
                
pc.changemoney(-2000000)
            
end
        end
    end
end 
;)

ich weiß zwar nicht was du damit vor hast.. :D
aber so wie das aussieht würde ich mit tabeln & schleifen arbeiten ;)
geht schneller, ist wesentlich kürzer, lässt sich ingame besser gestalten & ist proffessionel :)
01/03/2012 23:02 .HC'Destrox#4422
Hat noch wer eine Idee zu meiner Frage??

Mfg
01/03/2012 23:27 Sp0ngeb0b ist cool#4423
Quote:
Originally Posted by Destroyer446 View Post
Hat noch wer eine Idee zu meiner Frage??

Mfg
möchtest du das so haben:

Spieler A tötet Spieler B. Spieler A erhält name level..etc von Spieler B?

oder wie? :p
01/04/2012 00:24 .Colossus.#4424
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
möchtest du das so haben:

Spieler A tötet Spieler B. Spieler A erhält name level..etc von Spieler B?

oder wie? :p
hab das gerade gelesen, da ich gerade selber an ner quest sitze, aber ich frage mich ob man das irgendwie eingrenzen kann, dass nur ein bestimmter levelunterschied herrschen kann und man zeitlich das eingrenzen kann dass man nicht dem gleichen player dk geben kann.

Mfg
.Colossus.
01/04/2012 00:44 TubeYourGames#4425
Hi Leute..
Ich kann die Items nicht kaufen..
PHP Code:
quest multishop begin
state start begin
when 9001.chat
."Krieger - Einhand" begin
say_title
("Helferin:")
say("")
say("Möchtest du den Einhand-Shop öffnen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(50)
else
return
end
end

when 9001.chat
."Krieger - Zweihand" begin
say_title
("Helferin:")
say("")
say("Möchtest du den Zweihand-Shop öffnen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(51)
else
return
end
end 

when 9001.chat
."Ninja - Dolch" begin
say_title
("Helferin:")
say("")
say("Möchtest du den Dolch-Shop öffnen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(52)
else
return
end
end 

when 9001.chat
."Ninja - Bogen" begin
say_title
("Helferin:")
say("")
say("Möchtest du den Bogen-Shop öffnen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(53)
else
return
end
end 

when 9001.chat
."Schamane - Fächer" begin
say_title
("Helferin:")
say("")
say("Möchtest du den Fächer-Shop öffnen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(54)
else
return
end
end 

when 9001.chat
."Schamane - Glocken" begin
say_title
("Helferin:")
say("")
say("Möchtest du den Glocken-Shop öffnen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(55)
else
return
end
end

when 9001.chat
."Sura - Einhand" begin
say_title
("Helferin:")
say("")
say("Möchtest du den Einhand-Shop öffnen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(56)
else
return
end
end


end
end