[SERVICE] Die Questkontrolle

05/03/2012 21:33 TheMad#5671
Code:
quest warpring begin
    state start begin
        when 27988.use with pc.get_level() >= 10 begin
            if select("Farm-Map ab Lv.80", "Farm-Map ab Lv.60", "Böse Farm-Map", "Abbrechen") == 1 then
                pc.warp(83200, 0)
				else
			if select("Farm-Map ab Lv.80", "Farm-Map ab Lv.60", "Böse Farm-Map", "Abbrechen") == 2 then
				pc.warp(400, 650)
				else
			if select("Farm-Map ab Lv.80", "Farm-Map ab Lv.60", "Böse Farm-Map", "Abbrechen") == 3 then
				pc.warp(128, 200)
				else
            end
			when 27988.use with pc.get_level() <= 10 begin
			say("Dein level muss 10 sein um dieses zu nutzen")
			return
        end
    end
end
geht irgendwie net XD
05/03/2012 21:52 .NighT™#5672
Quote:
Originally Posted by TheMad View Post
Code:
quest warpring begin
    state start begin
        when 27988.use with pc.get_level() >= 10 begin
            if select("Farm-Map ab Lv.80", "Farm-Map ab Lv.60", "Böse Farm-Map", "Abbrechen") == 1 then
                pc.warp(83200, 0)
				else
			if select("Farm-Map ab Lv.80", "Farm-Map ab Lv.60", "Böse Farm-Map", "Abbrechen") == 2 then
				pc.warp(400, 650)
				else
			if select("Farm-Map ab Lv.80", "Farm-Map ab Lv.60", "Böse Farm-Map", "Abbrechen") == 3 then
				pc.warp(128, 200)
				else
            end
			when 27988.use with pc.get_level() <= 10 begin
			say("Dein level muss 10 sein um dieses zu nutzen")
			return
        end
    end
end
geht irgendwie net XD
Probiers so:
PHP Code:
quest warpring begin
    state start begin
        when 27988.
use with pc.get_level() >= 10 begin
            
if select("Farm-Map ab Lv.80""Farm-Map ab Lv.60""Böse Farm-Map""Abbrechen") == 1 then
                pc
.warp(832000)
            elseif 
select("Farm-Map ab Lv.80""Farm-Map ab Lv.60""Böse Farm-Map""Abbrechen") == 2 then
                pc
.warp(400650)
            elseif 
select("Farm-Map ab Lv.80""Farm-Map ab Lv.60""Böse Farm-Map""Abbrechen") == 3 then
                pc
.warp(128200)
            elseif 
select("Farm-Map ab Lv.80""Farm-Map ab Lv.60""Böse Farm-Map""Abbrechen") == 4 then
                
return
            
end
        end
        when 27988.
use with pc.get_level() < 10 begin
            say
("Dein level muss 10 sein um dieses zu nutzen")
        
end
    end
end 
05/03/2012 22:15 TheMad#5673
Quote:
Probiers so:
PHP-Code:
quest warpring begin
state start begin
when 27988.use with pc.get_level() >= 10 begin
if select("Farm-Map ab Lv.80", "Farm-Map ab Lv.60", "Böse Farm-Map", "Abbrechen") == 1 then
pc.warp(83200, 0)
elseif select("Farm-Map ab Lv.80", "Farm-Map ab Lv.60", "Böse Farm-Map", "Abbrechen") == 2 then
pc.warp(400, 650)
elseif select("Farm-Map ab Lv.80", "Farm-Map ab Lv.60", "Böse Farm-Map", "Abbrechen") == 3 then
pc.warp(128, 200)
elseif select("Farm-Map ab Lv.80", "Farm-Map ab Lv.60", "Böse Farm-Map", "Abbrechen") == 4 then
return
end
end
when 27988.use with pc.get_level() < 10 begin
say("Dein level muss 10 sein um dieses zu nutzen")
end
end
end
wow, danke für die so schnelle antwort *total begeistert bin =) *
aber irgendwie wills noch nicht ganz, bei allen antworten läd er die auswahl neu nur bei der ersten bekomm ich sofort kick
05/03/2012 22:32 .NighT™#5674
Quote:
Originally Posted by TheMad View Post
wow, danke für die so schnelle antwort *total begeistert bin =) *
aber irgendwie wills noch nicht ganz, bei allen antworten läd er die auswahl neu nur bei der ersten bekomm ich sofort kick
So muss es aber funktionieren:
PHP Code:
quest warpring begin
    state start begin
        when 27988.
