[SERVICE] Die Questkontrolle

07/24/2013 22:49 SATunE#8611
Hey, ich möchte eher nix kontrolliert haben, aber ich möchte etwas abgeändert haben:

Also ich möchte ne Seelenstein quest mit 100% erfolg haben.

Hier meine Quest:

PHP Code:
quest training_grandmaster_skill begin
    state start begin
    when 50513.
use begin
        say_title
("Seelenstein")

        if 
pc.get_skill_group() == 0 then
        say
("Du hast keine Skills"..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
("Hiermit kannst du eine")
            
say("Fertigkeit perfektionieren.")
            
say("")
            
wait()
            
say_title("Seelenstein")
        else
            
say("Du musst noch warten.")
            return
        
end
        end

        local result 
training_grandmaster_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
("Deine Fertigkeiten sind bereits perfekt!")
        return
        
end

        say
("Wähle eine Fertigkeit aus.")
        
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-30)

        
test_chat("Deine Rangpunkte:"..cur_alignment)
        
test_chat("Benötigte Rangpunkte:"..need_alignment)

        
local title=string.format("%s Perfektionieren"skill_nameskill_level-30+1)

        
say_title(title)
        
say("Beim lesen des Seelensteins")
        
say("verlierst du Rangpunkte!")
        
say("")

        if 
cur_alignment<-99999+need_alignment then
        say_reward
("Zu wenig Rangpunkte.")
        return
        
end

        
if cur_alignment<0 then
        say_reward
(string.format("Benötigte Rangpunkte: %d -> %d"need_alignmentneed_alignment*2))
        
say_reward("(®ö¤H¥H¤Uªº¸Ü, µ½´c*È®ø¯Ó2*¿)")
        
need_alignment=need_alignment*2
        
elseif cur_alignment<need_alignment then
        say_reward
(string.format("Benötigte Rangpunkte:: %d"need_alignment))
        
say_reward("Zu wenige Rangpunkte")
        else
        
say_reward(string.format("Benötigte Rangpunkte: %d"need_alignment))
        
end
        say
("")

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


        
if cur_alignment>=and cur_alignment<need_alignment then
        say_title
(string.format("%s ½T©w"title))
        
say("Es ist soweit!")
        
say("Um zu trainieren,")
        
say("gib bitte ein: Trainieren")
        
say("")
        
say("")
        
say_reward("Trainieren")
        
say("")
        
local s=input()
        if 
s!="Trainieren" 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("[°ª¯Åµ¥¯Å]§Þ¯à*×½m¿ù»~: ¥ð®§¤¤")
            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


            say_title
(string.format("%s "title))
            if 
40 == pc.get_skill_level(skill_vnumthen
            say
(string.format("%s ist schon Perfekt"skill_name))
            else
            
say(string.format("%s Erfolgreich gestiegen"skill_nameskill_level-50+9+9))
            
end
            say
("")
            
say_reward("Erfolgreich!")
            
say_reward(string.format("Verbrauchte Rangpunkte %d "need_alignment))
            
say("")
        else
            
say_title(string.format("%s "title))
            
say("Das hat leider nicht geklappt.")
            
say("")
            
say_reward("Fehlgeschlagen!")
            
say("")
        
end
        end

        item
.remove()
    
end
    
function BuildGrandMasterSkillList(jobgroup)
        
GRAND_MASTER_SKILL_LEVEL 30
        PERFECT_MASTER_SKILL_LEVEL 
40

        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 
wie gesagt, nur eine abänderung zu 100%. Bitte auch sagen wo man das abändert!

P.s: Wüsste sonst nicht ob ich da nen neuen tread machen solte. Wenns hier falsch ist dann bitte ich das zu löschen und mir bescheid zu geben das ich hier falsch bin. ;)


MFG TunE
07/25/2013 10:06 xFamouZLP on Youtube#8612
Steht noch alles....
Quest 1:

Quest 2:
07/25/2013 10:15 Noa_#8613
Quote:
Originally Posted by SATunE View Post
Hey, ich möchte eher nix kontrolliert haben, aber ich möchte etwas abgeändert haben:

Also ich möchte ne Seelenstein quest mit 100% erfolg haben.

wie gesagt, nur eine abänderung zu 100%. Bitte auch sagen wo man das abändert!

