[SERVICE] Die Questkontrolle

12/30/2014 12:46 DAS IST VEGAAZ#10786
Quote:
Originally Posted by Dr.Vegaaz View Post
Code:
quest Expstop begin
	state start begin		
	    when login or levelup with pc.get_level() == 25 then
			syschat("Hallo "..pc.get_name())
			syschat("Du hast eine Mission melde dich beim Hauptmann!")
			pc.setqf("antiexp", 1)
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung", 3)
        end	
		when erfahrung.timer with pc.getqf("antiexp") == 1 begin
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung1", 3)
			pc.setqf("antiexp", 1)
		end 		
		when erfahrung1.timer with pc.getqf("antiexp") == 1 begin
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung", 3)
			pc.setqf("antiexp", 1)            
		end		
	end
end
Kann keinen Fehler finden... :confused:

Außerdem wollte ich mal fragen wie ich per Quest ein level erhöhen kann pc.get_level == 26 geht z.B. nicht.

Mfg,
Vegaaz
+ suche noch Lösung
12/30/2014 12:49 Rofelmau#10787
PHP Code:
quest Expstop begin
    state start begin        
        when login 
or levelup with pc.get_level() == 25 begin
            syschat
("Hallo "..pc.get_name())
            
syschat("Du hast eine Mission melde dich beim Hauptmann!")
            
pc.setqf("antiexp"1)
            
local ep pc.get_exp()
            
pc.give_exp2(-ep)
            
timer("erfahrung"3)
        
end    
        when erfahrung
.timer with pc.getqf("antiexp") == 1 begin
            local ep 
pc.get_exp()
            
pc.give_exp2(-ep)
            
timer("erfahrung1"3)
            
pc.setqf("antiexp"1)
        
end         
        when erfahrung1
.timer with pc.getqf("antiexp") == 1 begin
            local ep 
pc.get_exp()
            
pc.give_exp2(-ep)
            
timer("erfahrung"3)
            
pc.setqf("antiexp"1)            
        
end        
    end
end 
12/31/2014 05:14 #AnymRolex*#10788
Kann mir jemand sagen was hier falsch ist oder wieso ich trotzdem nichts droppe?
Es hat geklappt habe die jetz überarbeitet und jetz klappt es nicht aber es kommt KEIN Fehler in PuttY

DropQuest:
12/31/2014 13:40 Sp0ngeb0b ist cool#10789
Du hast vermutlich den Sensi ergänzt. Dieser wird bereits in der Dt-Quest mit dem Event when 1095.kill verwendet.
Da dies jedoch nur einmalig möglich ist, klappt deine Quest nun nicht mehr.
Um diesem Fehler vorzubeugen verwendet man statt when vnum.kill , when kill with npc.get_race() == vnum

eine mögliche Lösung ist daher das hier z.B:
PHP Code:
quest metindrop begin    
    state start begin    
        when kill with not npc
.is_pc() begin    
            local drop 
= { 
                [
8001] = {
                    {
1,     15},
                    {
145150},    
                    {
146125},        
                    {
1471100},        
                    {
1481100},            
                    {
149112},            
                },
                [
2493] = {
                    {
75,105},
                    {
711231100},    
                    {
711291100},        
                    {
71125110.5},        
                    {
71126110.5},            
                    {
71127110.5},
                    {
71128110.5},        
                    {
71131110.5},        
                    {
71135110.5},            
                    {
71136110.5},
                    {
71143110.5},
                    {
18070135.5},        
                    {
18080135.5},        
                    {
17500132.5},            
                    {
27992144.5},
                    {
27993154.5},
                    {
27994156.5},
                    {
50133,    145.5},
                    {
50137,    145.5},
                    {
25041,    125.5},
                    {
53001,    110.5},
                    {
53002,    110.5},
                    {
27987,    25,    50.5},
                    {
15410,    135.5},
                },  
                [
2598] = {
                    {
75,105},
                    {
797901100},    
                    {
279921100},        
                    {
279931100},        
                    {
279941100},            
                    {
390011100},   
                },    
                [
1095] = {
                    {
100135},
                    {
711231100},    
                    {
711291100},        
                    {
71125110.5},        
                    {
71126110.5},            
                    {
71127110.5},
                    {
71128110.5},        
                    {
71131110.5},        
                    {
71135110.5},            
                    {
71136110.5},
                    {
71143110.5},
                    {
18070135.5},        
                    {
18080135.5},        
                    {
17500132.5},            
                    {
27992144.5},
                    {
27993154.5},
                    {
27994156.5},
                    {
50133,    145.5},
                    {
50137,    145.5},
                    {
25041,    125.5},
                    {
53001,    110.5},
                    {
53002,    110.5},
                    {
27987,    25,    50.5},
                    {
15410,    135.5},
                },    
            }
            if 