use with pc.get_level() >= 10 begin
            local a 
select("Farm-Map ab Lv.80""Farm-Map ab Lv.60""Böse Farm-Map""Abbrechen")
            if 
== 1 then
                pc
.warp(832000)
            elseif 
== 2 then
                pc
.warp(400650)
            elseif 
== 3 then
                pc
.warp(128200)
            elseif 
== 4 then
                
return
            
end
        end
        when 27988.
use with pc.get_level() < 10 begin
            say
("Dein level muss 10 sein um dieses zu nutzen")
        
end
    end
end 
05/04/2012 13:54 TheMad#5675
will immer noch net, der quest erkennt die warp punkte nicht, also kannst zb. Böse Farm-Map klicken und dan passiert nix auser dass das dialogfenster sich schliest.
05/04/2012 15:53 hr4rjuku#5676
die koordinaten sind auch falsch :P
05/04/2012 16:24 .αpeх'#5677
Meine Sprachenquest will nicht so recht :>

PHP Code:
quest sprachwahl begin
    state start begin
        when login 
or levelup with pc.getqf("sprachwahl") == and pc.get_level() ==10 begin
            say_title
("Please choose your Language")
            
say("")
            
locale s select("German""English")
                
                if 
== 1 then
                    pc
.setqf("german"1)
                    
pc.setqf("sprachwahl"1)
                    
say_title("Willkommen auf Zereus2!")
                    
say("")
                    
say("Hallo lieber Spieler.")
                    
say("Nun ist die Zeit gekommen, in unser Questsystem einzusteigen.")
                    
say("Wir bieten euch die Möglichkeit, viele Quests und Dungeons")
                    
say("in mehreren Sprachen zu absolvieren.")
                    
say("So wollen wir den verschiedenen Nationalitäten")
                    
say("nichts vorenthalten.")
                    
say("Das Zereus2 Team wünscht dir viel Erfolg und Spaß.")
                    
say_reward("Du hast die Dungeonrolle Nr.1 erhalten")
                
end
                
                
if == 2 then
                    pc
.setqf("english"1)
                    
pc.setqf("sprachwahl"1)
                    
say_title("Welcome at Zereus2")
                    
say("")
                    
say("Hello!")
                    
say("Now it's time, to look at our Questsystem.")
                    
say("We're giving all Players the Chance, to use")
                    
say("our Dungeons and Quests in many Languages.")
                    
say("So you can play without any")
                    
say("boring, German Quests.")
                    
say("But now, start, young Player.")
                    
say("We hope, you enjoy this Server.")
                    
say("We wish you many fun!")
                    
say_reward("You've got the Dungeonrole Nr.1")
                
end
            end
        end
    end
end 
05/04/2012 16:28 hr4rjuku#5678
Bitteschön.

05/04/2012 17:21 TheMad#5679
Quote:
die koordinaten sind auch falsch :P
ja bei dem ersten port punkt, die anderen stimmen aber, sind halt für die gm-map, gm-himmel undd berg der finsterniss und ich habe die so wie sie da stehen ingame getestet, nur eben beim ersten habe ich versehentlich zwei 0en zu viel^^
aber dann müssten die anderen trotzdem gehen und das ist nicht der fall
05/04/2012 18:17 Stylo@Magic-mt3#5680
Was ist da falsch ;(

PHP Code:
quest Handelmap begin
    state start begin
        when 20092.chat
."Handelmap" begin
                    
if == 1 then
                        pc
.warp(95519551)
                    else
                        return
                    
end
            end
        end 
05/04/2012 18:57 hr4rjuku#5681
@The mad es liegt an den warp koordis xD glaubs mir^^

05/04/2012 22:42 *.Creatic.*#5682
Quote:
Originally Posted by hr4rjuku View Post
@The mad es liegt an den warp koordis xD glaubs mir^^


PHP Code:
quest Handelmap begin
    state start begin
        when 20092.chat
."Handelmap" begin
                    local s 
select("Porten""Nein,danke")
                    if 
== 2 then return end
                    
if == 1 then
                        pc
.warp(955100955100)
                    
end
            end
        end 
end 
ich korriegiere, du hast die 2 00 hinter dem warp vergessen
05/05/2012 13:41 .αpeх'#5683
Mal wieder ein Fehlerchen ;)

