[SERVICE] Die Questkontrolle

08/05/2014 21:36 .Vegas™#10411
Kann mir jemand da helfen bitte ???
PHP Code:
quest tele begin  
    state start begin  
        when 70021.
use begin  
            say_title
("Farmmap")  
            
say_green("Du willst für dein Eqiupment was tuhen?")  
            
say_green("Dann Porte ich dich jetzt auf die +++++ Farmmap!")  
            
say_green("Viel Spaß beim Farmen.")  
            
say_reward("Willst du wirklich dorthin?")  
          
        
local s select("Ja""Nein")  
            if 
== 1 then  
                pc
.warp(9728000,1024000)  
            else  
                return  
            
end  
        end   
    end   
end 
Es geht alles aber der will sich nicht porten.

lg.
.Vegas
08/05/2014 21:43 [-Lee-]#10412
Quote:
Originally Posted by [-Lee-] View Post
PHP Code:
define BLOCK_DOOR 20387 
define DUNGEON_MAN 20385 
define DUNGEON_MAN_DIR 0 
define DUNGEON_MAP_INDEX 351 
define ENTER_LIMIT_TIME 30 
define ENTRY_MAN 20394 
define ENTRY_MAP_INDEX 62 
define FINAL_BOSS 6091 
define LEVEL2_KEY 30329 
define LEVEL2_STONE 20386 
define LEVEL4_TARGET 6051 
define LEVEL5_REALKEY 30330 
define LEVEL5_STONE 20386 
define LEVEL5_GEN_LIMIT 100 
define LEVEL6_TARGET 8057 
define LEVEL_CUT 100 
define MOB_REGEN_FILE_PATH 
"data/dungeon/flame_dungeon/" 
define IN_DOOR 20388 
define NPC_REGEN_FILE_PATH 
"data/dungeon/flame_dungeon/npc.txt" 
define TICKET_GROUP 10033 
define LIMITED_PASS_TICKET 71175 

quest flame_dungeon begin 
    state start begin     
        when ENTRY_MAN
.click with pc.get_level() >= 90 begin 
            pc