drop[npc.get_race()][1][1] == nil then
                
return
            
end    
            
if pc.get_level() < drop[npc.get_race()][1][1] or pc.get_level() > drop[npc.get_race()][1][2then
                
return
            
end    
            
for 2table.getn(drop[npc.get_race()]) do    
                if 
number(1100) <= drop[npc.get_race()][i][3then   
                    game
.drop_item_with_ownership(drop[npc.get_race()][i][1], drop[npc.get_race()][i][2])    
                
end    
            end    
        end
    end    
end 
mfg
01/01/2015 13:47 PRoTHoRaX#10790
Hallo liebe Comm,
Ich habe mir eine Quest erstellen lassen und sie funktioniert auch Teilweise.

Die Quest bewirkt dass wenn man einen angegebenen Radius betritt sich die Musik ändert.

jedoch wenn man diesen Radius verlässt soll wieder die Standard Metin musik spielen.

Das passiert aber nicht.... bitte um hilfe.


01/01/2015 14:31 1stAntonio#10791
Hello epvp..... I have pet quest,but i dont know how to do bonus for pets//Help me please.. My quest
-----------
quest pet_system begin
state start begin
function get_pet_info(itemVnum)
pet_info_map = {
-- [ITEM VNUM] MOB_VNUM, DEFAULT NAME, buff_idx, spawn_effect_idx
[53001] = { 34001, "'s Feuerphonix", 0}, -- Feuerphonix
[53002] = { 34002, "'s Baby Rentier", 0}, -- Baby Rentier
[53003] = { 34003, "'s Eisphonix", 0}, -- Eisphonix
[53004] = { 34001, "'s Feuerphonix", 0}, -- Feuerphonix
[53005] = { 34004, "'s Baby Azrael", 0}, -- Baby Azrael
[53006] = { 34009, "'s Baby Azrael", 0}, -- Baby Azrael (gold)
[53007] = { 34010, "'s Bambi", 0}, -- Bambi
[53008] = { 34011, "'s Knuud", 0}, -- Knuud
[53009] = { 34012, "'s Bao Bao", 0}, -- Bao Bao
[53010] = { 34008, "'s Leonidas", 0}, -- Leonidas
[53011] = { 34007, "'s Khan", 0}, -- Khan
[53012] = { 34005, "'s Porkie", 0}, -- Porkie
[53013] = { 34006, "'s Rufus", 0}, -- Rufus
}

itemVnum = tonumber(itemVnum)

return pet_info_map[itemVnum]
end
function get_spawn_effect_file(idx)
effect_table = {
[0] = nil,
[1] = "d:\\\\ymir work\\\\effect\\\\etc\\\\appear_die\\\\npc2_appear .mse",
}
return effect_table [idx]
end
when 53001.use or 53002.use or 53003.use or 53004.use or 53005.use or 53006.use or 53007.use or 53008.use or 53009.use or 53010.use or 53011.use or 53012.use or 53013.use begin
local pet_info = pet_system.get_pet_info(item.vnum)

if null != pet_info then

local mobVnum = pet_info[1]
local petName = pet_info[2]
local spawn_effect_file_name = pet_system.get_spawn_effect_file(pet_info[3])

if true == pet.is_summon(mobVnum) then
if spawn_effect_file_name != nil then
pet.spawn_effect (mobVnum, spawn_effect_file_name)
end
pet.unsummon(mobVnum)
else
if pet.count_summoned() < 1 then
pet.summon(mobVnum, petName, false)
else
syschat("Du hast bereits ein Haustier gerufen.")
end
if spawn_effect_file_name != nil then
pet.spawn_effect(mobVnum, spawn_effect_file_name)
end
end -- if pet.is_summon
end -- if null != pet_info
end -- when
end -- state
end -- quest
01/01/2015 16:01 #AnymRolex*#10792
Hey Com,

Wie kann ich das erweitern das ich da noch ne Truhe öffnen einstellen kann? Ich kenn mich nicht so gut mit Quest aus bzw. wie viel mal "end" muss ich schreiben wenn ich immer ne neue Truhe eintragen möchte:

Quest:
01/01/2015 16:07 xfantix1#10793
PHP Code:
quest main_quest_lv1 begin
    state start begin
        when login 
or levelup with pc.get_level() == 1 begin
            set_state 
gotoinfomation )
        
end
    end
    state gotoinfomation begin
        when letter begin
            send_letter
(gameforge.main_quest_lv1._10_sendLetter)
        
end
        when button 
or info begin
            say_title
(gameforge.main_quest_lv1._10_sendLetter)
            
say(gameforge.main_quest_lv1._20_say)
            
set_state gototeacher )
        