PHP Code:
quest forked_road begin
    state start begin
        when login with forked
.isforkedmapindexpc.get_map_index() ) == true begin
            
if game.get_event_flag("threeway_war") == 0 then
                warp_to_village
()
            else
                
local noticeShow false

                
if forked.is_registered_user() == false then
                    forked
.register_user()
                    
forked.setdeadcount()
                    
pc.remove_item(50089)
                    
noticeShow true
                end

                
if forked.getdeadcount() <= 0 then
                    warp_to_village
()
                elseif 
true == noticeShow then
                    
if forked.issungzimapindexpc.get_map_index() ) == true then
                        say
locale.forked_condition2 )
                        
saylocale.NOTICE_COLOR..locale.forked_rule_sungzi )
                    else
                        
saylocale.forked_condition )
                        
saylocale.NOTICE_COLOR..locale.forked_rule )
                        
say_item_vnum(50089)
                                
end
                        end
                end
        end
        when 11001.chat
.locale.forked_man_chat or 11003.chat.locale.forked_man_chat or 11005.chat.locale.forked_man_chat begin
            
if game.get_event_flag("threeway_war") == 0 then
                        say
(locale.forked_man_say_cant)
            else
                        
say(locale.forked_man_say)
                        
local s select(locale.forked_enter,locale.forked_no_enter)
                        if 
== 1 then
                    local limit 
math.min(game.get_event_flag("threeway_war_level"), 30)

                    if 
pc.get_level() < limit then
                        say
("Um an der Reichsschlacht teilzunehmen musst du über Level "..limit.." sein!")    
                        return
                    
end

                    local canJoin 
false

                    
if (pc.getempire() == and game.get_event_flag("threeway_war_open_gate1" ) != 0) or
                        (
pc.getempire() == and game.get_event_flag("threeway_war_open_gate2" ) != 0) or
                        (
pc.getempire() == and game.get_event_flag("threeway_war_open_gate3" ) != 0then
                        canJoin 
true
                    
else
                        
saylocale.forked_man_say_you_cant2 )
                    
end

                    
if true == canJoin then
                        pc
.warpforked.get_pass_start_pos() )
                    else
                        
say("Dein Reich hat das Siegel bereits geöffnet!")
                        
say("Du kannst nun nichtmehr helfen!")
                        
end
                        end
                end
        end
        
        when 1306.kill with forked
.isforkedmapindex(pc.get_map_index()) == true begin
            game
.drop_item(500891)
        ----
"12345678901234567890123456789012345678901234567890"|
                
say("Der Tiegergeist hat den Schlüssel fallengelassen!")
                
say("Bringt diesen zum Siegel.")
                
say("Es wird euch den Weg zur nächsten Ebene weisen!")
                
say("")
        
end

        when 1902.kill with forked
.issungzimapindex(pc.get_map_index()) == true begin
            