P.s: Wüsste sonst nicht ob ich da nen neuen tread machen solte. Wenns hier falsch ist dann bitte ich das zu löschen und mir bescheid zu geben das ich hier falsch bin. ;)
Versuch's mal hiermit, hab es nicht getestet.
PHP Code:
quest training_grandmaster_skill begin
    state start begin
        when 50513.
use begin
            say_title
("Seelenstein")
            if 
pc.get_skill_group() == 0 then
                say
("Du hast keine Skills"..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
("Hiermit kannst du eine")
                    
say("Fertigkeit perfektionieren.")
                    
say("")
                    
wait()
                    
say_title("Seelenstein")
                else
                    
say("Du musst noch warten.")
                    return
                
end
            end
            local result 
training_grandmaster_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
("Deine Fertigkeiten sind bereits perfekt!")
                return
            
end
            say
("Wähle eine Fertigkeit aus.")
            
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-30)
            
test_chat("Deine Rangpunkte:"..cur_alignment)
            
test_chat("Benötigte Rangpunkte:"..need_alignment)
            
local title=string.format("%s Perfektionieren"skill_nameskill_level-30+1)
            
say_title(title)
            
say("Beim lesen des Seelensteins")
            
say("verlierst du Rangpunkte!")
            
say("")
            if 
cur_alignment<-99999+need_alignment then
                say_reward
("Zu wenig Rangpunkte.")
                return
            
end
            
if cur_alignment<0 then
                say_reward
(string.format("Benötigte Rangpunkte: %d -> %d"need_alignmentneed_alignment*2))
                
say_reward("(®ö¤H¥H¤Uªº¸Ü, µ½´c*È®ø¯Ó2*¿)")
                
need_alignment=need_alignment*2
            
elseif cur_alignment<need_alignment then
                say_reward
(string.format("Benötigte Rangpunkte:: %d"need_alignment))
                
say_reward("Zu wenige Rangpunkte")
            else
                
say_reward(string.format("Benötigte Rangpunkte: %d"need_alignment))
            
end
            say
("")
            
local s=select("Weiter""Abbrechen")    
            if 
s==2 then
                
return
            
end
            
if cur_alignment>=and cur_alignment<need_alignment then
                say_title
(string.format("%s ½T©w"title))
                
say("Es ist soweit!")
                
say("Um zu trainieren,")
                
say("gib bitte ein: Trainieren")
                
say("")
                
say("")
                
say_reward("Trainieren")
                
say("")
                
local s=input()
                if 
s!="Trainieren" 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("[°ª¯Åµ¥¯Å]§Þ¯à*×½m¿ù»~: ¥ð®§¤¤")
                    return
                
end
            end
            pc
.setqf("next_time"get_time()+time_hour_to_sec(number(812)))
            if 
need_alignment>0 then
                say_title
(string.format("%s "title))
                if 
