[SERVICE] Die Questkontrolle

08/29/2013 12:18 G.I Duke#8881
Quote:
Originally Posted by ΞΠ∪Μ View Post
versuch's mal so
PHP Code:
quest new_skill_group begin 
    state start begin 
        when login 
or levelup with pc.get_level() >= and pc.get_skill_group() == 0 begin
            timer
('new_skill_group',0.5)
        
end
        when new_skill_group
.timer begin
            cleartimer
('new_skill_group')
            
say_title("Lehre auswählen:")
            
local MegaTable={
                {
'"Körperkampflehre", "Mentalkampflehre"',{4,19}},
                {
'"Nahkampflehre", "Fernkampflehre"',{31,48}},
                {
'"Waffenlehre", "Magielehre"',{63,79}},
                {
'"Drachenlehre", "Heillehre"',{96,107}},
            }
            
local lehre select(loadstring('return '..MegaTable[pc.get_job()+1][1])())
            
say('Du hast dich für die '..({loadstring('return '..MegaTable[pc.get_job()+1][1])()})[lehre]..' \nentschieden!')
            
say('Es wird dir sofort '..locale.GM_SKILL_NAME_DICT[MegaTable[pc.get_job()+1][2][lehre]])
            
say('auf perfekten Meister gesetzt.')
            
say('Wird erst sichtbar sobald ein Fertigkeitspunkt')
            
say('verteilt hast.')
            
setskin(NOWINDOW)
            