if == game.get_event_flag("threeway_war"then
                
return
            
end

            local remainBossCount 
game.get_event_flag("threeway_war_boss_count") - 1

            game
.set_event_flag("threeway_war_boss_count"remainBossCount)

            if 
remainBossCount 1 then
                
return
        
end

            game
.set_event_flag("threeway_war"0)
            
local nation = { "Rote Reich" "Gelbe Reich" "Blaue Reich" }
            
notice_all("Die Siegreiche Nation ist das "..nation[pc.getempire()]!)
            
notice_all("Ihr werdet in kürze eure Belohnung erhalten!")

            
warp_all_to_village(forked.getsungzimapindex(), 30)
            
warp_all_to_village(forked.getpassmapindexbyempire(1), 30)
            
warp_all_to_village(forked.getpassmapindexbyempire(2), 30)
            
warp_all_to_village(forked.getpassmapindexbyempire(3), 30)
        
end

        when 20081.take with item
.vnum == 50089 begin
            say_in_map
(pc.get_map_index(), locale.forked_open_gate)
                
npc.purge()
                
item.remove()

                
forked.initkillcount()

                if 
pc.getempire() == 1 then
                game
.set_event_flag("threeway_war_open_gate1"0)
                        
notice_all("Das rote Reich hat das Siegel geöffnet!" )
                elseif 
pc.getempire() == 2 then
                game
.set_event_flag("threeway_war_open_gate2"0)
                    
notice_all("Das gelbe Reich hat das Siegel geöffnet!" )
                elseif 
pc.getempire() == 3 then
                game
.set_event_flag("threeway_war_open_gate3"0)
                        
notice_all("Das blaue Reich hat das Siegel geöffnet!" )
                else
                        
say(locale.forked_man_say_you_cant2 )
                
end

            local x
forked.get_sungzi_start_pos()
            
forked.warp_all_in_mappc.get_map_index(), forked.getsungzimapindex(), xy10)
        
end

        when 11001.chat
."GM: Reichsschlachtverwaltung" or 11003.chat."GM: Reichsschlachtverwaltung" or 11005.chat."GM: Reichsschlachtverwaltung" with pc.is_gm() begin
           local s 
select"Reichsschlacht starten!" "Beenden!" "Zurück!" );

            if 
== 1 then
                
-- ±âÁ¸¿¡ ÀÖ´ø ¸÷À» ¸&#287;µÎ Á×ÀδÙ
                
forked.purge_all_monsters()

                -- 
ÃʱâÈ*
                
forked.initforked()

                -- 
½ÃÀÛ Ç÷¡±× ¼³Á¤
                game
.set_event_flag("threeway_war"1)

                -- 
»ï°Å¸® ÀüÅõ Å³ Á¦ÇÑ ¼³Á¤
                game
.set_event_flag("threeway_war_dead_count"25)    -- ºÎȰ °¡´É ¼ö

                
if true == is_test_server() then
                    game
.set_event_flag("threeway_war_kill_count"5)    -- PC ¸î ¸í Á×À̸頼øÀ§ ¸Ô¿© Å»¶ô½Ãų °ÍÀΰ¡
                
else
                    
game.set_event_flag("threeway_war_kill_count"250)    -- PC ¸î ¸í Á×À̸頼øÀ§ ¸Ô¿© Å»¶ô½Ãų °ÍÀΰ¡
                end

                game
.set_event_flag("threeway_war_boss_count"5)    -- ÃÖÁ¾ º¸½º ¸î ¸¶¸® ¼ÒȯÇÒ °ÍÀΰ¡

                
-- »ï°Å¸® ÀÔ±¸ ¿*°í/´&#304;±â ¼³Á¤
                
game.set_event_flag("threeway_war_open_gate1"1)
                
game.set_event_flag("threeway_war_open_gate2"1)
                
game.set_event_flag("threeway_war_open_gate3"1)
                
say("Die Reichsschlacht hat begonnen.")
                
say("Alles gute für die Tapferen Kämpfer!")
                
say("Verteidigt die Ehre eures Reiches!")
                
say("")

                
wait()

                -- 
¸ó½ºÅÍ »õ·Ó°Ô ¸®Á¨
                regen_in_map
forked.getpassmapindexbyempire(1), forked.getpasspathbyempire(1) .."regen.txt" )
                
regen_in_mapforked.getpassmapindexbyempire(1), forked.getpasspathbyempire(1) .."npc.txt" )
                