end
    end

    state gototeacher begin
        when letter begin
            local v
=find_npc_by_vnum(20354)
            if 
0==v then
            
else
                
target.vid("__TARGET__"vgameforge.main_quest_lv1._30_targetVid)
            
end
        end

        when button 
or info begin
            say_title
(gameforge.main_quest_lv1._40_sayTitle)
                        
say_reward(gameforge.main_quest_lv1._50_sayReward)
                    
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say_title(gameforge.main_quest_lv1._60_sayTitle)
            
say(gameforge.main_quest_lv1._70_say)
            
wait()
            
say_title(gameforge.main_quest_lv1._60_sayTitle)

            
say(gameforge.main_quest_lv1._80_say)
            
clear_letter()
            
set_state (__COMPLETE__)
            
set_quest_state("find_squareguard","find")
            
set_quest_state("main_quest_lv2","run")

        
end
    end
    state __COMPLETE__ begin
    end
end 
Hoffe ihr könnt mir sagen warum diese Quest nicht geht ._.
01/02/2015 02:44 G.I Duke#10794
PHP Code:
quest training_grandmaster_skill begin
    state start begin
        when 50513.
use begin
            
if pc.get_skill_group() == 0 then
                say_title
(gameforge.training_grandmaster_skill._10_sayTitle)
                
say(gameforge.training_grandmaster_skill._20_say)
                return
            