40 == pc.get_skill_level(skill_vnumthen
                    say
(string.format("%s ist schon Perfekt"skill_name))
                else
                    
say(string.format("%s Erfolgreich gestiegen"skill_nameskill_level-50+9+9))
                    
pc.set_skill_level(skill_vnum,pc.get_skill_level(skill_vnum)+1)
                
end
                say
("")
                
say_reward("Erfolgreich!")
                
say_reward(string.format("Verbrauchte Rangpunkte %d "need_alignment))
                
say("")
            
end
            item
.remove()
        
end
    end
    
function BuildGrandMasterSkillList(jobgroup)
        
GRAND_MASTER_SKILL_LEVEL 30
        PERFECT_MASTER_SKILL_LEVEL 
40
        local skill_list 
special.active_skill_list[job+1][group]
        
local ret_vnum_list = {}
        
local ret_name_list = {}
        
table.foreach(skill_list, function(iskill_vnum
            
local skill_level pc.get_skill_level(skill_vnum)
            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}
    
end
end 
07/25/2013 12:03 meca4h4#8614
Edit pls!

HTML Code:
----------------------------------------------------
-- Dragonroom Quest
----------------------------------------------------
quest dragontemple begin
    state start begin

        when 30121.chat."I want to kill the dragon" with pc.get_map_index() == 73 and game.get_event_flag("dragontemple_open") == 1 begin
			if get_time() > game.get_event_flag("blockentry") and game.get_event_flag("blockentry") > 1 then
				game.set_event_flag("dragontemple_block",1)
				game.set_event_flag("blockentry", 0)
			end
			
			if get_time() > game.get_event_flag("reopen") and game.get_event_flag("reopen") > 1 then
				game.set_event_flag("dragontemple_used",0)
				game.set_event_flag("dragontemple_block",0)
				game.set_event_flag("reopen", 0)
			end
			
			if game.get_event_flag("reopen")-get_time() < 0 then
				dragontime = 1
			else
				dragontime = game.get_event_flag("reopen")-get_time()
			end
			
            if game.get_event_flag("dragontemple_used") == 1 and game.get_event_flag("empire") == pc.get_empire() then
                if game.get_event_flag("dragontemple_block") == 1 then
                    say_title(mob_name(30121))
                    say("")
                    say("Currently you can't go into the Dragon's Lair.")
					say("Please come back later.")
					say("")
					say("Time Remaining: "..dragontime.." seconds.")
					say("")
                    return;
                end
                
                say_title(mob_name(30121))
                say("")
                say("I'm sorry, but the Dragon's Lair is currently")
				say("reserved.")
                say("If you have the password to access it,")
                say("please enter it now...")
                local password = input()
                if game.get_event_flag("dragontemple_password") == tonumber(password) then
                    say_title(""..mob_name(30121).."")
                    say("")
                    say("The password is correct!")
                    say("I'll lead you to the chamber.")
                    wait()
                    say_title(""..mob_name(30121).."")
                    say("")
                    say("If you want, I can lead you into the")
                    say("Dragon's Lair right now.")
                    say("Just hand me over 3 of these:")
                    say("")
                    say_item_vnum(30179)
                   
                    local s = select("Please take them and let me in!", "Cancel")
                    if s == 1 then
                        if pc.count_item(30179) >= 3 then
                            pc.remove_item(30179,3)
                            pc.warp(844000, 1066900,(207*10000))
							pc.setqf("payment", 1)
                        else
                            say("You only have "..pc.count_item(30179).." of 3 needed")
                            say("")
                            say_item_vnum(30179)
                        end
                    else
                        return
                    end
                else
                    say_title(""..mob_name(30121).."")
                    say("")
                    say("The password is not correct!")
                    return
                end
            elseif pc.has_guild() and game.get_event_flag("dragontemple_used") == 0 then
                say_title(""..mob_name(30121).."")
                say("")
                say("So you want to fight against the dragon?")
                say("Please give me a password to enter the")
                say("Dragon's Lair (only numeric) so I can protect it.")
                say("You can tell this password to your friends")
                say("to help you and enter the Dragon's Lair.")
                say("Please tell the password to me.")
                local password = tonumber(input(""))
                game.set_event_flag("dragontemple_password",password)
                say_title(""..mob_name(30121).."")
                say("")
                say("If you want, I can lead you into the")
                say("Dragon's Lair right now.")
                say("Just hand me over 3 of these:")
				say_item_vnum(30179)
				say("")
				say_reward("Please reminder, people who want to join you only")
				say_reward("have 5 minutes before entrance locks down!")
                say("")
                
                local s = select("Please take them and let me in!", "Cancel")
                if s == 1 then
                    if pc.count_item(30179) >= 3 then
						empire = pc.get_empire()
                        pc.remove_item(30179,3)
                        DragonLair.startRaid(207)
                        game.set_event_flag("dragontemple_used",1)
						game.set_event_flag("empire",empire)
						game.set_event_flag("metinkills", 0)
						game.set_event_flag("reopen", get_time()+60*60)
                        game.set_event_flag("blockentry", get_time()+5*60)
						pc.setqf("payment", 1)
                    else
                        say("You only have "..pc.count_item(30179).." of 3 needed")
                        say("")
                        say_item_vnum(30179)
                        say("")
                        return
                    end
                elseif s==2 then
                    return                                
                end
            elseif not pc.has_guild() then
                say_title(""..mob_name(30121).."")
                say("")
                say("You need to be a member of a guild")
                say("to fight against the dragon.")
			elseif game.get_event_flag("empire") > pc.get_empire() or game.get_event_flag("empire") < pc.get_empire() then
				say_title(""..mob_name(30121).."")
				say("")
				say("Sorry but the Dragon Lair is currently")
				say("occupied by another kingdom so you can not join")
            end
        end
		
		when login with pc.get_map_index() >= (207*10000) begin
			if pc.getqf("payment") < 1 then
				if pc.count_item(30179) >= 3 then
					pc.remove_item(30179,3)
				else
					pc.warp(181800,1220863)
					send_letter("You have been banished from Dragon's Lair")
				end
			else
				pc.setqf("payment", 0)
			end
		end
        
		when button or info begin
			say_title("Dragon's Lair")
			say("")
			say("You did not have enough Dragon God's Symbols")
			say("to enter the chamber.")
			say("Therefore you have been kicked out of it.")
			say("")
			say("You require 3 Dragon God's Symbols to enter")
			say_item_vnum(30179)
			say("")
			say_reward("You can join again if you get 3 Dragon God's Symbol")
		end
		
		when 8031.kill or 8032.kill or 8033.kill or 8034.kill begin
			game.set_event_flag("metinkills", game.get_event_flag("metinkills")+1)
			if game.get_event_flag("metinkills") == 3 then
				game.set_event_flag("metinkills", 3)
				metin = {
				{8031, 8032, 8033, 8034},
				}
				n = number(1,4)
				x = number(155,185)
				y = number(155,185)
				mob.spawn(tonumber(metin[1][n]), x, y, 1, 0, 1)
			end
		end
		
        when 2493.kill with pc.get_map_index() >= (207*10000) begin
			local drop = number(1,10)
			if drop <= 3 then
				game.drop_item(71123)
			elseif drop >= 4 and drop <= 8 then
				game.drop_item(71129)
			elseif drop >= 9 then
				game.drop_item(71123)
				game.drop_item(71129)
			end
			game.set_event_flag("reopen", get_time()+30*60)
			notice_all("The group of "..pc.get_name().." has successfully slained the Aqua Dragon!")
			game.set_event_flag("metinkills", 0)
			game.set_event_flag("dragontemple_block",1)
        end
    end
end
07/25/2013 20:42 darkness-night#8615
Hallo Liebe Comm ich brächte eine Quest

Nachdem mann einen mob, metinstein what ever killt
danach ein npc spammt um weiter zu kommen
07/25/2013 23:25 dopeness'#8616
Putty zeigt ein fehler beim Kompilieren von der quest, weiß jemand wo der fehler ist?

PHP Code:
quest skills_for_work begin
    state start begin
        when login begin
            loop_timer
("check_skill"60)
        
end
        when check_skill
.timer begin
            local skills 
skills_for_work.skill_values()
            for 
= ((pc.get_skill_group-1)*(table.getn(skills)/2)+1), (pc.get_skill_group()*(table.getn(skills)/2)) do
                if 
pc.get_skill_level(skills[i]) >= 20 then
                    set_state
(weiter)
                
end
            end    
        end    
        
function skill_values()
            
local skills = {
                [
0] = {1,2,3,4,5,16,17,18,19,20},
                [
1] = {31,32,33,34,35,46,47,48,49,50},
                [
2] = {61,62,63,64,65,66,76,77,78,79,80,81},
                [
3] = {91,92,93,94,95,96,106,107,108,109,110,111},
            }
            return 
skills[pc.get_job()]
        
end
        
function skill_name(skill)
            
local namen = {
                [
1] = "Dreiwegeschnitt",[2] = "Schwertwirbel",[3] = "Kampfrausch",[4] = "Aura des Schwertes",[5] = "Sausen",
                [
16] = "Durchschlag",[17] = "Heftiges Schlagen",[18] = "Stampfer",[19] = "Starker Körper",[20] = "Schwertschlag",
                [
31] = "Hinterhalt",[32] = "Blitzangriff",[33] = "Degenwirbel",[34] = "Tarnung",[35] = "Giftwolke",
                [
46] = "Wiederholter Schuss",[47] = "Pfeilregen",[48] = "Feuerpfeil",[49] = "Federschreiten",[50] = "Giftpfeil",
                [
61] = "Fingerschlag",[62] = "Drachenwirbel",[63] = "Verzauberte Klinge",[64] = "Furcht",[65] = "Verzauberte Rüstung",[66] = "Zauber aufheben",
                [
76] = "Dunkler Schlag",[77] = "Flammenschlag",[78] = "Geist der Flamme",[79] = "Dunkler Schutz",[80] = "Geisterschlag",[81] = "Dunkler Stein",
                [
91] = "Fliegender Talisman",[92] = "Drachenschießen",[93] = "Drachengebrüll",[94] = "Segen",[95] = "Reflektieren",[96] = "Hilfe des Drachens",
                [
106] = "Blitzwurf",[107] = "Blitz heraufbeschwören",[108] = "Blitzkralle",[109] = "Kurieren",[110] = "Schnelligkeit",[111] = "Angriff+",
            }
            return 
namen[skill]
        
end    
        
function steigerung(x)
            
local items = {
                [
1] = {vnum},
                [
2] = {vnum,vnum}, --erweitern 1 items für m2 items für m3 usw.
            }    
            return 
items[x]
        
end
    end
    state weiter begin
        when letter begin
            send_letter
('Skill steigern!')
        
end    
        when button 
or info begin
            say
('Du möchtest deine Skills steigern?')
            
say('Dann gehe zu NPC. Er ist von nun an dein Lehrmeister!')
        
end    
        when 33003.chat
."Skills steigern!" begin
            local skill_v
,skills,value,count skills_for_work.skill_values(),{},{},0
            
for = ((pc.get_skill_group-1)*(table.getn(skills)/2)+1), (pc.get_skill_group()*(table.getn(skills)/2)) do
                if 
pc.get_skill_level(skill_v[i]) >= 20 and pc.get_skill_level(skill_v[i]) < 30 then
                    table
.insert(skills,skills_for_work.skill_name(skill_v[i]))
                    
table.insert(value,skill_v[i])
                
end
            end    
            
if table.getn(skills) == 0 then
                say
('Du hast derzeit keinen Skill im Meisterbereich! Daher kann ich dir nicht helfen!')
                return
            
end    
            table
.insert(skills,1,6); table.insert(skills'Abbrechen')
            
local sel select2(skills)
            if 
sel == table.getn(skillsthen return end
            local a 
skills_for_work.steigerung(pc.get_skill_level(value[sel]))
            
say('Um '..skills[sel]..' zu steigern benötige ich von dir:')
            for 
1table.getn(a) do
                if 
pc.count_item(a[i]) >= 1 then
                    count 
count 1
                end    
                say
('- '..item_name(a[i]))
            
end
            
if count table.getn(athen
                say
('Dir fehlen noch Items!')
                
say('Bringe sie mir, um deinen Skill zu steigern.')
                return
            
end    
            say
(skills[sel]..' steigern?')
            if 
select('Ja','Nein') == 2 then return end
            pc
.set_skill_level(value[sel], (pc.get_skill_level(value[sel])+1))
        
end
    end
end 
07/26/2013 08:27 ProfessorEnte#8617
Quote:
Originally Posted by .s[H]orty View Post
Putty zeigt ein fehler beim Kompilieren von der quest, weiß jemand wo der fehler ist?

PHP Code:
quest skills_for_work begin
    state start begin
        when login begin
            loop_timer
("check_skill"60)
        
end
        when check_skill
.timer begin
            local skills 
skills_for_work.skill_values()
            for 
= ((pc.get_skill_group-1)*(table.getn(skills)/2)+1), (pc.get_skill_group()*(table.getn(skills)/2)) do
                if 
pc.get_skill_level(skills[i]) >= 20 then
                    set_state
(weiter)
                
end
            end    
        end    
        
function skill_values()
            
local skills = {
                [
0] = {1,2,3,4,5,16,17,18,19,20},
                [
1] = {31,32,33,34,35,46,47,48,49,50},
                [
2] = {61,62,63,64,65,66,76,77,78,79,80,81},
                [
3] = {91,92,93,94,95,96,106,107,108,109,110,111},
            }
            return 
skills[pc.get_job()]
        
end
        
function skill_name(skill)
            
local namen = {
                [
1] = "Dreiwegeschnitt",[2] = "Schwertwirbel",[3] = "Kampfrausch",[4] = "Aura des Schwertes",[5] = "Sausen",
                [
16] = "Durchschlag",[17] = "Heftiges Schlagen",[18] = "Stampfer",[19] = "Starker Körper",[20] = "Schwertschlag",
                [
31] = "Hinterhalt",[32] = "Blitzangriff",[33] = "Degenwirbel",[34] = "Tarnung",[35] = "Giftwolke",
                [
46] = "Wiederholter Schuss",[47] = "Pfeilregen",[48] = "Feuerpfeil",[49] = "Federschreiten",[50] = "Giftpfeil",
                [
61] = "Fingerschlag",[62] = "Drachenwirbel",[63] = "Verzauberte Klinge",[64] = "Furcht",[65] = "Verzauberte Rüstung",[66] = "Zauber aufheben",
                [
76] = "Dunkler Schlag",[77] = "Flammenschlag",[78] = "Geist der Flamme",[79] = "Dunkler Schutz",[80] = "Geisterschlag",[81] = "Dunkler Stein",
                [
91] = "Fliegender Talisman",[92] = "Drachenschießen",[93] = "Drachengebrüll",[94] = "Segen",[95] = "Reflektieren",[96] = "Hilfe des Drachens",
                [
106] = "Blitzwurf",[107] = "Blitz heraufbeschwören",[108] = "Blitzkralle",[109] = "Kurieren",[110] = "Schnelligkeit",[111] = "Angriff+",
            }
            return 
namen[skill]
        
end    
        
function steigerung(x)
            
local items = {
                [
1] = {vnum},
                [
2] = {vnum,vnum}, --erweitern 1 items für m2 items für m3 usw.
            }    
            return 
items[x]
        
end
    end
    state weiter begin
        when letter begin
            send_letter
('Skill steigern!')
        
end    
        when button 
or info begin
            say
('Du möchtest deine Skills steigern?')
            
say('Dann gehe zu NPC. Er ist von nun an dein Lehrmeister!')
        
end    
        when 33003.chat
."Skills steigern!" begin
            local skill_v
,skills,value,count skills_for_work.skill_values(),{},{},0
            
for = ((pc.get_skill_group-1)*(table.getn(skills)/2)+1), (pc.get_skill_group()*(table.getn(skills)/2)) do
                if 
pc.get_skill_level(skill_v[i]) >= 20 and pc.get_skill_level(skill_v[i]) < 30 then
                    table
.insert(skills,skills_for_work.skill_name(skill_v[i]))
                    
table.insert(value,skill_v[i])
                
end
            end    
            
if table.getn(skills) == 0 then
                say
('Du hast derzeit keinen Skill im Meisterbereich! Daher kann ich dir nicht helfen!')
                return
            
end    
            table
.insert(skills,1,6); table.insert(skills'Abbrechen')
            
local sel select2(skills)
            if 
sel == table.getn(skillsthen return end
            local a 
skills_for_work.steigerung(pc.get_skill_level(value[sel]))
            
say('Um '..skills[sel]..' zu steigern benötige ich von dir:')
            for 
1table.getn(a) do
                if 
pc.count_item(a[i]) >= 1 then
                    count 
count 1
                end    
                say
('- '..item_name(a[i]))
            
end
            
if count table.getn(athen
                say
('Dir fehlen noch Items!')
                
say('Bringe sie mir, um deinen Skill zu steigern.')
                return
            
end    
            say
(skills[sel]..' steigern?')
            if 
select('Ja','Nein') == 2 then return end
            pc
.set_skill_level(value[sel], (pc.get_skill_level(value[sel])+1))
        
end
    end
end 
Du solltest den Fehler immer direkt mit posten aus putty.
Ich bekomme jedenfalls keinen.
Hast du z.b. die select2 function nicht in der questlib?
07/26/2013 11:39 Mijago#8618
Quote:
Originally Posted by ProfessorEnte View Post
Du solltest den Fehler immer direkt mit posten aus putty.
Ich bekomme jedenfalls keinen.
Hast du z.b. die select2 function nicht in der questlib?
Syntax hat schonmal keine Fehler.

Selbst wenn er die Funktion nicht in der questlib hat, gibt der compiler keinen Fehler aus! Schau nach, ob jede der aufgerufenen Funktionen in der quest_functions definiert ist c:
07/26/2013 12:24 ProfessorEnte#8619
Kommt auf den Gedankengang an! :D
Hab mich auch falsch ausgedrueckt.
Ich schau erst in der Questlib ob die Funktion da ist, dann in der quest_functions.

Fals man sie einfach in der quest_functions definiert, wird er nochmal hier posten und fragen warum keine Auswahl kommt. :p

Aber diese Seite gefaellt mir, kannte ich noch garnicht!
07/26/2013 13:38 rakuz123456#8620
Geht nicht
quest vipname begin
state start begin
when 70007.use begin
say_title("Hallo "..pc.get_name().."!")
say("")
say("Moechtest du ein [VIP] vor deinem")
say("Namen haben?")
say_red("Und Bonis Angriff 200, 5000TP ,10Kritt")
say("Namen haben?")
local aw = select("Ja", "Nein")
if aw == 2 then
return
else
mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
affect.add_collect(apply.MAX_HP, 5000, 60*60*24*365*60)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*24*365*60)
affect.add_collect(apply.CRITICAL_PCT, 10, 60*60*24*365*60)
pc.remove_item(70007, 1)
say_title("Änderung erfolgreich!")
say("Bitte logge dich nun für 10 Minuten aus.")
say("Loggst du dich eher wieder ein, werden die")
say("änderungen nicht wirksam.")
say("")
end
end
end
end
07/26/2013 14:00 .LuckyStrike#8621
Quote:
Originally Posted by rakuz123456 View Post
Geht nicht
quest vipname begin
state start begin
when 70007.use begin
say_title("Hallo "..pc.get_name().."!")
say("")
say("Moechtest du ein [VIP] vor deinem")
say("Namen haben?")
say_red("Und Bonis Angriff 200, 5000TP ,10Kritt")
say("Namen haben?")
local aw = select("Ja", "Nein")
if aw == 2 then
return
else
mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
affect.add_collect(apply.MAX_HP, 5000, 60*60*24*365*60)
affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*24*365*60)
affect.add_collect(apply.CRITICAL_PCT, 10, 60*60*24*365*60)
pc.remove_item(70007, 1)
say_title("Änderung erfolgreich!")
say("Bitte logge dich nun für 10 Minuten aus.")
say("Loggst du dich eher wieder ein, werden die")
say("änderungen nicht wirksam.")
say("")
end
end
end
end

Versuch es mal so:
PHP Code:
quest vipname begin
    state start begin
        when 70007.
use begin
            say_title
("Hallo "..pc.get_name().."!")
            
say("")
            
say("Moechtest du ein [VIP] vor deinem")
            
say("Namen haben?")
            
say_red("Und Bonis Angriff 200, 5000TP ,10Kritt")
            
say("Namen haben?")
            
local aw select("Ja""Nein")
            if 
aw == 2 then
                
return
            elseif 
aw == 1 then
                mysql_query
("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
                
affect.add_collect(apply.MAX_HP500060*60*24*365*60)
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*24*365*60)
                
affect.add_collect(apply.CRITICAL_PCT1060*60*24*365*60)
                
pc.remove_item(700071)
                
say_title("Änderung erfolgreich!")
                
say("Bitte logge dich nun für 10 Minuten aus.")
                
say("Loggst du dich eher wieder ein, werden die")
                
say("änderungen nicht wirksam.")
                
say("")
            
end
        end
    end
end 


LG
.Lucky
07/26/2013 15:07 darkness-night#8622
Wollte eine Quest schreiben wo mann erst nach 5 getöteten Mobs geportet wird..

Danke für eure hilfe

PHP Code:
quest testquest begin  
    state start begin  
        when 101.kill with pc
.get_map_index() == 207 and pc.getqf("mob") == 0 begin
        pc
.setqf("mob",5)      
        
say_title("Metin Zerstört")  
        
say("Du hast nun meinen Metin Zerstört!")  
        
say("NEEEEEEIIIIIIN!")  
        
say("Meine Wächter warten auf dich !")  
        
say("In der 3 Ebene must du alle Mobs killen um weiter zu kommen!!")    
        
say_reward("Du wirst in die 3 Ebene Teleportiert")  
        
wait()   
        
pc.warp(559200419000)  
        
end  
    end  
end 
Habs Selber hin bekommen :) aber danke


PHP Code:
quest icerunebene2kill begin
    state start begin
        when 101.kill begin
            local count 
pc.getqf("count") + 1
            
if count 5 then
                pc
.setqf("count"count)
            else
                
pc.delqf("count")
                    
say_title("Metin Zerstört")  
                   
say("Du hast nun meinen Metin Zerstört!")  
                    
say("NEEEEEEIIIIIIN!")  
                    
say("Meine Wächter warten auf dich !")  
                    
say("In der 3 Ebene must du alle Mobs killen um weiter zu kommen!!")    
                    
say_reward("Du wirst in die 4 Ebene Teleportiert")  
                    
wait()   
                    
pc.warp(558900418800)
                
notice_all (pc.get_name().." hat eine geheime Quest gelöst")
            
end
        end
    end
end 
07/26/2013 16:01 He3o Sippel#8623
Quote:
Originally Posted by darkness-night View Post
Wollte eine Quest schreiben wo mann erst nach 5 getöteten Mobs geportet wird..

Danke für eure hilfe

PHP Code:
quest testquest begin  
    state start begin  
        when 101.kill with pc
.get_map_index() == 207 and pc.getqf("mob") == 0 begin
        pc
.setqf("mob",5)      
        
say_title("Metin Zerstört")  
        
say("Du hast nun meinen Metin Zerstört!")  
        
say("NEEEEEEIIIIIIN!")  
        
say("Meine Wächter warten auf dich !")  
        
say("In der 3 Ebene must du alle Mobs killen um weiter zu kommen!!")    
        
say_reward("Du wirst in die 3 Ebene Teleportiert")  
        
wait()   
        
pc.warp(559200419000)  
        
end  
    end  
end 
Habs Selber hin bekommen :) aber danke


PHP Code:
quest icerunebene2kill begin
    state start begin
        when 101.kill begin
            local count 
pc.getqf("count") + 1
            
if count 5 then
                pc
.setqf("count"count)
            else
                
pc.delqf("count")
                    
say_title("Metin Zerstört")  
                   
say("Du hast nun meinen Metin Zerstört!")  
                    
say("NEEEEEEIIIIIIN!")  
                    
say("Meine Wächter warten auf dich !")  
                    
say("In der 3 Ebene must du alle Mobs killen um weiter zu kommen!!")    
                    
say_reward("Du wirst in die 4 Ebene Teleportiert")  
                    
wait()   
                    
pc.warp(558900418800)
                
notice_all (pc.get_name().." hat eine geheime Quest gelöst")
            
end
        end
    end
end 
Hier
PHP Code:
quest icerunebene2kill begin
    state start begin
        when kill with npc
.get_race() == 101 begin
            local count 
pc.getqf("count") + 1
            
if pc.getqf("count") < 5 then
                pc
.setqf("count"count)
            else
                
pc.delqf("count")
                
say_title("Metin Zerstört")  
                
say("Du hast nun meinen Metin Zerstört!")  
                
say("NEEEEEEIIIIIIN!")  
                
say("Meine Wächter warten auf dich !")  
                
say("In der 3 Ebene must du alle Mobs killen um weiter zu kommen!!")    
                
say_reward("Du wirst in die 4 Ebene Teleportiert")  
                
wait()   
                
pc.warp(558900418800)
                
notice_all (pc.get_name().." hat eine geheime Quest gelöst")
            
end
        end
    end
end 
07/26/2013 16:05 darkness-night#8624
Könntest du mir helfen brächte ne quest wo mann item dropen muss und auf ein npc ziehen muss um erst weiter zu kommen
07/26/2013 23:12 Sakalul112#8625
Hi , this quest gives me {qc in malloc :error allocation failed}
Please can anyone help me?
Quest
PHP Code:
quest Information begin
    state start begin
        when login begin
            set_state
("information")
        
end
    end
    state information begin
        when letter begin
            send_letter
("Info")
        
end
        when button 
or info begin        
                say_title 
"Choose a number" 
                
local ahselect select "1""2""3""4""5""6""7")
                
                if 
ahselect == 1 then

                pc
.setqf("ah_1"1)
                
                
local ok_letter1 select("OK")
                
                if 
ok_letter1 == 1 then
                    clear_letter
()
                
            elseif 
ahselect == 2 then

                pc
.setqf("ah_2"1)
                
                
local ok_letter2 select("OK")
                
                if 
ok_letter2 == 1 then
                    clear_letter
()
                
                
            elseif 
ahselect == 3 then

                pc
.setqf("ah_3"1)                
                
local ok_letter3 select("OK")
                
                if 
ok_letter3 == 1 then
                    clear_letter
()
                
                
            elseif 
ahselect == 4 then

                pc
.setqf("ah_4"1)
                
                
local ok_letter4 select("OK")
                
                if 
ok_letter4 == 1 then
                    clear_letter
()
                
                
            elseif 
ahselect == 5 then

                pc
.setqf("ah_5"1)
                
                
local ok_letter5 select("OK")
                
                if 
ok_letter5 == 1 then
                    clear_letter
()
                
                
            elseif 
ahselect == 6 then
                pc
.setqf("ah_6"1)
                
                
local ok_letter6 select("OK")
                
                if 
ok_letter6 == 1 then
                    clear_letter
()
                
                
            elseif 
ahselect == 7 then
                pc
.setqf("ah_7"1)
                
local ok_letter7 select("OK")
                
                if 
ok_letter7 == 1 then
                    clear_letter
()
                    
set_state(__complete)
            
end
        end