regen_in_mapforked.getpassmapindexbyempire(2), forked.getpasspathbyempire(2) .."regen.txt" )
                
regen_in_mapforked.getpassmapindexbyempire(2), forked.getpasspathbyempire(2) .."npc.txt" )
                
regen_in_mapforked.getpassmapindexbyempire(3), forked.getpasspathbyempire(3) .."regen.txt" )
                
regen_in_mapforked.getpassmapindexbyempire(3), forked.getpasspathbyempire(3) .."npc.txt" )

                
notice_all("Eine Reichsschlacht wurde angezettelt!")
                
notice_all("Begebt euch zum Schlachtenverwalter um an der Schlacht teilzunehmen!")
                
notice_all("Das Team wünscht viel Spaß!")
                
            elseif 
== s then
                game
.set_event_flag("threeway_war"0)

                
notice_all("Die Reichsschlacht wurde beendet!")
                
notice_all("Wir danken allen Usern, die mitgemacht haben!")
                
notice_all("Zereus2 - Like it or Love it!")
                
forked.purge_all_monsters()

                
warp_all_to_village(forked.getsungzimapindex(), 1)
                
warp_all_to_village(forked.getpassmapindexbyempire(1), 1)
                
warp_all_to_village(forked.getpassmapindexbyempire(2), 1)
                
warp_all_to_village(forked.getpassmapindexbyempire(3), 1)
                
end
                
            
elseif == s then
                
return
            
end
        end
    end
end 
Bild zum Fehler im Anhang :)
05/05/2012 18:32 .Bavelou.#5684
05/06/2012 19:30 Azemi6#5685
Wie mach ich aus einem item ein seelen ähnliches item das aber nur von M1 auf G1 geht
Ich hab zwar mal probiert mit der seeli quest aber das item schlägt immer nur fehl sprich es hatt 100% fehl schlag rate.

Quote:
Originally Posted by Retrograd View Post
Ich bin mir nicht sicher aber versuchs mal so

PHP Code:
quest training_master_skill begin
    state start begin
    when 71123.
use begin
        say_title
("Meister")
        
local seelicount pc.count_item(71123)
        if 
pc.get_skill_group() == 0 then
        say
("Du hast keine Fertigkeiten "..pc.get_skill_group())
        return
        
end

        
if get_time() < pc.getqf("next_time"then -- and not is_test_server() then
        
if pc.is_skill_book_no_delay() then
            say
("Du hast eine Exo-Rolle Gelesen!")
            
say("Nun kannst du einen weiteren")
            
say("Blauen-Seelenstein lesen!")
                  
say("")
            
wait()
            
say_title("Meister")
        else
            
say("Du hast heute Bereits einen Blauen-Seelenstein gelesen!")
            return
        
end
        end

        local result 
training_master_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())

        
local vnum_list result[1]
        
local name_list result[2]

        if 
table.getn(vnum_list) == 0 then
        say
("Du hast keine Fertigkeiten")
        return
        
end

        say
("Fertigkeit Auswählen")
        
say("")

        
local menu_list = {}
        