pc.set_skill_group(lehre
            
pc.set_skill_level(MegaTable[pc.get_job()+1][2][lehre], 59
        
end 
    end 
end 


die variable lehre ist immer 1 oder 2 also zb körper oder mental, seine Denkweise war schon richtig.
wenne meinst. und wo soll er den Index auslesen für
die variable "lehre" bei seiner Quest..? ;)
08/29/2013 13:34 Noa_#8882
bei mir jetzt in der quest habe ich das mit der tabelle geregelt, es ist dynamischer und Benutzerfreundlicher**HUST** ;D

Wir wir wissen gibt ja die Funktion "select()" zahlen zurück, je nachdem wie viel man zur Auswahl hat und was man von der Auswahl drückt.
Diese Zahlen werden benutzt um die skill_group zu bestimmen, da bei der Auswahl maximal 2 werte beinhalten, ist somit lehre= 1-2 denke aber das ich es recht verständlich erklärt habe, wenn du es noch nicht verstanden hast, sollte ich mir in deiner stelle nochmal die basic's angucken
08/29/2013 15:03 Zero.™#8883
Code:
quest levelup begin
    state start begin
        when levelup begin
            if pc.get_level() == 75 then
                notice_all("".. pc.get_name() .." hat das Level 75 gemeistert")
	if pc.get_level() == 100 then
                notice_all("".. pc.get_name() .." hat das Level 100 gemeistert")
	if pc.get_level() == 125 then
                notice_all("".. pc.get_name() .." hat das Level 125 gemeistert")
	if pc.get_level() == 150 then
                notice_all("".. pc.get_name() .." hat das Level 150 gemeistert")
	if pc.get_level() == 175 then
                notice_all("".. pc.get_name() .." hat das Level 175 gemeistert")
	pc.give_item2(ITEM VNUM)
	
            end
        end
    end
end
könnte jmd schauen ob dieser code richtig ist :o

PS: das letzte "pc.give_item2" soll nur ein item dem geben, der lv 175 erreich hat, nicht jeden!
08/29/2013 15:23 PlayaStylee#8884
Hallo ne frage gibt es ne quest wenn einer schimpfwörter schreibt das er automatisch Chatblock bekommt für 15 bis 30 min ? wenn ja kann mir einer geben wäre echt nett Bitte
08/29/2013 16:05 Yiv#8885
Nicht möglich, soviel ich weiss. Nur unter Verbindung von Python und Lua. Du müsstest im SendChatPacket Funktion ne Abfrage einbauen, die dann gegebenenfalls die Quest ausführt.

Aber du kannst die Banwords doch unter player.banwords festlegen?

MfG
08/29/2013 16:23 PlayaStylee#8886
wie geht das denn ?
08/29/2013 16:54 .CHJonas#8887
Hab kein Problem aber eine Frage, ist es möglich ein Item rauszugeben das direkt schon einen socket type 2 Value hat?

Weil derzeit mache ich es so:

PHP Code:
quest blabla begin
state start begin
 when 9010.take begin
say_title
("")
say()
say("Du haben willst Coupon aufladen?")
say()

if 
select("Ja, haben will","Nein ich nigs haben")==2 then return end

say_title
("")
say()
say("Gib die mange ein:")
say()

local wert input tonumber(input())

if 
wert == "" or " " or nil then chat("Ungültige eingabe!") return end

if pc.get_gold() < wert then
say
("Zu wenig Yang!")
end

item
.set_socket(2wert)

say_title("")
say()
say("Dein Ticket ist nun "..wert.." Yang mehr wert.")
say() 
Quest grad nur so in die php Zeilen geklatschst nicht wundern.
Meine Frage jetzt ist, ist es möglich den item.set_socket befehl zu nutzen ohne die .take funktion?
08/29/2013 20:15 VeRoX ™#8888
Ja moin,
Ich wollte mal fragen ob irgendwer von euch noch irgendwo eine quest rumgammeln hat die einen beglückwünscht wenn man ein lvl erreicht hat!D.h wenn man von lvl 9 auf lvl 10 kommt das dann geschrieben steht (für ALLE lesbar) das man lvl 10 erreicht hat und Glückwunsch oder so !
meine klappt iwie nicht weil das immer wieder kommt also wenn ich lvl 10 binb kommt das immer wieder wenn ich mich einlogge das soll da nur einmal stehen
danke im vorraus
mfg Verox™
08/29/2013 20:50 .CHJonas#8889
Quote:
Originally Posted by VeRoX ™ View Post
Ja moin,
Ich wollte mal fragen ob irgendwer von euch noch irgendwo eine quest rumgammeln hat die einen beglückwünscht wenn man ein lvl erreicht hat!D.h wenn man von lvl 9 auf lvl 10 kommt das dann geschrieben steht (für ALLE lesbar) das man lvl 10 erreicht hat und Glückwunsch oder so !
meine klappt iwie nicht weil das immer wieder kommt also wenn ich lvl 10 binb kommt das immer wieder wenn ich mich einlogge das soll da nur einmal stehen
danke im vorraus
mfg Verox™
Hier:

PHP Code:
quest ankündigung begin
    state start begin
        when login 
or levelup with pc.get_level() == 10 and pc.getqf("ankündigung")== 0 begin
pc
.setqf("ankündigung"1)
        
notice_all(""..pc.get_name().." hat level "..pc.get_level().." erreicht, Herzlichen Glückwunsch!")
        
end
    end
end 
08/29/2013 21:13 VeRoX ™#8890
Ja moin zum zweiten mal :D,
hier habe ich eine quest und ich hoffe jemand kann mir das problem sagen denn es klappt alles aber es kommt immer nur die meldung das er lvl 10 geworden ist und nie die anderen wie 30 , 50 ... was ist das prooblem?



Bei mir ist alles formatiert
08/29/2013 21:18 ProfessorEnte#8891
Quote:
Originally Posted by VeRoX ™ View Post
Ja moin zum zweiten mal :D,
hier habe ich eine quest und ich hoffe jemand kann mir das problem sagen denn es klappt alles aber es kommt immer nur die meldung das er lvl 10 geworden ist und nie die anderen wie 30 , 50 ... was ist das prooblem?



Bei mir ist alles formatiert
PHP Code:
   if pc.get_level() >= 10 then 
Bedeuted: wenn das level hoeher oder gleich 10 ist.
Deine elesif Abteilung wird nie ausgefuehrt da das erste immer wahr ist!
Bist du level 39 dann ist 39 > 10 also wahr.

In dem Post hast du das was du suchst.

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

Nimm einfach noch die Login notice raus.

PHP Code:
when login begin... 
08/29/2013 22:09 VeRoX ™#8892
hey jetz bekomme ich gar nichtsmehr im chat ich habe sie so bearbeitet was ist dran falsch?



mfg verox
08/29/2013 22:15 ProfessorEnte#8893
Quote:
Originally Posted by VeRoX ™ View Post
hey jetz bekomme ich gar nichtsmehr im chat ich habe sie so bearbeitet was ist dran falsch?



mfg verox
PHP Code:
 state lvlansage begin 
zu->
PHP Code:
 state start begin 
08/29/2013 22:41 xSanii#8894
Quote:
Originally Posted by ΞΠ∪Μ View Post
versuch's mal so
PHP Code:
quest new_skill_group begin 
    state start begin 
        when login 
or levelup with pc.get_level() >= and pc.get_skill_group() == 0 begin
            timer
('new_skill_group',0.5)
        
end
        when new_skill_group
.timer begin
            cleartimer
('new_skill_group')
            
say_title("Lehre auswählen:")
            
local MegaTable={
                {
'"Körperkampflehre", "Mentalkampflehre"',{4,19}},
                {
'"Nahkampflehre", "Fernkampflehre"',{31,48}},
                {
'"Waffenlehre", "Magielehre"',{63,79}},
                {
'"Drachenlehre", "Heillehre"',{96,107}},
            }
            
local lehre select(loadstring('return '..MegaTable[pc.get_job()+1][1])())
            
say('Du hast dich für die '..({loadstring('return '..MegaTable[pc.get_job()+1][1])()})[lehre]..' \nentschieden!')
            
say('Es wird dir sofort '..locale.GM_SKILL_NAME_DICT[MegaTable[pc.get_job()+1][2][lehre]])
            
say('auf perfekten Meister gesetzt.')
            
say('Wird erst sichtbar sobald ein Fertigkeitspunkt')
            
say('verteilt hast.')
            
setskin(NOWINDOW)
            
pc.set_skill_group(lehre
            
pc.set_skill_level(MegaTable[pc.get_job()+1][2][lehre], 59
        
end 
    end 
end 


die variable lehre ist immer 1 oder 2 also zb körper oder mental, seine Denkweise war schon richtig.
Code:
syntax error : [string "start"]:4: `}' expected near `Körperkampflehre'
new_skill_group.quest:24:Error occured on compile new_skill_group.quest
Sieht mir nich so aus als ob da ne } zu viel wäre oder so :o
08/29/2013 22:54 KaffeePausex3#8895
Kann nicht in die FarmMap2 teleportieren ist hier irgendwasfalsch bei then 7 ?

PHP Code:
quest warpring begin
    state start begin
        when 70007.
use begin
            say_title
("Warpring"
            
say("Wohin möchtest du Teleportiert werden?")
        
local empire pc.get_empire() 
                    
local selectmap select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen")
                    if 
selectmap == 8 then
                
return
                    elseif 
selectmap == 7 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
            
local selectmap2 select("Dämonenturm","Geisterwald","Roter Wald","Spinnendungeon","Grotte der Verbannung 2","FarmMap 1","FarmMap2","Abbrechen")
                    if 
selectmap2 == 7 then
                        
return
                    elseif 
selectmap2 == 1 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
            
pc.warp(590500,110800)
                    elseif 
selectmap2 == 2 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local geisterselect select("Anfang","Ende","Abbrechen")
                    if 
geisterselect == 3 then
                        
return
                    elseif 
geisterselect == 1 then
            pc
.warp(290500,5700)
                    elseif 
geisterselect == 2 then
            pc
.warp(286400,44200)
            
end
                    
elseif selectmap2 == 3 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local roterselect select("Anfang","Ende","Abbrechen")
                    if 
roterselect == 3 then
                        
return
                    elseif 
roterselect == 1 then
            pc
.warp(1119900,70800)
                    elseif 
roterselect == 2 then
            pc
.warp(1119100,7700)
            
end
                    
elseif selectmap2 == 4 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
            
pc.warp(91700525300)
                    elseif 
selectmap2 == 5 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
            
pc.warp(2413001275400)
                    elseif 
selectmap2 == 6 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
            
pc.warp(271800,13000)
                    elseif 
selectmap2 == 7 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
            
pc.warp(2641300,2694300)
            
end
                    
elseif selectmap == 1 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local map1select select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen")
                    if 
map1select == 4 then
                        
return
                    elseif 
map1select == 1 then
            pc
.warp(474300954800)
                    elseif 
map1select == 2 then
            pc
.warp(63800166400)
                    elseif 
map1select == 3 then
            pc
.warp(959900269200)
            
end
                    
elseif selectmap == 2 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local map2select select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen")
                    if 
map2select == 4 then
                        
return
                    elseif 
map2select == 1 then
            pc
.warp(353100882900)
                    elseif 
map2select == 2 then
            pc
.warp(145500240000)
                    elseif 
map2select == 3 then
            pc
.warp(863900246000)
            
end
                    
elseif selectmap == 3 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local otselect select("Anfang","Mitte","Abbrechen")
                    if 
otselect == 3 then
                        
return
                    elseif 
otselect == 1 then
            
if empire == 1 then
            pc
.warp(402100673900)
                    elseif 
empire == 2 then
            pc
.warp(270400739900)
                    elseif 
empire == 3 then
            pc
.warp(321300808000)
            
end
                    
elseif otselect == 2 then
            pc
.warp(332800745600)
            
end
                    
elseif selectmap == 4 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local wuesteselect select("Anfang","Mitte","Abbrechen")
                    if 
wuesteselect == 3 then
                        
return
                    elseif 
wuesteselect == 1 then
            
if empire == 1 then
            pc
.warp(217800627200)
                    elseif 
empire == 2 then
            pc
.warp(221900502700)
                    elseif 
empire == 3 then
            pc
.warp(344000502500)
            
end
                    
elseif wuesteselect == 2 then
            pc
.warp(296800547100)
            
end
                    
elseif selectmap == 5 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local eisselect select("Anfang","Mitte","Abbrechen")
                    if 
eisselect == 3 then
                        
return
                    elseif 
eisselect == 1 then
            
if empire == 1 then
            pc
.warp(434200290600)
                    elseif 
empire == 2 then
            pc
.warp(375200174900)
                    elseif 
empire == 3 then
            pc
.warp(491800173600)
            
end
                    
elseif eisselect == 2 then
            pc
.warp(436500215400)
            
end
                    
elseif selectmap == 6 then
                        say_title
("Warpring"
                        
say("Wohin möchtest du Teleportiert werden?")
                    
local feuerselect select("Anfang","Mitte","Abbrechen")
                    if 
feuerselect == 3 then
                        
return
                    elseif 
feuerselect == 1 then
            
if empire == 1 then
            pc
.warp(599400756300)
                    elseif 
empire == 2 then
            pc
.warp(597800622200)
                    elseif 
empire == 3 then
            pc
.warp(730700689800)
            
end
                    
elseif feuerselect == 2 then
            pc
.warp(600800687100)
            
end
                end
                    end
                        end
                            end