Jump to content

Aveline™

Inactive Member
  • Posts

    190
  • Joined

  • Last visited

  • Days Won

    6
  • Feedback

    0%

Posts posted by Aveline™

  1. Belt System last slots cant be used now ;) you have above 255 slots now 

     

    Yep probably we have 255 slots at the moment but someone wanna use to belt system :)

     

    Thanks for comment

     

    Kind Regards

    HaveBeen

     

    thank u so much for this first part

    but about the belt system who InyaProduction say..? can u make a fix on this kind of "releaseguide "?

    Btw  super thanks to always ask me on your private message

    but i would like to say 1 thing, the last one about that, than if it  work i promise to no more breaking balls to all of super nice people here ( about 4 slots... xd the rest again )

    this is it:

    My problem is that:

    how does it mean , you nee to learn to compile c++ and source on freebsd"

    it s like if  i m telling you  " yes u can go to the moon , you just need to compile the launch module of the space shuttle and that s all "

    you will say " wtf dude , and how can i compile that, ok HaveBeen told me the part and what to write...but to make it work?"

    even if u are smart, you can t understand how to compile and where to put the edit files...

    i mean YOU know what write cos u have the guide of this person on this forum, but u will never understand how to do and how to put it on winscp

    U know what i mean?  I still don t understand how to make it working.... HaveBeen and all other nice and smart people helping me so much  but

    what i have to do after that:

    open PuTTy  and write a command ? or just drag the souce of novaline into winscp in which directory? i m going to be mad

    i never did that, maybe it s easy after all.... but, if i never did that, and people continue to tell me words like :" you need to compile the check the guide , etc etc"

    i can t understand in that way, i just need 1 SINGLE exemple on how to put it on winscp...then i will stop to be an a**hole .

     

    .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

    • Metin2 Dev 1
    • Lmao 1
    • Love 4
  2. 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

  3. M2 Download Center

    This is the hidden content, please
    ( Internal )

    Hi guys again :D

     

    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

    • Metin2 Dev 2
    • Love 3
  4. M2 Download Center

    This is the hidden content, please
    ( Internal )

    Hi guys :D 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.. :D

     

    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.

     

    https://mega.co.nz/#!TxpUzL6Y!9vC4ip61k_El6Ew6POIF53_PApd29a4CFSqIMdzb4XQ

     

    Kind Regards

    HaveBeen

    • Metin2 Dev 84
    • kekw 4
    • Eyes 3
    • Not Good 3
    • Lmao 1
    • Good 41
    • muscle 1
    • Love 9
    • Love 137
  5. M2 Download Center

    This is the hidden content, please
    ( Internal )

    Hi guys i will share mini quest with your :D

     

    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

    • Metin2 Dev 2
    • Think 1
    • Good 1
  6. OMG, u people in this forum are amazing,  on other forum, i dont say which one, cos i donno the rule

    people are retarded,  this server is the real ELITE metin2 knowledge wtf.

    thanks i m gonna , try, but i will fall miserable cos i m not smart like people here in this forum ç_ç 

    let s see! thanks any way, i m gonna try but... i really don t think i will able

    Without bug which destroy the entire computer and blowing up the server xd

    ----------------

    blocked at the begining... of course

    where is GameType.h   const DWORD c_Inventory_Page_Count = 2; in which directory? don t tell me client side, please help me

    telling me the directory ... " go on pack , open.. open open write"

    where is

    //Serverside

    INVENTORY_MAX_NUM / 2

    //replace all with:

    INVENTORY_MAX_NUM / 6

    same thing where i have to write that?  

    please help me

    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

    • Love 1
  7. 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

    • Good 1
    • Love 6
  8. Let me i explain to you :D

     

    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

    • Love 1
  9. It's not possible and system confused in this situations. But there are another methods. :D

     

    you can use to assert or dofile functions. This like locale.lua 

     

    locale_english.lua

    locale_turkish.lua

    locale_hungary.lua

     

    Like this :D

     

    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

  10. 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 

    • Love 1
  11.  

     

     

    Someone not blocked this word. I just wanna show a solution.

     

    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

  12.  

    The thread and the idea is great, but NEVER do something like this on client-side. Here is the server-side solution:

    Add mapindex.cpp and mapindex.h to your project

     

    Copy this to mapindex.cpp:

    #include "fstream"
    #include "stdafx.h"
    
    std::vector<std::string> ExcludeIndex;
    
    void LoadIndexes()
    {
    	std::string tempIndex;
    	std::ifstream File("locale/mapindex.txt");
    
    	if (!File.is_open())
    	{
    		sys_log(0, "WARNING: locale/mapindex.txt");
    		return;
    	}
    
    	ExcludeIndex.clear();
    
    	while (!File.eof())
    	{
    		File >> tempIndex;
    		ExcludeIndex.push_back(tempIndex);
    	}
    
    	File.close();
    }

    Copy this to mapindex.h:

    extern std::vector<std::string> ExcludeIndex;
    extern void LoadIndexes();

    Add this to main.cpp:

    #include "mapindex.h"

    Add this under PanamaLoad(); still in main.cpp:

    LoadIndexes();

    Add this to char.cpp:

    #include "mapindex.h"

    And these events:

    std::string CHARACTER::LongToString(long data)
    {
    	std::ostringstream convert;
    	convert << data;
    	return convert.str();
    }
    
    bool CHARACTER::AllowMapIndex()
    {
    	for (int i = 0; i < ExcludeIndex.size(); i++)
    	{
    		if (!strcmp(LongToString(GetMapIndex()).c_str(), ExcludeIndex[i].c_str()))
    		{
    			return false;
    		}
    	}
    
    	return true;
    }

    Open cmd_general.cpp and navigate to ACMD(do_pvp)

    Add this to the begin of the event:

    	if (!ch->AllowMapIndex())
    	{
    		ch->ChatPacket(CHAT_TYPE_INFO, ("PVP has been blocked on this map!"));
    		return;
    	}

    Example mapindex.txt:

    1
    2
    3
    4
    5
    6
    7

     

    Thanks for comment. But i don't make for r40k :) Just for r2089,r34083 :)

     

    Hovewer, i'll add your comment in my topic :D

     

    Kind Regards

    HaveBeen

    • Love 2
×
×
  • 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.