table.foreach(name_list, function(inametable.insert(menu_listnameend)
        
table.insert(menu_list"Abbrechen"
        
local s=select_table(menu_list)
        if 
table.getn(menu_list) == s then
        
return
        
end

        local skill_name
=name_list[s]
        
local skill_vnum=vnum_list[s]
        
local skill_level pc.get_skill_level(skill_vnum)
        
local cur_alignment pc.get_real_alignment()
        
local need_alignment 1000+500*(skill_level-20)

        
test_chat("Momentaner Rang: "..cur_alignment)
        
test_chat("Benötigter Rang: "..need_alignment)

        
local title=string.format("%s auf Meister  %d lesen"skill_nameskill_level-20+1)
        if 
pc.count_item(71123) != seelicount then
        say
("Stfu Buguser!")
        return
        
end
        item
.remove()
        
say_title(title)
        
say("Das lesen eines Blauen-Seelensteines")
        
say("kostet Rangpunke.")
        
say("")

        if 
cur_alignment<-19000+need_alignment then
        say_reward
("Du hast zu wenig Rang!")
        return
        
end

        
if cur_alignment<0 then
        say_reward
(string.format("Benötigter Rang: %d -> %d"need_alignmentneed_alignment*2))
        
say_reward("Beim klappen des Blauen-Seelensteins wird dir")
              
say_reward("das doppelte an Rangpunkten abgezoegn!")

        
need_alignment=need_alignment*2
        
elseif cur_alignment<need_alignment then
        say_reward
(string.format("Benötigter Rang: %d"need_alignment))
        
say_reward("Beim klappen des Blauen-Seelensteins wird dir")
              
say_reward("das doppelte an Rangpunkten abgezoegn!")
        else
        
say_reward(string.format("Benötigter Rang: %d"need_alignment))
        
end
        say
("")

        
local s=select("Lesen""Abbrechen")    
        if 
s==2 then
        
return
        
end


        
if cur_alignment>=and cur_alignment<need_alignment then
        say_title
(string.format("%s -Bestätigen"title))
        
say("Das Lesen eines Blauen-Seelensteines kostet Rang,")
        
say("wenn du diesen Blauen-Seelenstein ließt,")
        
say("kommst du in -Rang")
        
say("Bitte Bestätige das du diesen Blauen-Seelenstein")
        
say("wirklich lesen möchtest!")
        
say("")
        
say_reward("Bestätigen")
        
say("")
        
say("Bitte gebe 'Meister' ein!")
        
local s=input()
        if 
s!="Meister" then
            
return
        
end
        end

        
if get_time() < pc.getqf("next_time"then -- and not is_test_server() then
        
if pc.is_skill_book_no_delay() then
            pc
.remove_skill_book_no_delay()
        else
            
say("Seelitest1")
            return
        
end
        end

        pc
.setqf("next_time"get_time()+time_hour_to_sec(number(812)))

        if 
need_alignment>0 then
        
if pc.learn_grand_master_skill(skill_vnumthen
            pc
.change_alignment(-need_alignment)


            
say_title(string.format("%s -Erfolgreich"title))
            if 
40 == pc.get_skill_level(skill_vnumthen
            say
(string.format("%s Seelitest2."skill_name))
            else
            
say(string.format("Dein Blauer-Seelenstein war Erfolgreich!"skill_nameskill_level-20+1+1))
            
end
            say
("")
            
say_reward("Erfolgreich!")
            
say_reward(string.format("Kosten an Rang: %d "need_alignment))
            
say("")
        else
            
say_title(string.format("%s -Fehlgeschlagen"title))
            
say("Dein Blauer-Seelenstein hat nicht geklappt.")
            
say("")
            
say_reward("Fehlgeschlagen!")
            
say("")
            
pc.change_alignment(-number(need_alignment/3need_alignment/2))
        
end
        end
    end
    
function BuildGrandMasterSkillList(jobgroup)
        
GRAND_MASTER_SKILL_LEVEL 20
        PERFECT_MASTER_SKILL_LEVEL 
30

        local skill_list 
special.active_skill_list[job+1][group]
        
local ret_vnum_list = {}
        
local ret_name_list = {}

        -- 
test_chat(string.format("job=%d, group=%d"jobgroup))

        
table.foreach(skill_list
        function(
iskill_vnum
        
local skill_level pc.get_skill_level(skill_vnum)

        -- 
test_chat(string.format("[%d]=%d"skill_vnumskill_level))
        if 
skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level PERFECT_MASTER_SKILL_LEVEL then

            table
.insert(ret_vnum_listskill_vnum)
            
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
            if 
name == nil then name=skill_vnum end
            table
.insert(ret_name_listname)
        
end
        end
)
        return {
ret_vnum_listret_name_list}


        --return {
ret_vnum_listret_name_list}
    
end
    end
end 
Wenn ich den Blauen-Seelenstein lese schlägt er nur Fehl es geht nie Erfolgreich woran kann das liegen?
Kann mir einer weiterhelfen?
Wäre echt nett!