end

            
if get_time() < pc.getqf("next_time"then
                
if pc.is_skill_book_no_delay() then
                    say_title
(gameforge.training_grandmaster_skill._10_sayTitle)
                    
say(gameforge.training_grandmaster_skill._30_say)
                    
wait()
                else
                    
say_title(gameforge.training_grandmaster_skill._10_sayTitle)
                    
say(gameforge.training_grandmaster_skill._40_say)
                    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_title
(gameforge.training_grandmaster_skill._10_sayTitle)
                
say(gameforge.training_grandmaster_skill._50_say)
                return
            
end
            say_title
(gameforge.training_grandmaster_skill._10_sayTitle)
            
say(gameforge.training_grandmaster_skill._60_say)

            
local menu_list = {}
            
table.foreach(name_list, function(inametable.insert(menu_listnameend)
            
table.insert(menu_listgameforge.locale.cancel

            
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(string.format(gameforge.training_grandmaster_skill._70_chatcur_alignment..gameforge.training_grandmaster_skill._75_chat..need_alignment))

            
local title=string.format(gameforge.training_grandmaster_skill._80_stringFormatskill_nameskill_level-30+1)

            
say_title(gameforge.training_grandmaster_skill._10_sayTitle)
            
say(gameforge.training_grandmaster_skill._90_say)

            if 
cur_alignment<-19000+need_alignment then
                say_reward
(gameforge.training_grandmaster_skill._100_sayReward)
                                return
            
end

            
if cur_alignment<0 then
say_reward
(string.format(gameforge.training_grandmaster_skill._110_sayRewardneed_alignmentneed_alignment*2))
                
say_reward(gameforge.training_grandmaster_skill._120_sayReward)
                
need_alignment=need_alignment*2
            
elseif cur_alignment<need_alignment then
say_reward
(string.format(gameforge.training_grandmaster_skill._130_sayRewardneed_alignment))
                
say_reward(gameforge.training_grandmaster_skill._140_sayReward)
            else
say_reward(string.format(gameforge.training_grandmaster_skill._130_sayRewardneed_alignment))
            
end
                
            local s
select(gameforge.locale.levelup.prev_quest_gogameforge.locale.cancel)    
            
            if 
s==2 then
                
return
            
end


            
if cur_alignment>=and cur_alignment<need_alignment then
say_title
(title)
                
say_reward(gameforge.training_grandmaster_skill._150_sayReward)
                
say(gameforge.training_grandmaster_skill._160_say)
                
say_reward(gameforge.training_grandmaster_skill._170_sayReward)
                
say(gameforge.training_grandmaster_skill._180_say)
                
local s=input()
                
string.gsub(s"(%a*)%s*""%1")
                
string.lower(string.gsub(s"(%a*)%s*""%1"))

                
local t string.gsub(gameforge.training_grandmaster_skill._10_answer"(%a*)%s*""%1")
                
string.lower(string.gsub(gameforge.training_grandmaster_skill._10_answer"(%a*)%s*""%1"))
                
                if 
s!=t then
                    
return
                
end
            end

            
if get_time() < pc.getqf("next_time"then
                
if pc.is_skill_book_no_delay() then
                    pc
.remove_skill_book_no_delay()
                else
                    
say_title(gameforge.training_grandmaster_skill._10_sayTitle)
                    return
                
end
            end

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


            if 
need_alignment>0 then
                
if pc.count_item(50513) > 0 then
                    
if pc.learn_grand_master_skill(skill_vnumthen
                        pc
.change_alignment(-need_alignment)
                
                        
say_title(title)
                        
say_reward(gameforge.training_grandmaster_skill._190_sayReward)

                        if 
40 == pc.get_skill_level(skill_vnumthen
                            say
(gameforge.training_grandmaster_skill._200_say)
                            
say(string.format(gameforge.training_grandmaster_skill._210_sayskill_name))
                            
say(gameforge.training_grandmaster_skill._220_say)
                        else
                            
say(gameforge.training_grandmaster_skill._230_say)
                            
say(string.format(gameforge.training_grandmaster_skill._240_sayskill_nameskill_level-30+1+1))
                        
end
                        say_reward
(gameforge.training_grandmaster_skill._250_sayReward)
                        
say_reward(string.format(gameforge.training_grandmaster_skill._260_sayRewardneed_alignment))
                    else
                        
say_title(title)
                        
say_reward(gameforge.training_grandmaster_skill._270_sayReward)
                        
say(gameforge.training_grandmaster_skill._280_say)
                        
say_reward(gameforge.training_grandmaster_skill._290_sayReward)
                        
pc.change_alignment(-number(need_alignment/3need_alignment/2))
                    
end
                    pc
.remove_item(50513)
                else
                    
char_log(0"HACK 50513"pc.getname())
                
end
            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
end 
Bei Rechtsklick macht der Seelenstein einfach garnichts.
- Nicht mit M-Skill
- Nicht mit G1-Skill

kp woran das liegt..
weis jemand eine Lösung
01/02/2015 13:55 .Delta#10795
Quote:
Originally Posted by xfantix1 View Post
PHP Code:
quest main_quest_lv1 begin
    state start begin
        when login 
or levelup with pc.get_level() == 1 begin
            set_state 
gotoinfomation )
        
end
    end
    state gotoinfomation begin
        when letter begin
            send_letter
(gameforge.main_quest_lv1._10_sendLetter)
        
end
        when button 
or info begin
            say_title
(gameforge.main_quest_lv1._10_sendLetter)
            
say(gameforge.main_quest_lv1._20_say)
            
set_state gototeacher )
        
end
    end

    state gototeacher begin
        when letter begin
            local v
=find_npc_by_vnum(20354)
            if 
0==v then
            
else
                
target.vid("__TARGET__"vgameforge.main_quest_lv1._30_targetVid)
            
end
        end

        when button 
or info begin
            say_title
(gameforge.main_quest_lv1._40_sayTitle)
                        
say_reward(gameforge.main_quest_lv1._50_sayReward)
                    
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say_title(gameforge.main_quest_lv1._60_sayTitle)
            
say(gameforge.main_quest_lv1._70_say)
            
wait()
            
say_title(gameforge.main_quest_lv1._60_sayTitle)

            
say(gameforge.main_quest_lv1._80_say)
            
clear_letter()
            
set_state (__COMPLETE__)
            
set_quest_state("find_squareguard","find")
            
set_quest_state("main_quest_lv2","run")

        
end
    end
    state __COMPLETE__ begin
    end
end 
Hoffe ihr könnt mir sagen warum diese Quest nicht geht ._.
Fehlermeldung?

Quote:
Originally Posted by .мαяfυ™ View Post
PHP Code:
quest training_grandmaster_skill begin
    state start begin
        when 50513.
use begin
            
if pc.get_skill_group() == 0 then
                say_title
(gameforge.training_grandmaster_skill._10_sayTitle)
                
say(gameforge.training_grandmaster_skill._20_say)
                return
            
end

            
if get_time() < pc.getqf("next_time"then
                
if pc.is_skill_book_no_delay() then
                    say_title
(gameforge.training_grandmaster_skill._10_sayTitle)
                    
say(gameforge.training_grandmaster_skill._30_say)
                    
wait()
                else
                    
say_title(gameforge.training_grandmaster_skill._10_sayTitle)
                    
say(gameforge.training_grandmaster_skill._40_say)
                    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_title
(gameforge.training_grandmaster_skill._10_sayTitle)
                
say(gameforge.training_grandmaster_skill._50_say)
                return
            
end
            say_title
(gameforge.training_grandmaster_skill._10_sayTitle)
            
say(gameforge.training_grandmaster_skill._60_say)

            
local menu_list = {}
            
table.foreach(name_list, function(inametable.insert(menu_listnameend)
            
table.insert(menu_listgameforge.locale.cancel

            
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(string.format(gameforge.training_grandmaster_skill._70_chatcur_alignment..gameforge.training_grandmaster_skill._75_chat..need_alignment))

            
local title=string.format(gameforge.training_grandmaster_skill._80_stringFormatskill_nameskill_level-30+1)

            
say_title(gameforge.training_grandmaster_skill._10_sayTitle)
            
say(gameforge.training_grandmaster_skill._90_say)

            if 
cur_alignment<-19000+need_alignment then
                say_reward
(gameforge.training_grandmaster_skill._100_sayReward)
                                return
            
end

            
if cur_alignment<0 then
say_reward
(string.format(gameforge.training_grandmaster_skill._110_sayRewardneed_alignmentneed_alignment*2))
                
say_reward(gameforge.training_grandmaster_skill._120_sayReward)
                
need_alignment=need_alignment*2
            
elseif cur_alignment<need_alignment then
say_reward
(string.format(gameforge.training_grandmaster_skill._130_sayRewardneed_alignment))
                
say_reward(gameforge.training_grandmaster_skill._140_sayReward)
            else
say_reward(string.format(gameforge.training_grandmaster_skill._130_sayRewardneed_alignment))
            
end
                
            local s
select(gameforge.locale.levelup.prev_quest_gogameforge.locale.cancel)    
            
            if 
s==2 then
                
return
            
end


            
if cur_alignment>=and cur_alignment<need_alignment then
say_title
(title)
                
say_reward(gameforge.training_grandmaster_skill._150_sayReward)
                
say(gameforge.training_grandmaster_skill._160_say)
                
say_reward(gameforge.training_grandmaster_skill._170_sayReward)
                
say(gameforge.training_grandmaster_skill._180_say)
                
local s=input()
                
string.gsub(s"(%a*)%s*""%1")
                
string.lower(string.gsub(s"(%a*)%s*""%1"))

                
local t string.gsub(gameforge.training_grandmaster_skill._10_answer"(%a*)%s*""%1")
                
string.lower(string.gsub(gameforge.training_grandmaster_skill._10_answer"(%a*)%s*""%1"))
                
                if 
s!=t then
                    
return
                
end
            end

            
if get_time() < pc.getqf("next_time"then
                
if pc.is_skill_book_no_delay() then
                    pc
.remove_skill_book_no_delay()
                else
                    
say_title(gameforge.training_grandmaster_skill._10_sayTitle)
                    return
                
end
            end

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


            if 
need_alignment>0 then
                
if pc.count_item(50513) > 0 then
                    
if pc.learn_grand_master_skill(skill_vnumthen
                        pc
.change_alignment(-need_alignment)
                
                        
say_title(title)
                        
say_reward(gameforge.training_grandmaster_skill._190_sayReward)

                        if 
40 == pc.get_skill_level(skill_vnumthen
                            say
(gameforge.training_grandmaster_skill._200_say)
                            
say(string.format(gameforge.training_grandmaster_skill._210_sayskill_name))
                            
say(gameforge.training_grandmaster_skill._220_say)
                        else
                            
say(gameforge.training_grandmaster_skill._230_say)
                            
say(string.format(gameforge.training_grandmaster_skill._240_sayskill_nameskill_level-30+1+1))
                        
end
                        say_reward
(gameforge.training_grandmaster_skill._250_sayReward)
                        
say_reward(string.format(gameforge.training_grandmaster_skill._260_sayRewardneed_alignment))
                    else
                        
say_title(title)
                        
say_reward(gameforge.training_grandmaster_skill._270_sayReward)
                        
say(gameforge.training_grandmaster_skill._280_say)
                        
say_reward(gameforge.training_grandmaster_skill._290_sayReward)
                        
pc.change_alignment(-number(need_alignment/3need_alignment/2))
                    
end
                    pc
.remove_item(50513)
                else
                    
char_log(0"HACK 50513"pc.getname())
                
end
            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
end 
Bei Rechtsklick macht der Seelenstein einfach garnichts.
- Nicht mit M-Skill
- Nicht mit G1-Skill

kp woran das liegt..
weis jemand eine Lösung
Type vom Item 50513 in der item_proto auf 18?
01/02/2015 14:01 .yorliK#10796
Quote:
Originally Posted by .мαяfυ™ View Post
Bei Rechtsklick macht der Seelenstein einfach garnichts.
- Nicht mit M-Skill
- Nicht mit G1-Skill

kp woran das liegt..
weis jemand eine Lösung
Wie Delta bereits schrieb, Type des Seelensteins auf 18.
Und versuch mal die hier:
Code:
quest training_grandmaster_skill begin
	state start begin
		when 50513.use begin
			if pc.get_skill_group() == 0 then
				say_title("Seelenstein")
				say("Du besitzt noch keine Fertigkeiten.")
				return
			end
			if get_time() < pc.getqf("next_time") then
				if pc.is_skill_book_no_delay() then
					say_title("Seelenstein")
					say("Du kannst den Seelenstein erneut lesen.")
					wait()
				else
					say_title("Seelenstein")
					say("Du kannst den Seelenstein noch nicht lesen.")
					say("Warte noch ein wenig.")
					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_title("Seelenstein")
				say("Du hast gar keine Großmeisterfertigkeiten.")
				return
			end
			say_title("Seelenstein")
			say("Welche Fertigkeit möchtest du trainieren?")
			local menu_list = {}
			table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
			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)
			--local title=string.format(gameforge.training_grandmaster_skill._80_stringFormat, skill_name, skill_level-30+1)
			say_title("Seelenstein")
			say("")
			if cur_alignment<-19000+need_alignment then
				say_reward("Du hast zu wenig Rangpunkte.")
				return
			end

			if cur_alignment<0 then
				say_reward("Dir werden "..(need_alignment*2).." Rangpunkte abgezogen.")
				need_alignment=need_alignment*2
			elseif cur_alignment<need_alignment then
				say_reward("Dir werden "..(need_alignment).." Rangpunkte abgezogen.")
			else
				say_reward("Dir werden "..(need_alignment).." Rangpunkte abgezogen.")
			end
			if select("Weiter", "Abbrechen")==2 then return end
			if cur_alignment>=0 and cur_alignment<need_alignment then
				say_title("Trainieren "..skill_name.." "..(skill_level-30+1))
				say_reward("Nun gut, dann wollen wir mal trainieren.")
				say("")
				say_reward("Um zu trainieren gebe 'Trainieren' ein.")
				say("")
				local s=input()
				if s!= "Trainieren" then return end
			end
			if get_time() < pc.getqf("next_time") then
				if pc.is_skill_book_no_delay() then
					pc.remove_skill_book_no_delay()
				end
			end
			pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
			if need_alignment>0 then
				if pc.count_item(50513) > 0 then
					pc.set_skill_level(skill_vnum,pc.get_skill_level(skill_vnum)+1)
					pc.change_alignment(-need_alignment)
					say_title("Trainieren "..skill_name.." "..(skill_level-30+1))
					say_reward("Erfolgreich trainiert.")
					if 40 == pc.get_skill_level(skill_vnum) then
						say("")
						say(skill_name.." ist nun Perfekter Meister.")
						say("")
					else
						say("")
						say(skill_name.." steigt auf G"..(skill_level-30+1+1)..".")
					end
					say_reward("")
					say_reward("Dir wurden "..need_alignment.." Rangpunkte abgezogen.")
					pc.remove_item(50513)
				else
					char_log(0, "HACK 50513", pc.get_name())
				end
			end
		end
		function BuildGrandMasterSkillList(job, group)
			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(i, skill_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_list, skill_vnum)
				local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
				if name == nil then name=skill_vnum end
					table.insert(ret_name_list, name)
				end
			end)
			return {ret_vnum_list, ret_name_list}
		end
	end
end
01/02/2015 14:48 G.I Duke#10797
Quote:
Originally Posted by .Delta View Post
Fehlermeldung?



Type vom Item 50513 in der item_proto auf 18?
Jap ist er.

@.Kilroy ich werde sie später mal Testen.
deshalb kapier ich es ja nicht hatte den Type
ja umgestellt ..^^
01/02/2015 18:46 DAS IST VEGAAZ#10798
Quote:
Originally Posted by #AnymRolex* View Post
Hey Com,

Wie kann ich das erweitern das ich da noch ne Truhe öffnen einstellen kann? Ich kenn mich nicht so gut mit Quest aus bzw. wie viel mal "end" muss ich schreiben wenn ich immer ne neue Truhe eintragen möchte:

Quest:
Eigentlich kommt da kein weiteres end dazu da das end die when schleife abschließt, das öffnen ist ja alles eine when schleife also ein end.
Das heißt du kannst einfach ein

elseif 15==r then
pc.give_item2(VNUM, 1)
pc.remove_item(50133, 1)
end

hinzufügen.

Mfg,
Vegaaz
01/02/2015 22:33 .Boa Hancock#10799
Bekomme bei der Quest
Code:
Error occured on compile wartung.quest
Quest
Code:
quest wartung begin
    state start begin
        when 20011.chat."Admin>: Mentanta" with pc.is_gm() begin
            if game.get_event_flag("login") == 0 then
				say("Salut "..pc.get_name().." . De aici poti porni sau opri mentanta.")
				say("Ce doresti sa faci?")
				local f = select ("Incepe mentanta" , "Inapoi")
				if f == 2 then
			return
				elseif f == 1
                say("In cate Minute sa inceapa mentanta?[ENTER](Cel putin 30 de Minute!)")
                local a = tonumber(input())
                if a == nil then
                    say("Te rog introduce doar cifre!") 
			return
                elseif  a <= 29 then
                    return
				elseif game.get_event_flag("login") == 1 then
					say("Mentanta este deja activata!")
				return
                minutes = a
                notice_all("Mentanta va incepe in '..minutes..' Minute. Sunteti rugati sa va delogati cu 5 Minute inainte!")
				notice_all("Sau veti pierde Iteme. Iar Itemel nu vor putea fi inlocuite.")
                server_loop_timer('reboot_time',60*5,(os.time()+minutes*60));
            else
                say("Vrei sa deschizi Login-ul?")
                    local f = select ("Da" , "Inapoi")
                        if f == 1 then
                            mysql_query("UPDATE account.account SET account.status = 'OK' WHERE status = 'SHUTDOWN' and account.login NOT IN (SELECT mAccount FROM common.gmlist);")
                            game.set_event_flag("login", 1)
                        elseif f == 2 then
                            return
                        end
            end
        when reboot_time.server_timer begin
            if os.time() < get_server_timer_arg() then
                notice_all("Mentata va incepe in '..tostring(math.floor((get_server_timer_arg()-os.time())/60))..' Minuten. Nu uitati sa va delogati!")
            else
                mysql_query("UPDATE account.account SET account.status = 'SHUTDOWN' WHERE status = 'OK' and account.login NOT IN (SELECT mAccount FROM common.gmlist);")
                cmdchat("exit") 
                game.set_event_flag("login", 0)
			end
        end
    end
end
Bisschen hilfe? :D
01/03/2015 19:14 Rofelmau#10800
Elseif ohne then und ends fehlen, weiß nicht wo die hin sollen aber da Fehlen 2 oder 3