.give_item2(LIMITED_PASS_TICKET1
            
set_state(run
        
end 
    end 

    state run begin 
     
    
function setting() 
        return  
        { 
        [
"bossroom_entry_pos"] = {8109,6867}, 
        [
"boss_pos"] = {686,637}, 
        [
"doors_pos"] = { 
            {
320,394}, 
            {
293,359}, 
            {
333,321}, 
            {
378,320}, 
            {
400,355}, 
            {
394,401
        }, 
        [
"idoors_pos"] = { 
            {
268,447}, 
            {
234,359}, 
            {
300,264}, 
            {
454,217}, 
            {
470,355}, 
            {
467,469
        }, 
        [
"doors_dir"] = {135,90,210,152,90,223}, 
        [
"idoors_dir"] = {135,90,210,135,90,239}, 
        [
"dungeon_entry_pos"] = {77626739},-- 던전에 처음 들어오는 곳 
        
["DUNGEON_MAN_bpos"] = {690,722}, 
        [
"DUNGEON_MAN_pos"] = {354,362}, 
        [
"LEVEL2_STONE_pos"] = {195,352}, 
        [
"LEVEL4_TARGET_pos"] = {470,175}, 
        [
"LEVEL5_STONE_pos"] = { 
                {
486345}, 
                {
511336}, 
                {
525349}, 
                {
521365}, 
                {
503372}, 
                {
486365}, 
                {
500354
        }, 
        [
"LEVEL6_TARGET_pos"] = {511,480}, 
        [
"outside_entry_pos"] = {6142,7068}, --입장시켜주는애 서있는 곳 
        
["YAK_pos"] = {376397} -- 약환 부하 
         
        

    
end 
    
function is_flamed(idx) -- 적룡성에 있는지 확인  
        
return idx >= DUNGEON_MAP_INDEX 10000 and idx < (DUNGEON_MAP_INDEX 1) *10000 
    end 
    
function make_dungeon() -- &#45912;전 만들기 
        
local setting flame_dungeon.setting() 
        
d.new_jump_party(DUNGEON_MAP_INDEXsetting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2]) 
        -- 
d.spawn_mob_ac_dir(DUNGEON_MANsetting.DUNGEON_MAN_pos[1], setting.DUNGEON_MAN_pos[2],DUNGEON_MAN_DIR
        -- 
d.spawn_mob(YAK,setting.YAK_pos[1],setting.YAK_pos[2]) 
        
d.regen_file(NPC_REGEN_FILE_PATH
        
d.setf("level",0
        for 
i=1,do 
            
d.set_unique("door"..id.spawn_mob_ac_dir(BLOCK_DOORsetting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i])) 
        
end 
        
for i=1,do 
            
d.set_unique("idoor"..id.spawn_mob_ac_dir(IN_DOORsetting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i])) 
        
end 
        d
.setf("clear_count",0
        
d.setf("started",0
        
d.setf("dungeon_enter",0) -- &#51221;상적으로 입장했는지? // 비정상 : 0 정상 : 1 // 튕기면 입장제한시간을 기록 안함 
    
end     
    
function go_boss() -- &#48372;스룸 가기  
        
local setting flame_dungeon.setting() 
        if 
pc.get_level() < 104 then --&#47112;벨확인 
            
-- syschat(gameforge.flame_dungeon._580_notice
            
say(gameforge.flame_dungeon._580_notice
            return 
        else 
            if 
pc.getf("main_quest_flame_lv103""__status")==main_quest_flame_lv103.__COMPLETE__ then -- &#49440;행퀘스트 확인 
                
-- say_title(gameforge.flame_dungeon._010_say
                
say(gameforge.flame_dungeon._010_say
                
local warp select(gameforge.flame_dungeon._020_select,gameforge.flame_dungeon._030_select
                if 
warp == 1 then 
                    d
.setf("level",17
                    
d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2]) 
                    
d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_fild_boss.txt"
                --    
d.spawn_mob(DUNGEON_MAN,setting.DUNGEON_MAN_bpos[1],setting.DUNGEON_MAN_bpos[2]) 
                    
d.spawn_mob(FINAL_BOSS,setting.boss_pos[1],setting.boss_pos[2]) 
                
end 
            
else  
                -- 
syschat(gameforge.flame_dungeon._040_notice
                
say(gameforge.flame_dungeon._040_notice
                return 
            
end 
        end 
    end 
    
function level_clear() -- &#47112;벨 깼을때, 리젠클리어, 지역클리어 
        
d.setf("level",0
        
d.clear_regen() 
        
d.purge_area(750000,620000,817400,689400) -- &#47605;전체 -- d.purge() 사용고려 
    
end 
    
function clear_timer(inx) -- &#53440;이머 다지우기 
        
clear_server_timer ("flame_dungeon_0m_left_timer"inx
        
clear_server_timer ("flame_dungeon_1m_left_timer"inx
        
clear_server_timer ("flame_dungeon_5m_left_timer"inx
        
clear_server_timer ("flame_dungeon_10m_left_timer"inx
        
clear_server_timer ("flame_dungeon_15m_left_timer"inx
        
clear_server_timer ("flame_dungeon_30m_left_timer"inx
        
clear_server_timer ("flame_dungeon_45m_left_timer"inx
        
clear_server_timer ("killed_A_1"inx
        
clear_server_timer ("killed_A_2"inx
        
clear_server_timer ("flame_dungeon_ticket_remove"inx)     
    
end 
     
        when login begin 
            local idx 
pc.get_map_index() 
            
local setting flame_dungeon.setting() 
            if 
idx == DUNGEON_MAP_INDEX then 
                pc
.warp(setting.outside_entry_pos[1]*100setting.outside_entry_pos[2] * 100ENTRY_MAP_INDEX
            elseif 
flame_dungeon.is_flamed(idxthen -- &#45912;전 입장, 보스룸 입장 예외 
            
------------------------------------------------------------------------------------------------------------------------------------------------------ 
            --&
#50500;래의 두줄중 위에줄을 사용하면 던전에서 종료했을경우 다시 원래 위치로 돌아온다. 아래줄을 활성화 하면 던전에서 종료했을 경우 던전 밖으로 나가게 된다. 
            
--&#45912;전에서 종료했을 경우 다시 원래 위치로 돌아올 경우, 던전에서 나가는 방법을 만들어줘야 하기 때문에 적룡성비의 나가기란 옵션을 활성화 해줘야 한다. 
            
------------------------------------------------------------------------------------------------------------------------------------------------------ 
                -- 
pc.set_warp_location(00) --&#53909;겼을때 다시 돌아오게 만들어 주는 부분 
                
pc.set_warp_location(ENTRY_MAP_INDEXsetting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- &#45912;전 나갔을 때 밖으로 튕기게함 
                
local ticketGroup = {get_special_item_group (TICKET_GROUP)} 
                if 
d.getf("dungeon_enter") == 0 then -- &#51652;행중이 아니면 
                    
local canPass false 
                    
for i=1table.getn(ticketGroup),do  
                        if 
pc.count_item(ticketGroup[i]) >= ticketGroup[i+1then 
                            canPass 
true 
                            
break 
                        
end 
                    end 

                    
if get_global_time() - pc.getf("flame_dungeon","exit_time") < ENTER_LIMIT_TIME 60 then -- &#51077;장제한시간이 걸렸으면 
                        
notice_multiline(gameforge.flame_dungeon._050_notice,d.notice
                        
say(gameforge.flame_dungeon._060_say
                        
timer("flame_dungeon_warp_timer"5
                    elseif 
not canPass then 
                        notice_multiline
(gameforge.flame_dungeon._070_notice,d.notice
                        
say(gameforge.flame_dungeon._080_say
                        
timer("flame_dungeon_warp_timer"5
                    elseif 
pc.get_level() < 100 then 
                        notice_multiline
(gameforge.flame_dungeon._090_notice,d.notice
                        
say(gameforge.flame_dungeon._100_say
                        
timer("flame_dungeon_warp_timer"5
                    
end 
                
elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- &#51652;행중인데 티켓이 안지워졌을경우 
                     
                    
for i=1table.getn(ticketGroup),do  
                        if 
pc.count_item(ticketGroup[i]) >= ticketGroup[i+1then 
                            pc
.remove_item(ticketGroup[i], ticketGroup[i+1]) 
                            break 
                        
end 
                    end 
                    pc
.setf("flame_dungeon","ticket_delete",1
                
end 
            
else 
                
pc.setf("flame_dungeon","ticket_delete",0
            
end 
        end 
        when flame_dungeon_warp_timer
.timer begin 
            local setting 
flame_dungeon.setting() 
            
pc.warp(setting.outside_entry_pos[1]*100setting.outside_entry_pos[2] * 100ENTRY_MAP_INDEX
        
end 
        when logout begin 
            local idx 
pc.get_map_index() 
            if 
flame_dungeon.is_flamed(idxthen  
                
if d.getf("dungeon_enter") == 1 then -- &#51221;상적인 던전 입장 후 로그아웃 
                    
pc.setf("flame_dungeon","exit_time",get_global_time()) -- &#51064;스턴스 안에서의 마지막 시간을 기록, 근데 시간제한 때문에 or 그냥 튕긴거면 안기록 
                
end 
                 

            end 
        end 
        when ENTRY_MAN
.chat.gameforge.flame_dungeon._110_npcChat begin 
         
            local setting 
flame_dungeon.setting() 
            if 
party.is_party() then 
                
-- &#45912;전 도중 나갈 경우 재입장 가능하도록 
                
local party_check 
                
if d.find(party.getf("dungeon_index")) then 
                    party_check 
= (d.getf_from_map_index("party_leader_pid"party.getf("dungeon_index")) == party.get_leader_pid()) 
                
end 
                 
                
if d.find(party.getf("dungeon_index")) and party_check then 
                    
if get_global_time() - pc.getf("flame_dungeon","exit_time") < 60 then -- &#51217;종 이후 5분 내? 
                        
local dungeon_level d.getf_from_map_index("level"party.getf("dungeon_index")) 
                        if 
dungeon_level == 17 then -- &#48372;스 
                            
pc.warp(setting.bossroom_entry_pos[1] * 100setting.bossroom_entry_pos[2] * 100party.getf("dungeon_index")) 
                        else 
                            
pc.warp(setting.dungeon_entry_pos[1] * 100setting.dungeon_entry_pos[2] * 100party.getf("dungeon_index")) 
                        
end 
                    
else -- 5&#48516; 초과하여 재 입장 불가 
                        
say_title(mob_name(ENTRY_MAN)) 
                        
say(gameforge.flame_dungeon._590_say
                    
end 
                
else 
                    
local pids = {party.get_member_pids()} 
                    
local noTicketMembers = {} 
                    
local notEnoughLevelMembers = {} 
                    
local ticketCheck true 
                    local levelCheck 
true 
                    local ticketGroup 
= {get_special_item_group (TICKET_GROUP)} 
                    for 
ipid in nextpidsnil do 
                        
q.begin_other_pc_block(pid
                        
local canPass false 
                        
for idx=1table.getn(ticketGroup),do  
                            if 
pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1then 
                                canPass 
true 
                                
break 
                            
end 
                        end 
                         
                        
if not canPass then 
                            table
.insert(noTicketMemberspc.get_name()) 
                            
ticketCheck false 
                        end 
                        
if pc.level LEVEL_CUT then 
                            table
.insert(notEnoughLevelMemberspc.get_name()) 
                            
levelCheck false 
                        end 
                        q
.end_other_pc_block() 
                    
end 

                    
if not ticketCheck then 
                        say_title
(mob_name(ENTRY_MAN)) 
                        
say(gameforge.flame_dungeon._610_say
                        for 
iname in nextnoTicketMembersnil do 
                            
say(color(1,1,0), "    "..name
                        
end 
                        
if levelCheck then 
                            
return 
                        else 
                            
wait() 
                        
end 
                    end 

                    
if not levelCheck then 
                        say_title
(mob_name(ENTRY_MAN)) 
                        
say(gameforge.flame_dungeon._630_say
                        for 
iname in nextnotEnoughLevelMembersnil do 
                            
say(color(1,1,0), "    "..name
                        
end 
                        
return 
                    
end 

                    
if party.is_leader() then 
                        say
(gameforge.flame_dungeon._120_say
                        
local warp select(gameforge.flame_dungeon._130_select,gameforge.flame_dungeon._140_select
                        if 
warp == 1 then 
                            
if party.is_map_member_flag_lt("exit_time"get_global_time() - ENTER_LIMIT_TIME 60 then 
                                flame_dungeon
.make_dungeon() 
                            else 
                                --
say("test : 파티원의 입장 제한시간이 끝나지 않았습니다."
                                
say(gameforge.flame_dungeon._600_say
                            
end 
                        end 
                         
                        party
.setf("flame_dungeon_boss_kill_count"0
                         
                    else 
                        
say(gameforge.flame_dungeon._150_say
                    
end 
                end 
            
else 
                
say(gameforge.flame_dungeon._160_say
            
end 
        end 
        
-- when ENTRY_MAN.chat."Test : 리소스확인" with is_test_server() begin -- &#53580;스트용 
            
-- local setting flame_dungeon.setting() 
            -- 
pc.setf("flame_dungeon","fdRtest",1
            -- 
pc.warpsetting.dungeon_entry_pos[1]*100setting.dungeon_entry_pos[2]*100DUNGEON_MAP_INDEX
        -- 
end 
         
         
        when ENTRY_MAN
.chat."TEST : Init time limit init" with is_test_server() begin -- &#53580;스트용 
            
pc.setf("flame_dungeon","exit_time",get_global_time()-1800
            
say("Done"
        
end 
        
-- when DUNGEON_MAN.chat."Test : 현재 상태" with is_test_server() begin -- &#53580;스트용 
            
-- say("남은 몬스터 : "..d.count_monster()) 
            -- 
say("level : "..d.getf("level")) 
            -- 
say("Dmap index : "..d.get_map_index()) 
            -- 
say("Pmap index : "..pc.get_map_index()) 
            -- 
say("access limit : "..pc.getf("flame_dungeon","exit_time")) 
            -- 
say("global time : "..get_global_time()) 
            -- if 
flame_dungeon.is_flamed(d.get_map_index()) then 
                
-- say("in dungeon") -- is_flamed &#54632;수 체크 
            
-- end 
            
-- if d.is_unique_dead("stone1"then 
                
-- say("stone1 is dead"
            -- else 
                -- 
say("stone1 is not dead"
            -- 
end 
        
-- end 
        
-- when DUNGEON_MAN.chat."처음으로" begin -- &#53580;스트용 
            
-- say("초기화 합니다"
            -- 
flame_dungeon.clear_timer(d.get_map_index()) 
            -- 
flame_dungeon.make_dungeon() 
        -- 
end 
        when DUNGEON_MAN
.chat."Test : Boss Room" with is_test_server() begin -- &#53580;스트용 
            
flame_dungeon.go_boss() 
        
end 
         
        
-- < &#49884;간 경과 타이머> 
        
-- when DUNGEON_MAN.chat."나가기" begin -- &#45912;전에서 튕기지 않게 할 경우 활성화 
            
-- local setting flame_dungeon.setting() 
            -- 
say("밖으로 나가시겠습니까?"
            -- 
local warp select("확인","취소"
            -- if 
warp == 1 then 
                
-- pc.warp(setting.outside_entry_pos[1]*100setting.outside_entry_pos[2] * 100ENTRY_MAP_INDEX
            -- 
end 
        
-- end 
        when flame_dungeon_45m_left_timer
.server_timer begin 
            
if d.select(get_server_timer_arg()) then 
                notice_multiline
(string.format(gameforge.flame_dungeon._180_notice45),d.notice
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice
                
server_timer('flame_dungeon_30m_left_timer'15*60get_server_timer_arg()) 
            
end 
        end 
        when flame_dungeon_30m_left_timer
.server_timer begin 
            
if d.select(get_server_timer_arg()) then 
                notice_multiline
(string.format(gameforge.flame_dungeon._180_notice30),d.notice
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice
                
server_timer('flame_dungeon_15m_left_timer'15*60get_server_timer_arg()) 
            
end 
        end 
        when flame_dungeon_15m_left_timer
.server_timer begin 
            
if d.select(get_server_timer_arg()) then 
                notice_multiline
(string.format(gameforge.flame_dungeon._180_notice15),d.notice
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice
                
server_timer('flame_dungeon_5m_left_timer'10*60get_server_timer_arg()) 
            
end 
        end 
        when flame_dungeon_5m_left_timer
.server_timer begin 
            
if d.select(get_server_timer_arg()) then 
                notice_multiline
(string.format(gameforge.flame_dungeon._180_notice5),d.notice
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice
                
server_timer('flame_dungeon_1m_left_timer'4*60get_server_timer_arg()) 
            
end 
        end 
        when flame_dungeon_1m_left_timer
.server_timer begin 
            
if d.select(get_server_timer_arg()) then 
                notice_multiline
(string.format(gameforge.flame_dungeon._180_notice1),d.notice
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice
                
server_timer ("flame_dungeon_0m_left_timer"60get_server_timer_arg()) 
            
end 
        end 
        when flame_dungeon_0m_left_timer
.server_timer begin 
            local setting 
flame_dungeon.setting() 
            if 
d.select(get_server_timer_arg()) then         
                notice_multiline
(gameforge.flame_dungeon._190_notice,d.notice
                
notice_multiline(gameforge.flame_dungeon._200_notice,d.notice
                
server_timer("dungeon_end_timer",10,d.get_map_index())     
            
end 
        end     


        
-- <<<< &#45912;전 진행>>>> -- 
        
when DUNGEON_MAN.chat.gameforge.flame_dungeon._210_npcChat with npc.lock() begin -- '0x'&#45716; x번째 레벨 퀘스트 받을 수 있는 상태 , '1x'는 x번째 레벨 퀘스트 진행중 
            
local setting flame_dungeon.setting() 
            if 
d.getf("started") == 0 then 
                say
(gameforge.flame_dungeon._230_say
                
say(gameforge.flame_dungeon._240_say
                
wait() 
                
d.setf("started",1
                -- &
#54028;티원이 튕겨버렸는데 자기만 남아서 exit timer가 리셋되면 안되니깐 다음레벨을 눌렀을때를 시작할때로 봄 
                
server_timer ("flame_dungeon_45m_left_timer",15*60d.get_map_index()) 
                
notice_multiline(gameforge.flame_dungeon._250_notice,d.notice
                
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice
                 
                -- &
#53685;행증 관련된 처리 
                
-- &#51077;장 후에 티켓을 없앤 사람을 튕겨내기 위해서 타이머를 이용해 티켓을 제거한다. 
                
local pids = {party.get_member_pids()} 
                
local ticketGroup = {get_special_item_group (TICKET_GROUP)} 
                for 
ipid in nextpidsnil do 
                    
q.begin_other_pc_block(pid
                    
local canPass false 
                    
for idx=1table.getn(ticketGroup),do  
                        if 
pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1then 
                            canPass 
true 
                            pc
.remove_item(ticketGroup[idx], ticketGroup[idx+1]) 
                            break 
                        
end 
                    end 
                     
                    
if not canPass then 
                        pc
.warp(setting.outside_entry_pos[1]*100setting.outside_entry_pos[2] * 100ENTRY_MAP_INDEX
                    
end 
                    q
.end_other_pc_block() 
                
end 
                d
.setqf2("flame_dungeon","ticket_delete",1
                
d.setf("dungeon_enter",1
                 
                -- &
#45912;전과 파티에 서로에 대한 정보를 저장한다. 
                
party.setf("dungeon_index"d.get_map_index()) 
                
d.setf("party_leader_pid"party.get_leader_pid()) 
            
end 
            
if d.getf("level") < 7 then --&#51652;행중이 아니면 
                
if d.getf("clear_count") == 6 then -- &#48169; 여섯개 했으면 보스방 
                    
d.setf("level",7
                else 
                    
local rand number(1,6)--&#47004;덤에서 방문체크는 따로 배열없이 방의 문의 열려있는지로 체크함 
                    
local setlev 
                    d
.setf("level",7) -- &#54841;시 모를 문제가 생겨 레벨이 안잡힐경우를 대비해 보스룸으로 셋팅해둠 
                    
for i=1,50 do 
                        
setlev setlev 
                        
if setlev 6 then 
                            setlev 

                        end 
                        
if not d.is_unique_dead("door"..setlevthen 
                            rand 
rand 
                            
if rand == 0 then 
                                d
.setf("level",setlev
                                
d.setf("clear_count",d.getf("clear_count")+1
                                break 
                            
end     
                        end 
                    end 
                end 
            end 
                
if d.getf("level") == 1 then 
                    say
(gameforge.flame_dungeon._260_say
                    
notice_multiline(gameforge.flame_dungeon._260_say,d.notice
                    
d.kill_unique("door1"
                    
d.kill_unique("idoor1"
                    
d.setf("level",11
                    
d.regen_file (MOB_REGEN_FILE_PATH.."fd_a.txt"
                         
                    
server_timer ("killed_A_1"12d.get_map_index()) 
                elseif 
d.getf("level") == 11 then 
                    say
(gameforge.flame_dungeon._270_say
                    
say_title(gameforge.flame_dungeon._280_sayTitle .. d.count_monster()) 
                elseif 
d.getf("level") == 2 then 
                        say
(gameforge.flame_dungeon._290_say
                        
say(gameforge.flame_dungeon._300_say
                        
notice_multiline(gameforge.flame_dungeon._290_say,d.notice
                        
notice_multiline(gameforge.flame_dungeon._300_say,d.notice
                        
d.spawn_mob(LEVEL2_STONEsetting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- &#48393;인석 소환 
                        
d.kill_unique("door2"
                        
d.kill_unique("idoor2"
                        
d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_b.txt"
                        
d.setf("level",12
                elseif 
d.getf("level") == 12 then 
                    say
(gameforge.flame_dungeon._310_say
                elseif 
d.getf("level") == 3 then 
                    say
(gameforge.flame_dungeon._260_say
                    
notice_multiline(gameforge.flame_dungeon._260_say,d.notice
                    
d.kill_unique("door3"
                    
d.kill_unique("idoor3"
                    
d.setf("level",13
                    
d.regen_file (MOB_REGEN_FILE_PATH.."fd_c.txt"
                    
server_timer ("killed_A_1"12d.get_map_index()) 
                elseif 
d.getf("level") == 13 then 
                    say
(gameforge.flame_dungeon._270_say
                    
say_title(gameforge.flame_dungeon._280_sayTitle..d.count_monster()) 
                elseif 
d.getf("level") == 4 then -- 474 178 
                    say
(gameforge.flame_dungeon._320_notice
                    
notice_multiline(gameforge.flame_dungeon._320_notice,d.notice
                    
d.setf("level",14
                    
d.kill_unique("door4"
                    
d.kill_unique("idoor4"
                    
d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_d.txt"
                    
d.spawn_mob(LEVEL4_TARGET,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- &#53440;겟몬스터 소한 
                
elseif d.getf("level") == 14 then 
                    say
(gameforge.flame_dungeon._330_say
                    
say(gameforge.flame_dungeon._340_say
                elseif 
d.getf("level") == 5 then -- 510 355 
                    say
(gameforge.flame_dungeon._350_say
                    
say(gameforge.flame_dungeon._360_say
                    
notice_multiline(gameforge.flame_dungeon._350_say,d.notice
                    
notice_multiline(gameforge.flame_dungeon._360_say,d.notice
                    
d.kill_unique("door5"
                    
d.kill_unique("idoor5"
                    
d.setf("level",15
                    
d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt"
                    
local vis = { 0,0,0,0,0,0,0
                    for 
i=1,do 
                        
vis[i] = 
                    end 
                    
for 1do -- &#47004;덤하게 돌소환 
                        
local ran number(1,7
                        
local st 
                        
for 150 do 
                            
st st 
                            
if st 7 then 
                                st 

                            end 
                            
if vis[st] == 0 then 
                                ran 
ran 
                                
if ran == 0 then 
                                    vis
[st] = 
                                    d
.set_unique("stone5_"..std.spawn_mob(LEVEL5_STONEsetting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2])) 
                                    break 
                                
end 
                            end 
                        end 
                    end   
                
elseif d.getf("level") == 15 then 
                    say
(gameforge.flame_dungeon._370_say
                elseif 
d.getf("level") == 6 then -- 507 490 
                    say
(gameforge.flame_dungeon._380_say)  
                    
notice_multiline(gameforge.flame_dungeon._380_say,d.notice
                    
d.setf("level",16
                    
d.kill_unique("door6"
                    
d.kill_unique("idoor6"
                    
d.set_regen_file (MOB_REGEN_FILE_PATH.."fd_f.txt"
                    
d.spawn_mob(LEVEL6_TARGETsetting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- &#53440;겟오브젝트 소환 
                
elseif d.getf("level") == 16 then 
                    say
(gameforge.flame_dungeon._390_say
                    
say(gameforge.flame_dungeon._400_say
                elseif 
d.getf("level") == 7 then 
                    
-- setskin(NOWINDOW
                    
flame_dungeon.go_boss() 
                else 
                    
say(gameforge.flame_dungeon._410_say
                
end 
            npc
.unlock()         
        
end 
     


        when dungeon_end_timer
.server_timer begin -- &#51333;료 타이머 (끝나고 나가는거) 
            
local setting flame_dungeon.setting() 
            if 
d.select(get_server_timer_arg()) then 
                flame_dungeon
.clear_timer(d.get_map_index())         
                
d.set_warp_location(ENTRY_MAP_INDEXsetting.outside_entry_pos[1] , setting.outside_entry_pos[2])  
                
d.exit_all() 
                
d.setf("party_leader_pid"0
            
end 
        end 

        when killed_A_1
.server_timer begin -- &#53440;이머 돌리기1 (level1,level3) 
            
if d.select(get_server_timer_arg()) then 
                
if d.count_monster() <= 0 then -- 1&#47112;벨 몬스터 전멸시 
                    
if d.getf("level") == 11 then 
                        notice_multiline
(gameforge.flame_dungeon._420_notice,d.notice
                        
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice
                    else 
                        
notice_multiline(gameforge.flame_dungeon._420_notice,d.notice
                        
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice
                    
end 
                    d
.setf("level",0
                else  
                    
server_timer ("killed_A_2"6get_server_timer_arg()) 
                
end 
            end 
        end 
        when killed_A_2
.server_timer begin -- &#53440;이머 돌리기2 (1과 2 번갈아가면서 돌아감) 
            
if d.select(get_server_timer_arg()) then 
                
if d.count_monster() <= 0 then -- 1&#47112;벨 몬스터 전멸시 
                    
if d.getf("level") == 11 then 
                        notice_multiline
(gameforge.flame_dungeon._420_notice,d.notice
                        
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice
                    else 
                        
notice_multiline(gameforge.flame_dungeon._420_notice,d.notice
                        
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice
                    
end 
                    d
.setf("level",0
                else  
                    
server_timer ("killed_A_1"6get_server_timer_arg()) 
                
end 
            end 
        end 

        when kill with flame_dungeon
.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2&#47112;벨 봉인석 열쇠 드랍 
            
local i number(1100) -- 100&#48516;의 1 확률로 열쇠드랍 
            
if == 1 then 
                game
.drop_item (LEVEL2_KEY1
            
end 
        end 
        when LEVEL2_STONE
.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == LEVEL2_KEY and d.getf("level") == 12 begin -- 2&#47112;벨 열쇠 먹었을때 
            
local i number(15) -- 5&#48516;의 1 확률로 진짜 열쇠 
            
if == 1 then 
                npc
.purge() 
                
item.remove() 
                
notice_multiline(gameforge.flame_dungeon._440_notice,d.notice
                
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice
                
flame_dungeon.level_clear() 
            else 
                
item.remove() 
                
say(gameforge.flame_dungeon._450_say
            
end 
        end 

        when LEVEL4_TARGET
.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin 
            notice_multiline
(gameforge.flame_dungeon._460_notice,d.notice
            
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice
            
flame_dungeon.level_clear() 
        
end 

        when kill with flame_dungeon
.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5&#47112;벨 봉인석 열쇠 드랍 
            
local i number(130) -- 30&#48516;의 1 확률로 열쇠드랍 
            
if == 1 then 
                game
.drop_item (LEVEL5_REALKEY1
            
end 
        end 
        when LEVEL5_STONE
.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == LEVEL5_REALKEY and d.getf("level") == 15 begin -- 5&#47112;벨 진짜열쇠 먹었을때 
            
local setting flame_dungeon.setting() 
            if 
npc.get_vid() == d.get_unique_vid("stone5_1"then -- &#52395;번째 꺼는 선행되어야 할 일이 필요없으니 찾자마자 제거해줌 
                
npc.purge() 
                
item.remove() 
                
say(gameforge.flame_dungeon._470_say
                
d.setf("stonekill",2) -- 2&#48264; 돌을 죽여라 
                
if d.count_monster() < LEVEL5_GEN_LIMIT then 
                    d
.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt"
                
end 
            
elseif npc.get_vid() == d.get_unique_vid("stone5_2"then  
                
if d.getf("stonekill") == 2 then -- 2&#48264;돌을 죽일 차롄데 2번돌에게 열쇠를 먹였을 때 
                    
npc.purge() 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._480_say
                    
d.setf("stonekill",3
                    if 
d.count_monster() < LEVEL5_GEN_LIMIT then 
                        d
.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt"
                    
end 
                
else 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._490_say
            --        
say("2번"
                
end 
            
elseif npc.get_vid() == d.get_unique_vid("stone5_3"then 
                
if d.getf("stonekill") == 3 then 
                    npc
.purge() 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._500_say
                    
d.setf("stonekill",4
                    if 
d.count_monster() < LEVEL5_GEN_LIMIT then 
                        d
.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt"
                    
end 
                
else 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._490_say
            --        
say("3번"
                
end 
            
elseif npc.get_vid() == d.get_unique_vid("stone5_4"then 
                
if d.getf("stonekill") == 4 then 
                    npc
.purge() 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._510_say
                    
d.setf("stonekill",5
                    if 
d.count_monster() < LEVEL5_GEN_LIMIT then 
                        d
.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt"
                    
end 
                
else 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._490_say
                --    
say("4번"
                
end 
            
elseif npc.get_vid() == d.get_unique_vid("stone5_5"then 
                
if d.getf("stonekill") == 5 then 
                    npc
.purge() 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._520_say
                    
d.setf("stonekill",6
                    if 
d.count_monster() < LEVEL5_GEN_LIMIT then 
                        d
.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt"
                    
end 
                
else 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._490_say
            --        
say("5번"
                
end 
            
elseif npc.get_vid() == d.get_unique_vid("stone5_6"then 
                
if d.getf("stonekill") == 6 then 
                    npc
.purge() 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._530_say
                    
d.setf("stonekill",7
                    if 
d.count_monster() < LEVEL5_GEN_LIMIT then 
                        d
.regen_file (MOB_REGEN_FILE_PATH.."fd_e.txt"
                    
end 
                
else 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._490_say
            --        
say("6번"
                
end 
            
else  
                if 
d.getf("stonekill") == 7 then 
                    npc
.purge() 
                    
item.remove() 
                    
notice_multiline(gameforge.flame_dungeon._440_notice,d.notice
                    
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice
                    
flame_dungeon.level_clear() 
                else 
                    
item.remove() 
                    
say(gameforge.flame_dungeon._490_say
            --        
say("7번"
                
end 
            end 
        end 

        when LEVEL6_TARGET
.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- &#47581;마석 파괴했을 때 
            
notice_multiline(gameforge.flame_dungeon._540_notice,d.notice
            
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice
            
flame_dungeon.level_clear() 
        
end 

        when FINAL_BOSS
.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- &#48372;스 죽였을때 
            
notice_multiline(gameforge.flame_dungeon._550_notice,d.notice
            
notice_multiline(gameforge.flame_dungeon._560_notice,d.notice
            
server_timer("dungeon_end_timer"60,d.get_map_index())     
            
flame_dungeon.level_clear() 
             
            -- &
#54028;티원 중, 야마천 잡는 퀘스트(104렙, 105렙 퀘스트) 진행중인 사람이 있으면 퀘스트 클리어 되도록. 
            
if party.is_party() then 
                party
.setf("flame_dungeon_boss_kill_count"1
            
end 
             
        end 
    end 
end 
Hallo alle zusammen,

ich habe ein Problem bei dem Flammenrun. Wenn ich dahin komme das man alle Monster töten soll passiert nix wenn ich alle getötet habe. Bei der Statue steht
BRÄUCHTE IMMER NOCH HILFE!
08/08/2014 00:13 Brodan#10413
Quote:
Originally Posted by Kilroy. View Post
Wie sollen die Boni auch draufbleiben, wenn man ne neue Rüstung bekommt und die alte entfernt...
Ich schreib sie dir um, allerdings benötigst du dann die folgenden quest_functions (such mal im Forum danach)
Code:
item2.set_attr
item.set_socket
item2.get_attr
item.get_socket
pc2.give_or_drop_item_and_select

# Du musst das Item nun auf den NPC ziehen.
Quest:

Suche noch immer nach den Questfunktionen für die Game-Rev 2089m.
08/08/2014 09:47 Premiumlike#10414
Joa brauch mal eure hilfe kommt keine fehler aber geht nicht
Der oberen 2 quest abschnitte gehen aber der drite unten nicht
PHP Code:
quest drago begin
    state start begin
        when login 
or levelup with pc.get_level() >=2  begin
            set_state
(information)
        
end    
    end
    
    state information begin
        when letter begin
            local v 
find_npc_by_vnum(20251)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Quest")
            
end
            send_letter
("Auftraug von Mazu")
        
end
        
        when button 
or info begin
            say_title
("Mazu braucht dich")
            
say("")
            
say("Der Drache Mazu hält schon")
            
say("seit einiger Zeit ausschau nach dir!")
            
say("")
            
say("Gehe zu Mazu")
            
say("")
        
end
        
        when __TARGET__
.target.click or
            
20251.chat."Mazu´s Auftrag" begin
            target
.delete("__TARGET__")
            
say("Drache Mazu:")
            
say("")
            
say("Ich der Drache Mazu brauche deine Hilfe!")
            
say("Kannst du mir bitte einige wichtige")
            
say("Materialien besorgen welche ich brauche um")
            
say("dir zu helfen wenn du stärker bist?")
            
say("")
            
say_reward("Besorge mir Kupfererz")
            
say("")
            
say_item_vnum(50604)
            
say("")
            
set_state(go_to_disciple)
        
end
    end
    
    state go_to_disciple begin
        when 20251.chat
."Kupfererz" with pc.count_item(50604) >0   begin
            say
("Mazu:")
            
say("Danke das du mir ein stück Kupfererz")
            
say("aufgetrieben hast,")
            
say("Nun bin ich in der Lage ein Item zu fertigen,")
            
say("welches dir eine kraft spüren lässt welche")
            
say("dir bis dahin nicht bekannt ist.")
            
pc.remove_item(506041)
            
set_state(go_to_baum)
        
end
    end
    
    state go_to_baum begin
        when __TARGET__
.target.click or
            
20251.chat."Item noch ka" begin
            say
("Mazu:")
            
say("Danke das du mir ein stück Kupfererz")
            
say("aufgetrieben hast,")
            
say("Nun bin ich in der Lage ein Item zu fertigen,")
            
say("welches dir eine kraft spüren lässt welche")
            
say("dir bis dahin nicht bekannt ist.")
            
pc.remove_item(507041)
            
pc.give_item2(505121)
        
end
    end
end 
08/09/2014 22:07 .Vegas™#10415
Guten Tag epvp,
Er sagt mir in Putty Error.
Ich weiß leider nicht wo der fehler liegt.


Wäre toll wenn mir jemand helfen könnte.

lg.

.Vegas
08/09/2014 22:55 thespeedyy#10416
PHP Code:
quest reittiertruhe begin 
    state start begin 
        when 38053.
use begin 
            pc
.give_item2(711241)                ---- Weißer-Löwe ---- 
            
pc.remove_item(380531)            ---- Reittier-Truhe verschwindet ---- 
        
end
        when 50023.
use begin 
            pc
.give_item2(7002410)                ---- Segenskugel ---- 
            
pc.remove_item(500231)            ---- Geldtasche verschwindet ---- 
        
end
        when 50125.
use begin 
            pc
.give_item2(530101)                ---- Leondias-Siegel ---- 
            
pc.remove_item(501251)            ---- Pet-Truhe verschwindet ---- 
        
end
    end
end 
da waren zwei ends zuviel^^
08/10/2014 01:59 Critella#10417
Ich hab irgendwo einen Fehler kann mri einer Helfen

quest user_panel begin
state start begin
when letter with pc.is_player() begin
send_letter("User Panel by Metin2")
end
when button or info begin
say_title("Willkommen im User Panel by Metin2")
say("")
say_reward("Bitte waehle deine Option")
local head = select("Teleportieren", "Lager ", "Abbrechen")

if main_set == 1 then
say("Du willst dich also Teleportieren?")
say("")
local j = select("Ja","Nein")
if j == 2 then
return
end
if j == 1 then
say_reward("Wo möchtest du hin:")
local k = select("Map1-Rot","Map1-Blau","Map1-Gelb","Nirgens")
if k == 4 then
return
end
if k == 1 then
pc.warp(469300, 964200)
end
if k == 2 then
pc.warp(969600, 278400)
end
if k == 3 then
pc.warp (55700, 157900)
end
end
end

elseif head == 2 then
say_title("Lager")
say_reward("Waehle deine Option")
local lager = select("Lager oeffnen", "Itemshop Lager oeffnen", "Abbrechen")

if lager ==1 then
send_letter("User Panel by Metin2")
game.open_safebox()
setskin(NOWINDOW)

elseif lager == 2 then
send_letter("User Panel by Metin2")
game.open_mall()
setskin(NOWINDOW)

elseif lager == 3 then
send_letter("User Panel by Metin2")
return
end

elseif head == 5 then
send_letter("User Panel by Metin2")
return
end
end
end
end
08/10/2014 02:25 .Delta#10418
da, hab mal drüber geschaut.
Probier mal :)
Sollte es dennoch nicht funktionieren bitte ich um die Fehlermeldung.
PHP Code:
quest user_panel begin
    state start begin
        when letter begin
            send_letter
("User Panel by Metin2")
        
end
        when button 
or info begin
            say_title
("Willkommen im User Panel by Metin2")
            
say("")
            
say_reward("Bitte waehle deine Option")
            
local head select("Teleportieren""Lager ""Abbrechen")
            if 
head == 1 then -- war main_select?!?
                
say("Du willst dich also Teleportieren?")
                
say("")
                
local j select("Ja","Nein")
                if 
== 2 then
                    
return
                
end
                say_reward
("Wo möchtest du hin:")
                
local k select("Map1-Rot","Map1-Blau","Map1-Gelb","Nirgens")
                if 
== 4 then
                    
return
                elseif 
== 1 then
                    pc
.warp(469300964200)
                elseif 
== 2 then
                    pc
.warp(969600278400)
                elseif 
== 3 then
                    pc
.warp (55700157900)
                
end
            
elseif head == 2 then
                say_title
("Lager")
                
say_reward("Waehle deine Option")
                
local lager select("Lager oeffnen""Itemshop Lager oeffnen""Abbrechen")
                if 
lager ==1 then
                    send_letter
("User Panel by Metin2")
                    
game.open_safebox()
                    
setskin(NOWINDOW)
                elseif 
lager == 2 then
                    send_letter
("User Panel by Metin2")
                    
game.open_mall()
                    
setskin(NOWINDOW)
                elseif 
lager == 3 then
                    send_letter
("User Panel by Metin2")
                    return
                
end
            
elseif head == 3 then
                send_letter
("User Panel by Metin2")
            
end
        end
    end
end 
08/10/2014 06:57 .Vegas™#10419
PHP Code:
quest vipquest begin
    state start begin
        when 38001.
use begin
            say_title
("Hallo "..pc.get_name().."!")
            
say("Mit diesem Item kannst du den VIP Status aktivieren.")
            
say("")
            
say("")
            
say("Moechtest du?")
            
say(pc.get_name(), " -----------> (VIP)"pc.get_name())
            
local aw select("Ja""Nein")
            if 
aw == 2 then
            
return
            
end
                name 
pc.get_name()
                
zahl string.len(name)
                if 
aw == and zahl <= 7 then
                mysql_query
("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
                
say_title("Erfolgreich!")
                
say("Herzlichen Glueckwunsch, du bist nun VIP auf")
                
say("Crystal2!")
                
say("")
                
say("")
                
say("Info")
                
say_reward("Die Aenderung des (VIP) kann 10-20 Minuten dauern.")
                elseif 
zahl 7 then
                say_title
("Deine Name!")
                
say("Deine Name ist zu lang.")
                
say("Er darf nicht mehr als 7 Buchstaben haben.")
                
say("Es koennte sonst zum verschlingen von Buchtstaben")
                
say("kommen, z.B. Lipton --> (VIP)Lipto")
                
say("")
                
say("")
                
say_reward("Moechtest du ihn ändern um VIP zuwerden?")
                
local a select("Ja""Nein")
                if 
== 2 then
                
return
                
end
                    say_title
("Name wechseln")
                    
say("Gib bitte deinen Wunschnamen ein:")
                    
say_reward("Beachte! Nicht mehr als 7 Buchstaben.")
                    
local inp input()
                    if 
string.len(inp) > or inp == "" then
                    say
("Dein neuer Name hat mehr als 7 Buchstaben.")
                    
say("Tut mir echt leid.")
                    return
                    else
                    
say_title("Ok")
                    
say("Dein Name erfüllt ALLE Voraussetzungen.")
                    
say("")
                    
say("Letzter Check, möchtest du wirklich mit dem")
                    
say("Namen (VIP)"inp," dein vip status aktivieren?")
                    
local b select("Ja""Nein")
                        if 
== 2 then
                        
return
                        else
                        
mysql_query("UPDATE player.player SET name='[VIP]"..inp.."' WHERE name='"..pc.get_name().."'")
                        
say_title("Erfolgreich!")
                        
say("Herzlichen Glückwunsch, du bist nun VIP auf")
                        
say("Crystal2!")
                        
say("")
                        
say("")
                        
say("Info")
                        
say_reward("Die Änderung des (VIP) kann 10-20 Minuten dauern.")
                    
end
                end
            end
        end
    end
end 
Die ganze Quest Funktioniert einbandfrei.
Aber ich hätte gerne das , dass Item nach dem Benutzten auch verschwindet.

lg.

.Vegas
08/10/2014 07:57 Simplex2™#10420
PHP Code:
quest vipquest begin
    state start begin
        when 38001.
use begin
            say_title
("Hallo "..pc.get_name().."!")
            
say("Mit diesem Item kannst du den VIP Status aktivieren.")
            
say("")
            
say("")
            
say("Moechtest du?")
            
say(pc.get_name(), " -----------> (VIP)"pc.get_name())
            
local aw select("Ja""Nein")
            if 
aw == 2 then
            
return
            
end
                name 
pc.get_name()
                
zahl string.len(name)
                if 
aw == and zahl <= 7 then
                mysql_query
("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
                
say_title("Erfolgreich!")
                
say("Herzlichen Glueckwunsch, du bist nun VIP auf")
                
say("Crystal2!")
                
say("")
                
say("")
                
say("Info")
                
say_reward("Die Aenderung des (VIP) kann 10-20 Minuten dauern.")
                elseif 
zahl 7 then
                say_title
("Deine Name!")
                
say("Deine Name ist zu lang.")
                
say("Er darf nicht mehr als 7 Buchstaben haben.")
                
say("Es koennte sonst zum verschlingen von Buchtstaben")
                
say("kommen, z.B. Lipton --> (VIP)Lipto")
                
say("")
                
say("")
                
say_reward("Moechtest du ihn ändern um VIP zuwerden?")
                
local a select("Ja""Nein")
                if 
== 2 then
                
return
                
end
                    say_title
("Name wechseln")
                    
say("Gib bitte deinen Wunschnamen ein:")
                    
say_reward("Beachte! Nicht mehr als 7 Buchstaben.")
                    
local inp input()
                    if 
string.len(inp) > or inp == "" then
                    say
("Dein neuer Name hat mehr als 7 Buchstaben.")
                    
say("Tut mir echt leid.")
                    return
                    else
                    
say_title("Ok")
                    
say("Dein Name erfüllt ALLE Voraussetzungen.")
                    
say("")
                    
say("Letzter Check, möchtest du wirklich mit dem")
                    
say("Namen (VIP)"inp," dein vip status aktivieren?")
                    
local b select("Ja""Nein")
                        if 
== 2 then
                        
return
                        else
                        
mysql_query("UPDATE player.player SET name='[VIP]"..inp.."' WHERE name='"..pc.get_name().."'")
                        
say_title("Erfolgreich!")
                        
say("Herzlichen Glückwunsch, du bist nun VIP auf")
                        
say("Crystal2!")
                        
say("")
                        
say("")
                        
say("Info")
                        
say_reward("Die Änderung des (VIP) kann 10-20 Minuten dauern.")
                        
pc.remove_item(380011)
                    
end
                end
            end
        end
    end
end 
Versuchs mal jetzt
08/10/2014 15:02 Critella#10421
quest lalal begin
state start begin
when DORFPLATZVNUM.chat."reitten" begin
say("wilst du reitten")
if select("nein","ja") == 1 then return end
pc.mount(löwenvnum, 60*60*24)
end
end
end

so richtig?
08/10/2014 18:00 Brodan#10422
Quote:
Originally Posted by Critella View Post
quest lalal begin
state start begin
when DORFPLATZVNUM.chat."reitten" begin
say("wilst du reitten")
if select("nein","ja") == 1 then return end
pc.mount(löwenvnum, 60*60*24)
end
end
end

so richtig?
Achte bitte auf Tabs.. und füge deine Quests in Zukunft bitte per [ PHP ] <Quest> [/ PHP] ein. (Ohne Leerzeichen)
Sieht dann wie folgt aus:

PHP Code:
quest lalal begin
    state start begin
        when DORFPLATZVNUM
.chat."reiten" begin
            say
("willst du reiten")
            if 
select("Ja""Nein")==2 then return end
                pc
.mount(löwenvnum60*60*24)
            
end
        end
    end
end 
08/10/2014 18:51 .Delta#10423
Quote:
Originally Posted by Brodan View Post
Achte bitte auf Tabs.. und füge deine Quests in Zukunft bitte per [ PHP ] <Quest> [/ PHP] ein. (Ohne Leerzeichen)
Sieht dann wie folgt aus:

PHP Code:
quest lalal begin
    state start begin
        when DORFPLATZVNUM
.chat."reiten" begin
            say
("willst du reiten")
            if 
select("Ja""Nein")==2 then return end
                pc
.mount(löwenvnum60*60*24)
            
end
        end
    end
end 
immer noch ein end zu viel :)
08/10/2014 19:41 .yorliK#10424
Quote:
Originally Posted by Brodan View Post
Achte bitte auf Tabs.. und füge deine Quests in Zukunft bitte per [ PHP ] <Quest> [/ PHP] ein. (Ohne Leerzeichen)
Sieht dann wie folgt aus:

PHP Code:
quest lalal begin
    state start begin
        when DORFPLATZVNUM
.chat."reiten" begin
            say
("willst du reiten")
            if 
select("Ja""Nein")==2 then return end
                pc
.mount(löwenvnum60*60*24)
            
end
        end
    end
end 
Tabs sind egal, der Server checkt das auch so, das dient "nur" der Übersicht..


Quote:
Originally Posted by .Delta View Post
immer noch ein end zu viel :)
Jop, Brodan, du hast es falsch verbessert.

@Critella Du hast es von Anfang an richtig gehabt.
08/10/2014 22:09 [SA]°Keks°#10425
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 
Bräuchte diese seelenstein Quest mit 100% warscheinlichkeit das es klappt, hab schon mehrere andere probiert aber die laufem auf dem Vanilla Core leider nicht, wäre wirklich sehr nett wenn das jemand dort ändern kann.