Jump to content

Aveline™

Inactive Member
  • Posts

    190
  • Joined

  • Last visited

  • Days Won

    6
  • Feedback

    0%

Everything posted by Aveline™

  1. Yep probably we have 255 slots at the moment but someone wanna use to belt system Thanks for comment Kind Regards HaveBeen .InyaProduction say "If you are not use to belt system, you have 255 slots :)" How i can compile game on freebsd, it's not hard, first you have to put source files in /usr and Extern folder (this is important for compile) But you say "I don't know anything about compile" you should be look at topics already it's public for virtual machine. I hope you are understand me what i mean Thanks for comment. Kind Regards HaveBeen
  2. if you want, paste your game here maybe i can help you. Kind Regards HaveBeen
  3. quest betamapwarp begin state start begin when 20094.chat."Trade Map (Lv. 10) " with (pc.get_level() > 9) begin say_title(string.format("%s:",mob_name(npc.get_race()))) say("") --- say("This is a trade map..") say("Place where all empires,") say("can trade") say("want go there?") say("") say_reward("Really want to be teleported?") if(select("Teleport","Cancel") == 2) then return end pc.warp(3812585, 3799162) end when 20094.chat."Farm Map (Lv. 200)" with (pc.get_level() >= 200) begin say_title(string.format("%s:",mob_name(npc.get_race()))) say("") --- say("This is a nice place..") say("But very very dangerously,") say("So think twice do you realy") say("want go there?") say("") say_reward("First, let me see your qualification.") say("") wait() if(pc.count_item(50156) > 0) then say("[DELAY value;150] [/DELAY]") say("") say("So you got it. Good!") pc.remove_item(50156,1) else say("You need a Diamond Key.") say("I cannot let you in if you don't have the key.") say("") say_item("Passage",50156,"") return end wait() say("[DELAY value;150] [/DELAY]") say("..Follow me!") wait() pc.warp(2641500, 2693900) end when 20094.chat."Bay Black Sand (Lv. 75)" with (pc.get_level() > 74) begin say_title(string.format("%s:",mob_name(npc.get_race()))) say("") --- say("") say("This is a nice place..") say("But very very dangerously,") say("So think twice do you realy") say("want go there?") say("") say_reward("First, let me see your qualification.") say("") wait() if(pc.count_item(50156) > 0) then say("[DELAY value;150] [/DELAY]") say("") say("So you got it. Good!") pc.remove_item(50156,1) else say("You need a Diamond Key.") say("I cannot let you in if you don't have the key.") say("") say_item("Passage",50156,"") return end wait() say("[DELAY value;150] [/DELAY]") say("..Follow me!") wait() pc.warp(1087000, 1655400) end when 20094.chat."Cape Dragon Head (Lv. 80)" with (pc.get_level() > 79) begin say_title(string.format("%s:",mob_name(npc.get_race()))) say("") --- say("") say("This is a nice place..") say("But very very dangerously,") say("So think twice do you realy") say("want go there?") say("") say_reward("Really want to be teleported?") if(select("Teleport","Cancel") == 2) then return end pc.warp(1084600, 1784400) end when 20094.chat."Dawn Mist Wood (Lv.90)" with (pc.get_level() > 89) begin say_title(string.format("%s:",mob_name(npc.get_race()))) say("") --- say("This is a nice place..") say("But very very dangerously,") say("So think twice do you realy") say("want go there?") say("") say_reward("Really want to be teleported?") if(select("Teleport","Cancel") == 2) then return end pc.warp(1226600, 1680600) end when 20094.chat."Mt Thunder (Lv.95)" with (pc.get_level() > 94) begin say_title(string.format("%s:",mob_name(npc.get_race()))) say("") --- say("This is a nice place..") say("But very very dangerously,") say("So think twice do you realy") say("want go there?") say("") say_reward("Really want to be teleported?") if(select("Teleport","Cancel") == 2) then return end pc.warp(1134400, 1654800) end when 20094.chat."Jungle Waste (Lv.110)" with (pc.get_level() > 109) begin say_title(string.format("%s:",mob_name(npc.get_race()))) say("") --- say("This is a nice place..") say("But very very dangerously,") say("So think twice do you realy") say("want go there?") say("") say_reward("Really want to be teleported?") if(select("Teleport","Cancel") == 2) then return end pc.warp(53776900, 51237100) end end end Try like this Kind Regards HaveBeen
  4. [Hidden Content] I explain how to make 4 inventory page for your servers Kind Regards HaveBeen
  5. M2 Download Center Download Here ( Internal ) Hi guys again Some managers wanna observermode in game but this code special just for gm. This situations not possible. But no longer you are use to this function I hope you are like it.. open questlua_pc.cpp and add this int pc_warp_to_map_observer_position(lua_State* L) { if(!lua_isnumber(L,1) || !lua_isnumber(L,2) || !lua_isnumber(L,3)) { sys_err("QUEST: Wrong argument"); return 0; } LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); long mapIndex = (long)lua_tonumber(L,3); const TMapRegion * region = SECTREE_MANAGER::instance().GetMapRegion(mapIndex); if(!region) { sys_err("QUEST: Invalid map index %d..",mapIndex); return 0; } if(ch->IsObserverMode()) { sys_err("QUEST: %s already in observermode !.",ch->GetName()); return 0; } ch->SetObserverMode(true); ch->SaveExitLocation(); ch->WarpSet((int)lua_tonumber(L,1),(int)lua_tonumber(L,2),mapIndex); } and add this { "warp_to_map_observer_position", pc_warp_to_map_observer_position }, How use to this function in my quest? quest observerModeTest begin state start begin when 20354.chat."ObserverMode test with lua function... " with (is_test_server()) begin say("I will teleport you.. wait") wait() pc.warp_to_map_observer_position(coordinateX,coordianateY,mapindex) end end end Kind Regards HaveBeen
  6. have you block_exception.sql in your database? Kind Regards HaveBeen
  7. M2 Download Center Download Here ( Internal ) Hi guys Someone wondered how to make 4 inventory page with source. I will share how to make 4 inventory page today I hope you are like it First which you are use to source files open it. I will use to mainline_released(SG) log in mainline_released/mainline_sg/Srcs/Server/common after open length.h after search this INVENTORY_MAX_NUM = 90, Replace to INVENTORY_MAX_NUM = 180, Open char_item.cpp and search this BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2); Replace to BYTE bPage = bCell / (INVENTORY_MAX_NUM / 4); search this if (p / (INVENTORY_MAX_NUM / 2) != bPage) Replace to if (p / (INVENTORY_MAX_NUM / 4) != bPage) open exchange.cpp. Search this after add under this. static CGrid s_grid2(5, INVENTORY_MAX_NUM/5 / 2); // inven page 2 will be like this. static CGrid s_grid1(5, INVENTORY_MAX_NUM/5 / 2); // inven page 1 static CGrid s_grid2(5, INVENTORY_MAX_NUM/5 / 2); // inven page 2 static CGrid s_grid3(5, INVENTORY_MAX_NUM/5 / 2); // inven page 3 static CGrid s_grid4(5, INVENTORY_MAX_NUM/5 / 2); // inven page 4 s_grid1.Clear(); s_grid2.Clear(); s_grid3.Clear(); s_grid4.Clear(); and replace to your self.. for (i = 0; i < INVENTORY_MAX_NUM / 4; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid1.Put(i, 1, item->GetSize()); } for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid2.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize()); } for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid3.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize()); } for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i) { if (!(item = victim->GetInventoryItem(i))) continue; s_grid4.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize()); } After client.. Log in mainline_released/mainline_sg/Srcs/Client/Userinterface after open GameType.h after search this const DWORD c_Inventory_Page_Count = 2; Replace to const DWORD c_Inventory_Page_Count = 4; open inventorywindow.py and search this EQUIPMENT_START_INDEX = 90 Replace to EQUIPMENT_START_INDEX = 180 open uiinventory.py and search this after add under this self.inventoryTab.append(self.GetChild("Inventory_Tab_02")) self.inventoryTab.append(self.GetChild("Inventory_Tab_03")) self.inventoryTab.append(self.GetChild("Inventory_Tab_04")) search this after add under this self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg)) self.inventoryTab[2].SetEvent(lambda arg=2: self.SetInventoryPage(arg)) self.inventoryTab[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg)) Search SetInventoryPage function and replace with this. def SetInventoryPage(self, page): self.inventoryTab[self.inventoryPageIndex].SetUp() self.inventoryPageIndex = page self.inventoryTab[self.inventoryPageIndex].Down() self.RefreshBagSlotWindow() Thanks for @Zardon,Deniec Cikiec comment. i will share my inventorywindow.py import uiScriptLocale import item EQUIPMENT_START_INDEX = 180 window = { "name" : "InventoryWindow", ## 600 - (width + 오른쪽으로 부터 띄우기 24 px) "x" : SCREEN_WIDTH - 176, "y" : SCREEN_HEIGHT - 37 - 565, "style" : ("movable", "float",), "width" : 176, "height" : 585, "children" : ( ## Inventory, Equipment Slots { "name" : "board", "type" : "board", "style" : ("attach",), "x" : 0, "y" : 0, "width" : 176, "height" : 585, "children" : ( ## Title { "name" : "TitleBar", "type" : "titlebar", "style" : ("attach",), "x" : 8, "y" : 7, "width" : 161, "color" : "yellow", "children" : ( { "name":"TitleName", "type":"text", "x":77, "y":3, "text":uiScriptLocale.INVENTORY_TITLE, "text_horizontal_align":"center" }, ), }, ## Equipment Slot { "name" : "Equipment_Base", "type" : "image", "x" : 10, "y" : 33, "image" : "d:/ymir work/ui/equipment_bg_without_ring.tga", "children" : ( { "name" : "EquipmentSlot", "type" : "slot", "x" : 3, "y" : 3, "width" : 150, "height" : 182, "slot" : ( {"index":EQUIPMENT_START_INDEX+0, "x":39, "y":37, "width":32, "height":64}, {"index":EQUIPMENT_START_INDEX+1, "x":39, "y":2, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+2, "x":39, "y":145, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+3, "x":75, "y":67, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+4, "x":3, "y":3, "width":32, "height":96}, {"index":EQUIPMENT_START_INDEX+5, "x":114, "y":67, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+6, "x":114, "y":35, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+7, "x":2, "y":145, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+8, "x":75, "y":145, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+9, "x":114, "y":2, "width":32, "height":32}, {"index":EQUIPMENT_START_INDEX+10, "x":75, "y":35, "width":32, "height":32}, ## 새 반지1 ##{"index":item.EQUIPMENT_RING1, "x":2, "y":106, "width":32, "height":32}, ## 새 반지2 ##{"index":item.EQUIPMENT_RING2, "x":75, "y":106, "width":32, "height":32}, ## 새 벨트 {"index":item.EQUIPMENT_BELT, "x":39, "y":106, "width":32, "height":32}, ), }, ## Dragon Soul Button { "name" : "DSSButton", "type" : "button", "x" : 114, "y" : 107, "tooltip_text" : uiScriptLocale.TASKBAR_DRAGON_SOUL, "default_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_01.tga", "over_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_02.tga", "down_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_03.tga", }, ## MallButton { "name" : "MallButton", "type" : "button", "x" : 118, "y" : 148, "tooltip_text" : uiScriptLocale.MALL_TITLE, "default_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_01.tga", "over_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_02.tga", "down_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_03.tga", }, ## CostumeButton { "name" : "CostumeButton", "type" : "button", "x" : 78, "y" : 5, "tooltip_text" : uiScriptLocale.COSTUME_TITLE, "default_image" : "d:/ymir work/ui/game/taskbar/costume_Button_01.tga", "over_image" : "d:/ymir work/ui/game/taskbar/costume_Button_02.tga", "down_image" : "d:/ymir work/ui/game/taskbar/costume_Button_03.tga", }, { "name" : "Equipment_Tab_01", "type" : "radio_button", "x" : 86, "y" : 161, "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub", "children" : ( { "name" : "Equipment_Tab_01_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "I", }, ), }, { "name" : "Equipment_Tab_02", "type" : "radio_button", "x" : 86 + 32, "y" : 161, "default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub", "children" : ( { "name" : "Equipment_Tab_02_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "II", }, ), }, ), }, { "name" : "Inventory_Tab_01", "type" : "radio_button", "x" : 10, "y" : 33 + 189, "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1, "children" : ( { "name" : "Inventory_Tab_01_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "I", }, ), }, { "name" : "Inventory_Tab_02", "type" : "radio_button", "x" : 10 + 78, "y" : 33 + 189, "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2, "children" : ( { "name" : "Inventory_Tab_02_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "II", }, ), }, { "name" : "Inventory_Tab_03", "type" : "radio_button", "x" : 10, "y" : 33 + 210, "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2, "children" : ( { "name" : "Inventory_Tab_03_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "III", }, ), }, { "name" : "Inventory_Tab_04", "type" : "radio_button", "x" : 10 + 78, "y" : 33 + 210, "default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub", "over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub", "down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub", "tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2, "children" : ( { "name" : "Inventory_Tab_04_Print", "type" : "text", "x" : 0, "y" : 0, "all_align" : "center", "text" : "IV", }, ), }, ## Item Slot { "name" : "ItemSlot", "type" : "grid_table", "x" : 8, "y" : 264, "start_index" : 0, "x_count" : 5, "y_count" : 9, "x_step" : 32, "y_step" : 32, "image" : "d:/ymir work/ui/public/Slot_Base.sub" }, ## Print { "name":"Money_Slot", "type":"button", "x":8, "y":28, "horizontal_align":"center", "vertical_align":"bottom", "default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub", "over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub", "down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub", "children" : ( { "name":"Money_Icon", "type":"image", "x":-18, "y":2, "image":"d:/ymir work/ui/game/windows/money_icon.sub", }, { "name" : "Money", "type" : "text", "x" : 3, "y" : 3, "horizontal_align" : "right", "text_horizontal_align" : "right", "text" : "123456789", }, ), }, ), }, ), } open beltinventorywindow.py after search this EQUIPMENT_START_INDEX = 90 replace to EQUIPMENT_START_INDEX = 180 I think someone don't make part of client-side. I share binary file (original file) with your. [Hidden Content] Kind Regards HaveBeen
  8. Aveline™

    Item Remover

    M2 Download Center Download Here ( Internal ) Hi guys i will share mini quest with your I hope you are like it. define drunk 20004 quest removeItem begin state start begin when drunk.chat."Hey there" begin say_title(string.format("%s:",mob_name(npc.get_race()))) say("") --- say("My plight has deceived many people.") say("But they don't know what is richer than.. ") say("Anyway, back to our topic.") say("Do you have unnecessary items on?") say("") if(select(locale.yes,locale.no) == 2) then return end say_title(string.format("%s:",mob_name(npc.get_race()))) say("") --- local unnecessary = { 39030, 71094, 39008, 71001, } local unnecessary_name = {} for i = 1,table.getn(unnecessary),1 do if(pc.count_item(unnecessary[i]) > 0) then table.insert(unnecessary_name,item.get_name(unnecessary[i])) end table.insert(unnecessary_name,"Close") end local s = select_table(unnecessary_name) if(s >= table.getn(unnecessary_name)) then return end say_title(string.format("%s:",mob_name(npc.get_race()))) say("") --- say("I'm getting stuff from you.") say("See you later.") pc.remove_item(unnecessary[s],pc.count_item(unnecessary[s])) end end end Kind Regards HaveBeen
  9. Yes and that's better.With Vanilla's core you are obligated to run metin2 on FreeBSD which i hate Ehehe
  10. INVENTORY_MAX_NUM = 2 Novaline/Common/Length.h GameType.h Novaline/Client/Userinterface/GameType.h If you don't find anything, search with program Kind Regards HaveBeen
  11. If you don't use to vanilla core, you can make yourself game. I think so it's not hard This forum has many developer maybe you become a developer. why's not right? Kind Regards HaveBeen
  12. [Hidden Content] Topic is german but i will translated german to english I hope you are like it. Kind Regards HaveBeen
  13. quest deviltower_zone begin state start begin when login begin if pc.get_map_index() == 66 then if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then pc.warp((5376+532)*100, (512+596+4)*100, 65) end pc.set_warp_location(65, 5376+532, 512+596+4) if pc.get_map_index() > 660000 and pc.get_map_index() < 670000 then pc.set_warp_location(65, 5376+532, 512+596+4) end end when 20348.click begin if pc.get_level() < 30 then say_title("Guardian of demons tower") say("") say("You have not accumulated enough combat") say("experience!") say("") say_reward("Come back here once you reach level 30.") return end if pc.get_level() > 29 and pc.get_level() < 75 then say_title("Guardian of demons tower") say("") say("The Demon Tower is home to horrible creatures,") say("who love nothing more than to kill you.") say("The bonuses 'Strong against undead' and 'Arrow resistant'") say("you could be very helpful!") say("") say_reward("Do you really want to enter the Demon Tower?") local betreten = select("Enter Demon Tower", "Abort") if betreten == 1 then pc.warp(216500, 727000) end if betreten == 2 then return end end if pc.get_level() > 74 then say_title("Guardian of demons tower") say("") say("The Demon Tower is home to horrible creatures,") say("who love nothing more than to kill you.") say("The bonuses 'Strong against undead' and 'Arrow resistant'") say("you could be very helpful!") say("") say_reward("As you reach level 75, you can choose") say_reward("your group from the normal entry and the entry.") local betreten_75 = select("Enter Demon Tower normal", "Enter Demon Tower as a group", "Abort") if betreten_75 == 1 then pc.warp(216500, 727000) end if betreten_75 == 2 then if party.is_party() then say_title("Guardian of demons tower") say("") say("Please make sure that all group members are in") say("the temple!") say("") say_reward("Do you really want to enter the Demon Tower") say_reward("with your group?") local gruppe_betreten = select("Enter Demon Tower as a group", "Abort") if gruppe_betreten == 1 then d.join(66, special.devil_tower[1][1], special.devil_tower[1][2]) d.spawn_mob(8015, 120, 615) end if gruppe_betreten == 2 then return end end if not party.is_party() then say_title("Guardian of demons tower") say("") say("You can specify this option only run when") say("you find yourself in a group.") say("") say_reward("You find yourself in any groups.") return end end if betreten_75 == 3 then return end end end when 8015.kill begin timer("zeit_bis_port", 10) d.notice("You have the Metin hardness destroyed!") d.notice("In 10 seconds you will be teleported to the first level.") end when zeit_bis_port.timer begin d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2]) d.regen_file("data/dungeon/deviltower2_regen.txt") d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt") end --when devil_stone2.kill begin --d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2]) --end when devil_stone3.kill begin --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2]) --d.set_exit_all_at_eliminate(6) --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100) --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4) d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt") d.check_eliminated() --d.exit_all() end function get_4floor_stone_pos() local positions = { {368, 629}, {419, 630}, {428, 653}, {422, 679}, {395, 689}, {369, 679}, {361, 658}, } for i = 1, 6 do local j = number(i, 7) if i != j then local t = positions[i]; positions[i] = positions[j]; positions[j] = t; end end --for i = 1, 7 do -- positions[i][1] = positions[i][1] * 100 -- positions[i][2] = positions[i][2] * 100 -- end return positions end when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin d.setf("level", 4) -- ¦A²{¤j¶q©Çª«¤Î»s³y¯u¥ÛÀY©M°²¥ÛÀY --d.regen_file("data/dungeon/deviltower4_regen.txt") local positions = deviltower_zone.get_4floor_stone_pos() for i = 1, 6 do chat(positions[i][1], positions[i][2]) d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2])) end chat(positions[7][1], positions[7][2]) local vid = d.spawn_mob(8017, positions[7][1], positions[7][2]) chat(vid) d.set_unique("real", vid) server_loop_timer('devil_stone4_update', 10, pc.get_map_index()) server_timer('devil_stone4_fail1', 5*60, pc.get_map_index()) d.notice("Find the right Metinstone and destroyed him."); d.notice("The false Metin stones will disappear!"); d.notice("You have 15 minutes time!"); end when devil_stone4_fail1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Remaining time: 10 minutes") server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg()) end end when devil_stone4_fail2.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Remaining time: 5 minutes") server_timer('devil_stone4_fail', 5*60, get_server_timer_arg()) end end when devil_stone4_fail.server_timer begin if d.select(get_server_timer_arg()) then d.notice("The time is up") d.notice("You will now be teleported to the outsidet") d.exit_all() clear_server_timer('devil_stone4_update', get_server_timer_arg()) end end when devil_stone4_update.server_timer begin if d.select(get_server_timer_arg()) then if not d.is_unique_dead("real") then for i = 1, 6 do if d.getf("fakedead" .. i) == 0 then if d.unique_get_hp_perc("fake" .. i) < 50 then d.purge_unique("fake" .. i) d.setf("fakedead" .. i, 1) d.notice("The wrong Metin Stone has disappeared.."); end end end else --d.clear_regen() --d.regen_file("data/dungeon/deviltower5_regen.txt") server_timer("devil_stone4_end", 5, get_server_timer_arg()) d.notice("You have destroyed the right Metin stone."); d.notice("You will now be teleported to the next level") clear_server_timer('devil_stone4_fail1', get_server_timer_arg()) clear_server_timer('devil_stone4_fail2', get_server_timer_arg()) clear_server_timer('devil_stone4_fail', get_server_timer_arg()) end else server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg()) end end when devil_stone4_stop_timer.server_timer begin clear_server_timer('devil_stone4_update', get_server_timer_arg()) end when devil_stone4_end.server_timer begin if d.select(get_server_timer_arg()) then d.setf("level", 5) d.setf("stone_count", 5) d.notice("You are now in the 5th. Layer") d.notice("open all old seal to get to the next level.") d.notice("You have 20 minutes to open all the seals.") d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2]) server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg()) clear_server_timer('devil_stone4_update', get_server_timer_arg()) d.set_regen_file("data/dungeon/deviltower5_regen.txt") d.spawn_mob(20073, 421, 452) d.spawn_mob(20073, 380, 460) d.spawn_mob(20073, 428, 414) d.spawn_mob(20073, 398, 392) d.spawn_mob(20073, 359, 426) end end when devil_stone5_fail1.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Remaining time: 15 Minutes") server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg()) end end when devil_stone5_fail2.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Remaining time: 10 Minutes") server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg()) end end when devil_stone5_fail3.server_timer begin if d.select(get_server_timer_arg()) then d.notice("Remaining time: 5 Minutes") server_timer('devil_stone5_fail', 5*60, get_server_timer_arg()) end end when devil_stone5_fail.server_timer begin if d.select(get_server_timer_arg()) then d.notice("The time is up") d.notice("You will now be teleported to the outside") d.exit_all() end end --when devil_stone4.kill begin --d.setf("level", 5) --d.setf("stone_count", 4) --d.clear_regen() --d.regen_file("data/dungeon/deviltower5_regen.txt") --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2]) --end when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin local KILL_COUNT_FOR_DROP_KEY = 5 --if is_test_server() then --KILL_COUNT_FOR_DROP_KEY = 1 --end local n =d.getf("count") + 1 d.setf("count", n) if n == KILL_COUNT_FOR_DROP_KEY then -- bla bla 3 game.drop_item(50084, 1) d.setf("count", 0) end end when devil_stone5.take with item.vnum == 50084 begin npc.purge() item.remove() d.setf("stone_count", d.getf("stone_count") - 1) if d.getf("stone_count") <= 0 then d.setf("level", 6) d.clear_regen() d.regen_file("data/dungeon/deviltower6_regen.txt") d.notice("You have opened all the old seal.") d.notice("You will now be teleported to the 6th level.") d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2]) clear_server_timer('devil_stone5_fail1', get_server_timer_arg()) clear_server_timer('devil_stone5_fail2', get_server_timer_arg()) clear_server_timer('devil_stone5_fail3', get_server_timer_arg()) clear_server_timer('devil_stone5_fail', get_server_timer_arg()) else d.notice("There remains a number of "..d.getf("stone_count").." Sealing") end end when devil_stone6.kill begin --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2]) d.kill_all() -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4) d.check_eliminated() timer("stolzerking_killed", 5) end when stolzerking_killed.timer begin cmdchat("CMD1") d.spawn_mob(9012, 395, 200) d.spawn_mob(20074, 392, 209) d.spawn_mob(20075, 405, 209) d.spawn_mob(20076, 399, 209) d.spawn_mob(9003, 402, 200) d.setqf("can_refine", 1) d.notice("You killed the proud demon king, thus completing the first part of the dungeon.") d.notice("As a reward, you are allowed an item if the demonic forging improve.") d.notice("If you need something for the second part of the dungeon, you can buy it at the General Store.") d.notice("You will be teleported in 2 Minutes automatically to the next level.") timer("zeit_zum_uppen", 110) end when zeit_zum_uppen.timer begin d.notice("In 10 seconds you will be teleported to the next level.") timer("zeit_bis_mordesebene", 10) end when zeit_bis_mordesebene.timer begin d.clear_regen() d.spawn_mob(8018, 639, 658) d.spawn_mob(8018, 611, 637) d.spawn_mob(8018, 596, 674) d.spawn_mob(8018, 629, 670) d.setf("level", 7) d.jump_all(2048+590, 6656+638) end when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin local cont = d.getf("7_stone_kill") + 1 d.setf("7_stone_kill", cont) if cont >= 4 then d.setf("7_stone_kill", 0) d.set_regen_file("data/dungeon/deviltower7_regen.txt") end end when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin game.drop_item(30300, 1) end when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin pc.remove_item("30300", 1) local pct = number(1,10) if pct == 1 then -- bla bla 7 game.drop_item(30302, 1) d.clear_regen() else -- bla bla 8 game.drop_item(30301, 1) end end when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin -- bla bla 9 say_title("Map of Zin Grotto") say("") say("Congratulations! You've found the right card.") say("") say_reward("You will be teleported to the next level now.") pc.remove_item("30302", 1) timer("devil_jump_8", 6) d.clear_regen() end when devil_jump_8.timer begin d.setf("level", 8) d.jump_all(2048+590, 6656+403) d.set_regen_file("data/dungeon/deviltower8_regen.txt") d.spawn_mob(20366, 640, 460) local _count= pc.count_item(30302)-- bla bla 11 pc.remove_item(30302,_count) end when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin local pct1 = number(1, 5) if pct1 == 1 then local pct2 = number(1, 10) if pct2 == 1 then -- bla bla 12 game.drop_item(30304, 1) else -- bla bla 13 game.drop_item(30304, 1) end else return end end when 20366.take with item.vnum == 30304 begin -- bla bla 14 npc.purge() item.remove() d.kill_all() timer("devil_jump_9", 6) end when devil_jump_9.timer begin d.setf("level", 9) d.jump_all(2048+590, 6656+155) d.regen_file("data/dungeon/deviltower9_regen.txt") end when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin d.kill_all() timer("sensi_killed", 5) end when sensi_killed.timer begin cmdchat("CMD1") d.kill_all() d.spawn_mob(9012, 618, 187) d.spawn_mob(20074, 611, 179) d.spawn_mob(20075, 620, 170) d.spawn_mob(20076, 628, 179) d.spawn_mob(9003, 621, 187) d.setqf("can_refine", 1) d.notice("You killed the Grim Reaper, thus completing the second part of the dungeon.") d.notice("As a reward, you are allowed an item if the demonic forging improve.") d.notice("If you would like to continue the dungeon, you can buy potions you again at the General Store.") d.notice("You will be teleported in 2 Minutes automatically to the next level.") timer("zeit_nach_sensi", 110) end when zeit_nach_sensi.timer begin d.notice("In 10 seconds you will be teleported to the next level.") timer("zeit_bis_gemeinerking", 10) end when zeit_bis_gemeinerking.timer begin d.jump_all(2048+590, 6656+155) d.kill_all() d.spawn_mob(1094, 620, 170) d.notice("The Common Demon King is on the loose here.") d.notice("Kill him to get to the next level.") end when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin timer("zeit_bis_bt", 10) d.notice("You killed the demon king Commons.") d.notice("In 10 seconds you will be teleported to the last level.") end when zeit_bis_bt.timer begin d.jump_all(2048+590, 6656+155) d.kill_all() d.spawn_mob(1095, 620, 170) d.notice("Du befindest dich auf der letzten Ebene des Dämonenturmes.") d.notice("Töte den Blauen Tod und du wirst reich belohnt!") end when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin cmdchat("CMD1") d.kill_all() d.spawn_mob(9012, 618, 187) d.spawn_mob(20074, 611, 179) d.spawn_mob(20075, 620, 170) d.spawn_mob(20076, 628, 179) d.spawn_mob(9003, 621, 187) d.setqf("can_refine", 1) d.notice("You killed the blue death, thus completing the Demon Tower.") d.notice("Congratulations!") d.notice("You can once again an item if the demonic forging improve. Best of luck!") notice_all("".. pc.get_name() .." has killed the blue death, thus completing the Demon Tower.") end end end English version ( I hope you're like it ) Meanwhile thanks for topic. Kind Regards HaveBeen
  14. I don't know much mse files how to write or read sorry. I hope it's usefull for you Kind Regards HaveBeen
  15. Let me i explain to you 1.If you don't unpack property.eix, unpack it then log in property/b/eff (this just for example) 2.Create a file. File extension must be .pre Example: YPRT 780392666 effectfile ".mse path" propertyname "name" propertytype "Effect" 3. If you don't unpack effect.epk then unpack it after log in ymir work/effect/etc and create a folder. (For Example : fall) 4. If you have dds and mse, paste it else create a dds and a mse files. Mse file Example: BoundingSphereRadius 5000.000000 BoundingSpherePosition 0.000000 0.000000 -2000.000000 Group Mesh { StartTime 0.000000 List TimeEventPosition { 0.000000 "MOVING_TYPE_DIRECT" 0.000000 0.000000 0.000000 } MeshFileName "mde file" MeshAnimationLoopEnable 1 MeshAnimationLoopCount 0 MeshAnimationFrameDelay 0.019000 MeshElementCount 4 Group MeshElement00 { BillboardType 0 BlendingEnable 1 BlendingSrcType 5 BlendingDestType 6 TextureAnimationLoopEnable 1 TextureAnimationFrameDelay 0.019000 TextureAnimationStartFrame 0 ColorOperationType 4 ColorFactor 0.686275 0.694118 0.701961 1.000000 List TimeEventAlpha { 0.000000 0.783505 } } Group MeshElement01 { BillboardType 0 BlendingEnable 1 BlendingSrcType 5 BlendingDestType 6 TextureAnimationLoopEnable 1 TextureAnimationFrameDelay 0.020000 TextureAnimationStartFrame 0 ColorOperationType 4 ColorFactor 0.690196 0.694118 0.701961 1.000000 List TimeEventAlpha { 0.000000 0.783505 } } Group MeshElement02 { BillboardType 0 BlendingEnable 1 BlendingSrcType 5 BlendingDestType 6 TextureAnimationLoopEnable 1 TextureAnimationFrameDelay 0.020000 TextureAnimationStartFrame 0 ColorOperationType 4 ColorFactor 0.690196 0.694118 0.701961 1.000000 List TimeEventAlpha { 0.000000 0.783505 } } Group MeshElement03 { BillboardType 0 BlendingEnable 1 BlendingSrcType 5 BlendingDestType 6 TextureAnimationLoopEnable 1 TextureAnimationFrameDelay 0.020000 TextureAnimationStartFrame 0 ColorOperationType 4 ColorFactor 0.690196 0.694118 0.701961 1.000000 List TimeEventAlpha { 0.000000 0.783505 } } } Group Particle { StartTime 0.000000 List TimeEventPosition { 0.000000 "MOVING_TYPE_DIRECT" 0.000000 0.000000 0.000000 } Group EmitterProperty { MaxEmissionCount 10 CycleLength 0.500000 CycleLoopEnable 1 LoopCount 0 EmitterShape 2 EmitterAdvancedType 0 EmittingSize 2500.000000 0.000000 0.000000 EmitterEmitFromEdgeFlag 0 EmittingDirection 0.000000 0.000000 0.000000 List TimeEventEmittingSize { 0.000000 0.000000 } List TimeEventEmittingAngularVelocity { 0.000000 0.000000 } List TimeEventEmittingDirectionX { 0.000000 0.000000 } List TimeEventEmittingDirectionY { 0.000000 -50.000000 } List TimeEventEmittingDirectionZ { 0.000000 0.000000 } List TimeEventEmittingVelocity { 0.000000 10.309278 } List TimeEventEmissionCountPerSecond { 0.000000 10.309278 } List TimeEventLifeTime { 0.000000 1.623711 } List TimeEventSizeX { 0.000000 700.000000 } List TimeEventSizeY { 0.000000 700.000000 } } Group ParticleProperty { SrcBlendType 5 DestBlendType 6 ColorOperationType 4 BillboardType 1 RotationType 0 RotationSpeed 0.000000 RotationRandomStartingBegin 0 RotationRandomStartingEnd 0 AttachEnable 0 StretchEnable 0 TexAniType 0 TexAniDelay 0.030000 TexAniRandomStartFrameEnable 1 List TimeEventGravity { 0.011429 2000.000000 } List TimeEventAirResistance { } List TimeEventScaleX { 0.000000 0.773196 0.382857 1.000000 } List TimeEventScaleY { 0.000000 0.670103 } List TimeEventColorRed { 0.000000 0.701961 0.884615 1.000000 } List TimeEventColorGreen { 0.000000 0.768627 0.884615 1.000000 } List TimeEventColorBlue { 0.000000 0.741176 0.884615 1.000000 } List TimeEventAlpha { 0.000000 0.000000 0.335897 1.000000 0.656410 0.706564 1.000000 0.000000 } List TimeEventRotation { 0.000000 0.000000 } List TextureFiles { "dds file" } } } Group Particle { StartTime 0.000000 List TimeEventPosition { 0.000000 "MOVING_TYPE_DIRECT" 0.000000 -290.512634 -4651.644531 } Group EmitterProperty { MaxEmissionCount 10 CycleLength 0.500000 CycleLoopEnable 1 LoopCount 0 EmitterShape 2 EmitterAdvancedType 0 EmittingSize 2500.000000 0.000000 0.000000 EmitterEmitFromEdgeFlag 0 EmittingDirection 0.010000 0.000000 0.000000 List TimeEventEmittingSize { 0.000000 0.000000 } List TimeEventEmittingAngularVelocity { 0.000000 0.000000 } List TimeEventEmittingDirectionX { 0.000000 0.000000 } List TimeEventEmittingDirectionY { 0.000000 -50.000000 } List TimeEventEmittingDirectionZ { 0.008571 0.000000 } List TimeEventEmittingVelocity { 0.000000 23.711340 } List TimeEventEmissionCountPerSecond { 0.000000 5.000000 } List TimeEventLifeTime { 0.000000 1.623711 } List TimeEventSizeX { 0.000000 700.000000 } List TimeEventSizeY { 0.000000 700.000000 } } Group ParticleProperty { SrcBlendType 5 DestBlendType 6 ColorOperationType 4 BillboardType 1 RotationType 0 RotationSpeed 0.000000 RotationRandomStartingBegin 0 RotationRandomStartingEnd 0 AttachEnable 0 StretchEnable 0 TexAniType 0 TexAniDelay 0.030000 TexAniRandomStartFrameEnable 0 List TimeEventGravity { 0.011429 0.000000 } List TimeEventAirResistance { } List TimeEventScaleX { 0.000000 1.000000 1.000000 1.000000 } List TimeEventScaleY { 0.000000 2.000000 } List TimeEventColorRed { 0.000000 0.219608 0.997436 0.894118 } List TimeEventColorGreen { 0.000000 0.392157 0.997436 1.000000 } List TimeEventColorBlue { 0.000000 0.349020 0.997436 0.968627 } List TimeEventAlpha { 0.000000 0.000000 0.138462 1.000000 0.533333 1.000000 1.000000 0.000000 } List TimeEventRotation { 0.000000 0.000000 } List TextureFiles { "dds file" } } } Group Particle { StartTime 0.000000 List TimeEventPosition { 0.000000 "MOVING_TYPE_DIRECT" 0.000000 -647.823242 -4161.500977 } Group EmitterProperty { MaxEmissionCount 20 CycleLength 0.500000 CycleLoopEnable 1 LoopCount 0 EmitterShape 2 EmitterAdvancedType 0 EmittingSize 2500.000000 0.000000 0.000000 EmitterEmitFromEdgeFlag 0 EmittingDirection 0.030000 0.000000 0.000000 List TimeEventEmittingSize { 0.000000 10.000000 } List TimeEventEmittingAngularVelocity { 0.000000 0.000000 } List TimeEventEmittingDirectionX { 0.000000 0.000000 } List TimeEventEmittingDirectionY { 0.000000 -50.000000 } List TimeEventEmittingDirectionZ { 0.000000 10.824742 } List TimeEventEmittingVelocity { 0.000000 40.206184 } List TimeEventEmissionCountPerSecond { 0.000000 41.237114 } List TimeEventLifeTime { 0.000000 1.030928 } List TimeEventSizeX { 0.000000 1400.000000 } List TimeEventSizeY { 0.000000 1400.000000 } } Group ParticleProperty { SrcBlendType 5 DestBlendType 6 ColorOperationType 4 BillboardType 1 RotationType 4 RotationSpeed 8.000000 RotationRandomStartingBegin 0 RotationRandomStartingEnd 0 AttachEnable 0 StretchEnable 0 TexAniType 0 TexAniDelay 0.029000 TexAniRandomStartFrameEnable 0 List TimeEventGravity { 0.017143 1000.000000 } List TimeEventAirResistance { } List TimeEventScaleX { 0.000000 0.680412 1.000000 0.783505 } List TimeEventScaleY { 0.000000 1.000000 1.000000 0.587629 } List TimeEventColorRed { 0.000000 0.992157 0.466667 0.729412 0.997436 1.000000 } List TimeEventColorGreen { 0.000000 0.992157 0.466667 0.788235 0.997436 1.000000 } List TimeEventColorBlue { 0.000000 0.992157 0.466667 0.760784 0.997436 1.000000 } List TimeEventAlpha { 0.000000 0.000000 0.187179 0.930000 0.615385 0.800000 1.000000 0.000000 } List TimeEventRotation { 0.000000 0.000000 } List TextureFiles { "dds" } } } Group Particle { StartTime 0.000000 List TimeEventPosition { 0.000000 "MOVING_TYPE_DIRECT" 0.000000 -489.286194 -940.705933 } Group EmitterProperty { MaxEmissionCount 30 CycleLength 0.500000 CycleLoopEnable 1 LoopCount 0 EmitterShape 2 EmitterAdvancedType 0 EmittingSize 2300.000000 0.000000 0.000000 EmitterEmitFromEdgeFlag 0 EmittingDirection 0.000000 0.000000 0.000000 List TimeEventEmittingSize { 0.000000 0.000000 } List TimeEventEmittingAngularVelocity { 0.000000 0.000000 } List TimeEventEmittingDirectionX { 0.000000 0.000000 } List TimeEventEmittingDirectionY { 0.020000 0.000000 } List TimeEventEmittingDirectionZ { 0.014286 -6.701031 } List TimeEventEmittingVelocity { 0.000000 29.896908 } List TimeEventEmissionCountPerSecond { 0.000000 20.618557 } List TimeEventLifeTime { 0.000000 1.211340 } List TimeEventSizeX { 0.000000 700.000000 } List TimeEventSizeY { 0.000000 700.000000 } } Group ParticleProperty { SrcBlendType 5 DestBlendType 6 ColorOperationType 4 BillboardType 2 RotationType 0 RotationSpeed 0.000000 RotationRandomStartingBegin 0 RotationRandomStartingEnd 0 AttachEnable 1 StretchEnable 0 TexAniType 0 TexAniDelay 0.030000 TexAniRandomStartFrameEnable 0 List TimeEventGravity { 0.011429 4000.000000 } List TimeEventAirResistance { } List TimeEventScaleX { 0.000000 2.000000 } List TimeEventScaleY { 0.011429 0.381443 } List TimeEventColorRed { 0.000000 0.349020 0.997436 1.000000 } List TimeEventColorGreen { 0.000000 0.470588 0.997436 1.000000 } List TimeEventColorBlue { 0.000000 0.466667 0.997436 1.000000 } List TimeEventAlpha { 0.000000 0.000000 0.435897 0.620000 0.764103 0.600000 1.000000 0.000000 } List TimeEventRotation { 0.000000 0.000000 } List TextureFiles { "dds file" } } } Group Particle { StartTime 0.000000 List TimeEventPosition { 0.000000 "MOVING_TYPE_DIRECT" 0.000000 -317.922974 -4629.917480 } Group EmitterProperty { MaxEmissionCount 10 CycleLength 0.500000 CycleLoopEnable 1 LoopCount 0 EmitterShape 2 EmitterAdvancedType 0 EmittingSize 2500.000000 0.000000 0.000000 EmitterEmitFromEdgeFlag 0 EmittingDirection 0.030000 0.000000 0.000000 List TimeEventEmittingSize { 0.000000 0.000000 } List TimeEventEmittingAngularVelocity { 0.000000 0.000000 } List TimeEventEmittingDirectionX { 0.000000 0.000000 } List TimeEventEmittingDirectionY { 0.000000 -50.000000 } List TimeEventEmittingDirectionZ { 0.008571 0.000000 } List TimeEventEmittingVelocity { 0.000000 34.020618 } List TimeEventEmissionCountPerSecond { 0.000000 5.000000 } List TimeEventLifeTime { 0.000000 1.623711 } List TimeEventSizeX { 0.000000 700.000000 } List TimeEventSizeY { 0.000000 700.000000 } } Group ParticleProperty { SrcBlendType 5 DestBlendType 6 ColorOperationType 4 BillboardType 3 RotationType 0 RotationSpeed 0.000000 RotationRandomStartingBegin 0 RotationRandomStartingEnd 0 AttachEnable 0 StretchEnable 0 TexAniType 0 TexAniDelay 0.030000 TexAniRandomStartFrameEnable 0 List TimeEventGravity { 0.011429 0.000000 } List TimeEventAirResistance { 0.000000 0.000000 1.000000 0.010000 } List TimeEventScaleX { 0.000000 1.500000 0.840000 2.000000 } List TimeEventScaleY { 0.000000 0.505155 0.994286 3.000000 } List TimeEventColorRed { 0.000000 0.607843 0.625641 1.000000 } List TimeEventColorGreen { 0.000000 0.756863 0.625641 1.000000 } List TimeEventColorBlue { 0.000000 0.713726 0.625641 1.000000 } List TimeEventAlpha { 0.000000 0.000000 0.089744 0.550000 0.474359 0.640000 1.000000 0.000000 } List TimeEventRotation { 0.000000 0.000000 } List TextureFiles { "dds file" } } } Kind Regards HaveBeen
  16. It's not possible and system confused in this situations. But there are another methods. you can use to assert or dofile functions. This like locale.lua locale_english.lua locale_turkish.lua locale_hungary.lua Like this Example : you are add these codes on your settings.lua dofile("locale/english/locale_english.lua") dofile("locale/english/locale_turkish.lua") dofile("locale/english/locale_german.lua") dofile("locale/english/locale_french.lua") after a function for multi language function say_withlanguage(txt) local languages = {"turkey","english","german","french"} local txts = "locale_"..data[pc.getf("mLanguage","language")].."."..txt say(txts) end example quest quest mLanguage begin state start begin when 20354.chat."Test" begin say_withlanguage("testmode") end end end locale.lua locale_english = {} locale_turkish = {} locale_french = {} locale_german = {} locale_english.testmode = "Test" locale_turkish.testmode = "Deneme" locale_german.testmode = "Unknown" locale_french.testmode = "Unknown" Kind Regards HaveBeen
  17. Actually metin2 source has package-maker but i think there are many errors in source codes and anybody wanna share on metin2dev.org. If you want to look at source codes, look at novaline/Srcs/Tools/Metin2PackMaker Kind Regards HaveBeen
  18. this word wrong change converter without "n" meanwhile thanks for topic. Kind Regards HaveBeen
  19. quest skills begin state start begin when letter with (pc.getf("skills","mSkill") == 0) begin if(pc.level >= 25 and pc.level <= 55) then pc.setf("skills","mSkill",1) if(is_test_server()) then chat("skills mSkills change value to 1") end send_letter("Master Skills") end end when button or info begin if(pc.level >= 25) then say(string.format("Congrulations, you have reached %d",pc.level)) else say("Congrulations..") end say("And.. we would like to help you out giving you..") say("The Master Skills") pc.setf("skills","gSkill",1) if(is_test_server()) then chat("gSkill change value to 1") end for i = 1,table.getn(special.activate_skill_list[pc.get_job()+1][pc.get_skill_group()]),1 do pc.set_skill_level(special.activate_skill_list[pc.get_job()+1][pc.get_skill_group()][i],20) end end end end Kind Regards HaveBeen
  20. clientside only is a very bad idea, anyone with enough experience will go over your block as if it weren't there. Regards. Yep i understand you. only clientside is very bad but these files just for r2089,r34083. Already if i'll make for r40k, i'll share source files on this forum Thanks for advice. Kind Regards HaveBeen
  21. Thanks for comment. But i don't make for r40k Just for r2089,r34083 Hovewer, i'll add your comment in my topic Kind Regards HaveBeen
  22. You can create your self server files. No longer it should be easy. but if you wanna 40250 client, it's public on metin2dev.org Kind Regards HaveBeen
  23. Someone blocked this word. Someone not blocked this word. I just wanna show a solution. Kind Regards HaveBeen
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.