Jump to content

Rideas

Inactive Member
  • Posts

    137
  • Joined

  • Last visited

  • Days Won

    9
  • Feedback

    0%

Posts posted by Rideas

  1. On 11.07.2015 16:43:49, WhiteEagle said:

    PqWY0d.jpg

     

    I Need This System Please Help Me :(

    All Packets :

    // game

    char_battle.cpp : void CHARACTER::SendDamagePacket(LPCHARACTER pAttacker, int Damage, BYTE DamageFlag)

    char_battle.cpp : bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type)

    packet.h : typedef struct packet_damage_info

    // client

    packet.h : typedef struct packet_damage_info

    PythonNetworkStreamPhaseGame.cpp : bool CPythonNetworkStream::RecvDamageInfoPacket()

    InstanceBaseEffect.cpp : void CInstanceBase::AddDamageEffect(DWORD damage,BYTE flag,BOOL bSelf,BOOL bTarget)

    InstanceBaseEffect.cpp : void CInstanceBase::ProcessDamage()

    Thanks.

    :D

    • Love 1

  2. i try with classic tutorial from google:

     

    if(iLv <= 90)
    PointChange(POINT_STAT, ((MINMAX(1, iLv, 90) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT));
    else
    PointChange(POINT_STAT, 270 - GetPoint(POINT_STAT));

    ComputePoints();

    But i belive i don`t have function "if(iLv" 

     

    Sorry for my english.

     

    open char.cpp

    Search:


     

    if (GetLevel() < 91) PointChange(POINT_STAT, 1);

    change:

     

    if (GetLevel() < 99) PointChange(POINT_STAT, 1);

    Search:

     

    	if(iLv <= 91)
    		PointChange(POINT_STAT, ((MINMAX(1, iLv, 91) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT));
    	else
    		PointChange(POINT_STAT, 91*3 - GetPoint(POINT_STAT));

    change:

     

    	if(iLv <= 99)
    		PointChange(POINT_STAT, ((MINMAX(1, iLv, 99) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT));
    	else
    		PointChange(POINT_STAT, 99*3 - GetPoint(POINT_STAT));

     

    825Db.png

    :D


  3. i try with classic tutorial from google:

     

    if(iLv <= 90)
    PointChange(POINT_STAT, ((MINMAX(1, iLv, 90) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT));
    else
    PointChange(POINT_STAT, 270 - GetPoint(POINT_STAT));

    ComputePoints();

    But i belive i don`t have function "if(iLv" 

     

    Sorry for my english.

     

    open char.cpp

    Search:


     

    if (GetLevel() < 91) PointChange(POINT_STAT, 1);

    change:

     

    if (GetLevel() < 99) PointChange(POINT_STAT, 1);

    Search:

     

    	if(iLv <= 91)
    		PointChange(POINT_STAT, ((MINMAX(1, iLv, 91) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT));
    	else
    		PointChange(POINT_STAT, 91*3 - GetPoint(POINT_STAT));

    change:

     

    	if(iLv <= 99)
    		PointChange(POINT_STAT, ((MINMAX(1, iLv, 99) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT));
    	else
    		PointChange(POINT_STAT, 99*3 - GetPoint(POINT_STAT));

     

  4. try this

     

    	...
    	
    	
    	if (item->GetType() == ITEM_COSTUME && item->GetSubType() >= COSTUME_BELL && item->GetSubType() <= COSTUME_TWO_HANDED)
    	{
    		LPITEM lpWeapon = GetWear(WEAR_WEAPON);
    		if (lpWeapon == NULL)
    			return false;
    		
    	...

     

    I've already fixed it. I pasted the code on wrong place.

    Can you add me please in Skype? (mravenue.epvp) I've got a question


    Another problem fix


     

    bool CHARACTER::UnequipItem(LPITEM item)
    {
    
        [...]
        if (item->GetType() == ITEM_WEAPON)
    	{
    		if (GetWear(WEAR_COSTUME_WEAPON))
    		{
    			ChatPacket(CHAT_TYPE_INFO, "Remove the first costume weapons");
    			return false;
    		}
    	}
    }

     

    • Love 1
  5. def __SendChatPacket(self, text, type):
            name = player.GetName()
        
            if net.IsChatInsultIn(text):
                chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_INSULT_STRING)
                return
            else:
                text = "|Hmsg:" + name + "|h""[PM]""|h|r " + text
                net.SendChatPacket(text, type)

     

     

    That is my def of chat. When i say something e say this line :

     text = "|Hmsg:" + name + "|h""[PM]""|h|r " + text

     

     

    How can i say that only in ChatPacket, GuildChatPacket and ShoutChatPacket

    Please? 

     

     

     

    Found it:

     

    def __SendChatPacket(self, text, type):
            name = player.GetName()
        
            if net.IsChatInsultIn(text):
                chat.AppendChat(chat.CHAT_TYPE_INFO, locale.CHAT_INSULT_STRING)
                return
            else:
                if type == chat.CHAT_TYPE_SHOUT or type == chat.CHAT_TYPE_GUILD or type == chat.CHAT_TYPE_PARTY:
                    text = "|Hmsg:" + name + "|h""[PM]""|h|r " + text
                    net.SendChatPacket(text, type)
                else:
                    net.SendChatPacket(text, type)

     

     

     

    Close it please.

     

     


                texts = "|Hmsg:" + name + "|h"+"[PM]"+"|h|r " + text
                net.SendChatPacket(texts, type)

  6. Will try and post if it helps :)

    Hello

     

    I'm having problems with some of the itmes i put in the shop. When I change their price in navi to something they don't get saved and 

    in-game they are just 0 yang and when i try to buy it says i dont have enough yang.

    Anyone know the solution for this? That would be greatly appreciated! :)

     

    Have a nice day:)

     

    open game/shop.cpp

    Search:


     

    if (r_item.price <= 0)

    change:

     

    if (r_item.price < 0)

     

    And where exactly is this folder?

    Sorry if it's a stupid question I'm a beginner

    Kraziy.tgz game/src/

  7. Hello

     

    I'm having problems with some of the itmes i put in the shop. When I change their price in navi to something they don't get saved and 

    in-game they are just 0 yang and when i try to buy it says i dont have enough yang.

    Anyone know the solution for this? That would be greatly appreciated! :)

     

    Have a nice day:)

     

    open game/shop.cpp

    Search:


     

    if (r_item.price <= 0)

    change:

     

    if (r_item.price < 0)

     

    • Love 2
  8. comb1.tga

    This is the hidden content, please

    Thanks men

    http://www.mpcforum.pl/topic/1443548-transfer-bonusów-kostiumów/

    It isn't your code in cpp, I published it 2 months ago on polish forum. :rolleyes: I'm so disappointed, I thought that only in Poland people steal everything what they can. You made little changes in code, but it's still looks too similar to my code. 

    Jr3nbq6.png

    qp3Zpqu.png

    :rolleyes:

    I did not say you belong to me

    • Love 1
  9. M2 Download Center

    This is the hidden content, please
    ( Internal )

    open game/char.h

    Add:

     

    void			CostumeBonusTransfer(DWORD cell1, DWORD cell2);


    open game/char.cpp

    Add:

     

    void CHARACTER::CostumeBonusTransfer(DWORD cell1, DWORD cell2)
    {
    	int CostumeTransferBonusItemVnum = 76025; // costume bonus transfer item vnum
    	if ((GetExchange() || IsOpenSafebox() || GetShopOwner()) || IsCubeOpen() || IsDead())
    	{
    		ChatPacket(CHAT_TYPE_INFO, "Alisveris durumunda kostum bonusu aktarilamaz !");
    		return;
    	}
    
    	LPITEM costume1 = GetInventoryItem(cell1);
    	LPITEM costume2 = GetInventoryItem(cell2);
    	if (!costume1){
    		ChatPacket(CHAT_TYPE_INFO, "Kostum bulunamadi hata !");
    		return;
    	}
    	
    	if (costume1->GetType() != ITEM_COSTUME || costume1->GetType() == ITEM_COSTUME && costume1->GetSubType() != ARMOR_BODY)
    	{
    		ChatPacket(CHAT_TYPE_INFO, "Bu islem sadece zirh kostumune yapilabilir!");
    		return;
    	}
    	
    	if (!costume2){
    		ChatPacket(CHAT_TYPE_INFO, "Kostum bulunamadi hata!");
    		return;
    	}
    	
    	if (costume2->GetType() != ITEM_COSTUME || costume2->GetType() == ITEM_COSTUME && costume2->GetSubType() != ARMOR_BODY)
    	{
    		ChatPacket(CHAT_TYPE_INFO, "Sadece kostumun bonusu aktarilabilir !");
    		return;
    	}
    	
    	if (CountSpecifyItem(CostumeTransferBonusItemVnum) < 1){
    		ChatPacket(CHAT_TYPE_INFO, "Bonus transfer esyasi bulunamadi");
    		return;
    	}
    	
    	if (costume2->GetAttributeCount() < 1){
    		ChatPacket(CHAT_TYPE_INFO, "Bonusu olmayan bir kostumun efsunu aktarilamaz!");
    		return;
    	}
    	
    	
    	RemoveSpecifyItem(CostumeTransferBonusItemVnum, 1);
    	costume1->ClearAttribute();
    	for (int i = 0; i < costume2->GetAttributeCount(); i++){
    		costume1->SetForceAttribute(i, costume2->GetAttributeType(i), costume2->GetAttributeValue(i));
    	}
    	
    	costume2->RemoveFromCharacter();
    	
    	ChatPacket(CHAT_TYPE_INFO, "Kostum bonus aktarimi basarili");
    }

    open cmd.cpp:

    Search:

     

    ACMD(do_block_chat);


    Add:

     

    ACMD(do_costume_bonus_transfer);

    open cmd_gm.cpp

    Search:

     

    ACMD(do_block_chat)
    {
    	// GM이 아니거나 block_chat_privilege가 없는 사람은 명령어 사용 불가
    	if (ch && (ch->GetGMLevel() < GM_HIGH_WIZARD && ch->GetQuestFlag("chat_privilege.block") <= 0))
    	{
    		ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("그런 명령어는 없습니다"));
    		return;
    	}
    
    	char arg1[256];
    	argument = one_argument(argument, arg1, sizeof(arg1));
    
    	if (!*arg1)
    	{
    		if (ch)
    			ch->ChatPacket(CHAT_TYPE_INFO, "Usage: block_chat <name> <time> (0 to off)");
    
    		return;
    	}
    
    	const char* name = arg1;
    	long lBlockDuration = parse_time_str(argument);
    
    	if (lBlockDuration < 0)
    	{
    		if (ch)
    		{
    			ch->ChatPacket(CHAT_TYPE_INFO, "잘못된 형식의 시간입니다. h, m, s를 붙여서 지정해 주십시오.");
    			ch->ChatPacket(CHAT_TYPE_INFO, "예) 10s, 10m, 1m 30s");
    		}
    		return;
    	}
    
    	sys_log(0, "BLOCK CHAT %s %d", name, lBlockDuration);
    
    	LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(name);
    
    	if (!tch)
    	{
    		CCI * pkCCI = P2P_MANAGER::instance().Find(name);
    
    		if (pkCCI)
    		{
    			TPacketGGBlockChat p;
    
    			p.bHeader = HEADER_GG_BLOCK_CHAT;
    			strlcpy(p.szName, name, sizeof(p.szName));
    			p.lBlockDuration = lBlockDuration;
    			P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGBlockChat));
    		}
    		else
    		{
    			TPacketBlockChat p;
    
    			strlcpy(p.szName, name, sizeof(p.szName));
    			p.lDuration = lBlockDuration;
    			db_clientdesc->DBPacket(HEADER_GD_BLOCK_CHAT, ch ? ch->GetDesc()->GetHandle() : 0, &p, sizeof(p));
    		}
    
    		if (ch)
    			ch->ChatPacket(CHAT_TYPE_INFO, "Chat block requested.");
    
    		return;
    	}
    
    	if (tch && ch != tch)
    		tch->AddAffect(AFFECT_BLOCK_CHAT, POINT_NONE, 0, AFF_NONE, lBlockDuration, 0, true);
    }



    Add:

     

    ACMD(do_costume_bonus_transfer)
    {
    	char arg1[256], arg2[256];
    	DWORD cell1, cell2;
    	two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
    
    	if (!*arg1 || !*arg2)
    		return;
    	str_to_number(cell1, arg1);
    	str_to_number(cell2, arg2);
    
    	if (cell1 < 0 || cell1 > INVENTORY_MAX_NUM || cell2 < 0 || cell2 > INVENTORY_MAX_NUM || cell1 == cell2)
    		return;
    
    	ch->CostumeBonusTransfer(cell1, cell2);
    }






    open root

    create uibonustransfer.py

    add:

     

    import ui
    import player
    import event
    import uiToolTip
    import exception
    import item
    import uiCommon
    import mouseModule
    import chat
    import net
    
    class BonusTransfer(ui.ScriptWindow):
    
    	def __init__(self):
    		ui.ScriptWindow.__init__(self)
    		self.buttons, self.grids, self.costumes = {}, {}, {300 : {},303 : {},}
    		self.__Load()
    
    		self.tooltipItem = uiToolTip.ItemToolTip()
    		self.tooltipItem.Hide()
    		
    	def __del__(self):
    		ui.ScriptWindow.__del__(self)
    		self.Close()
    
    	def __Load_LoadScript(self, fileName):
    		try:
    			pyScriptLoader = ui.PythonScriptLoader()
    			pyScriptLoader.LoadScriptFile(self, fileName)
    		except:
    			import exception
    			exception.Abort("BonusTransfer.__Load_LoadScript")
    
    	def __Load_BindObject(self):
    		try:
    			self.titleBar = self.GetChild("TitleBar")
    			self.grids[300] = self.GetChild("Costume1")
    			self.grids[303] = self.GetChild("Costume2")
    			self.grids[2] = self.GetChild("Costume3")
    			self.grids[3] = self.GetChild("Item")
    			self.buttons[0] = self.GetChild("Button1")
    			self.buttons[1] = self.GetChild("Button2")
    		except:
    			import exception
    			exception.Abort("BonusTransfer.__Load_BindObject")
    			
    		self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close))
    		self.grids[300].SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
    		self.grids[300].SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))	
    		self.grids[300].SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
    		self.grids[300].SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemSlot))
    		self.grids[303].SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
    		self.grids[303].SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))	
    		self.grids[303].SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
    		self.grids[303].SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemSlot))
    		self.grids[2].SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
    		self.grids[2].SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
    		self.grids[3].SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
    		self.grids[3].SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))	
    		self.grids[3].SetSelectEmptySlotEvent(ui.__mem_func__(self.SelectEmptySlot))
    		self.grids[3].SetUnselectItemSlotEvent(ui.__mem_func__(self.UnselectItemSlot))				
    		self.buttons[0].SetEvent(self.TransferDialog)
    		self.buttons[1].SetEvent(self.Close)
    
    	def __Load(self):
    		self.__Load_LoadScript("uiscript/bonustransfer.py")
    		self.__Load_BindObject()
    			
    	def OnPressEscapeKey(self):
    		self.Close()
    		return TRUE
    		
    	def Shows(self):
    		ui.ScriptWindow.Show(self)
    
    	def Close(self):
    		self.Hide()
    		return TRUE		
    	
    	def TransferDialog(self):
    		self.ConfirmEkran = uiCommon.QuestionDialog()
    		self.ConfirmEkran.SetText("Kostüm bonusu aktarılsın mı ?")
    		self.ConfirmEkran.SetAcceptEvent(self.Transfer)
    		self.ConfirmEkran.SetCancelEvent(self.NoTransfer)
    		self.ConfirmEkran.Open()
    
    	def Transfer(self):
    		self.ConfirmEkran.Close()
    		if self.costumes[300][0] is None or self.costumes[303][0] is None:
    			return
    		self.grids[3].ClearSlot(3)
    		self.grids[3].RefreshSlot()
    		self.grids[303].ClearSlot(303)
    		self.grids[303].RefreshSlot()
    		net.SendChatPacket("/costume_bonus_transfer "+str(self.costumes[300][0])+" "+str(self.costumes[303][0]))
    		self.Close()
    		
    	def NoTransfer(self):
    		self.ConfirmEkran.Close()
    
    	def OverInItem(self, index):
    		target = 303
    		if index == 400:
    			itemVnum = player.GetItemIndex(self.costumes[300][0])
    			if self.costumes[303][0] is None:
    				target = 300
    			stones = [player.GetItemMetinSocket(self.costumes[target][0], i) for i in xrange(player.METIN_SOCKET_MAX_NUM)]	
    			attr = [player.GetItemAttribute(self.costumes[target][0], i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)]
    			self.tooltipItem.SetControledToolTip(itemVnum, stones, attr)
    		else:
    			if self.costumes[index] is None:
    				return
    			self.tooltipItem.SetInventoryItem(self.costumes[index][0])
    		
    	def OverOutItem(self):
    		if self.tooltipItem:
    			self.tooltipItem.HideToolTip()
    			
    	def SelectEmptySlot(self, selectedSlotPos):
    		if mouseModule.mouseController.isAttached():
    			attachedSlotType = mouseModule.mouseController.GetAttachedType()
    			attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber()
    			itemVnum = player.GetItemIndex(attachedSlotPos)
    			itemCount = player.GetItemCount(attachedSlotPos)
    			item.SelectItem(itemVnum)
    			itemType = item.GetItemType()	
    			itemSubType = item.GetItemSubType()			
    			if selectedSlotPos == 301:
    				selectedSlotPos = 300
    			if selectedSlotPos == 304:
    				selectedSlotPos = 303
    			if selectedSlotPos == 403:
    				if itemVnum == 76025: # costume bonus transfer item kod
    					self.grids[3].SetItemSlot(403, itemVnum, itemCount)	
    				else:
    					return
    					mouseModule.mouseController.DeattachObject()				
    			if player.SLOT_TYPE_INVENTORY == attachedSlotType:
    				if itemType != item.ITEM_TYPE_COSTUME:
    					mouseModule.mouseController.DeattachObject()
    					return
    				elif itemType == item.ITEM_TYPE_COSTUME and itemSubType == 0:
    					pass				
    				if attachedSlotPos in self.costumes:
    					mouseModule.mouseController.DeattachObject()				
    					return
    				self.grids[selectedSlotPos].SetItemSlot(selectedSlotPos, itemVnum)
    				self.grids[selectedSlotPos].RefreshSlot()
    				self.costumes[selectedSlotPos][0] = attachedSlotPos
    				if selectedSlotPos == 300:
    					self.grids[2].SetItemSlot(400, itemVnum)
    						
    			mouseModule.mouseController.DeattachObject()	
    			self.OverOutItem()
    
    	def UnselectItemSlot(self, selectedSlotPos):
    		isAttached = mouseModule.mouseController.isAttached()
    		if not isAttached:
    			self.costumes[selectedSlotPos][0] = 0
    			self.grids[selectedSlotPos].ClearSlot(selectedSlotPos)
    			self.grids[selectedSlotPos].RefreshSlot()
    		if selectedSlotPos == 300:
    			self.grids[2].ClearSlot(400)
    			self.grids[2].RefreshSlot()		

    open game.py

    Search:

     

    "MyShopPriceList"		: self.__PrivateShop_PriceList,


    Add:

     

    "kostumekran"			: self.OpenBonusTransferWindow,

    game.py endline add:

     

    	def OpenBonusTransferWindow(self):
    		import uibonustransfer
    		self.BonusTransfers = uibonustransfer.BonusTransfer()
    		self.BonusTransfers.Show()

    open uiscript

    create bonustransfer.py

    Add:

     

    window = {
    	"name" : "Bonusessssssss",
    	"style" : ("movable", "float",),	
    	"x":(SCREEN_WIDTH - 188+8+8) / 2,
    	"y":(SCREEN_HEIGHT - 335) / 2,	
    	"width" : 188+8+8,
    	"height" : 335+42,
    	
    	"children" :
    	(
    		{
    			"name" : "Board",
    			"type" : "board",
    			"style" : ("attach",),
    
    			"x" : 0,
    			"y" : 0,
    
    			"width" : 188+8+8,
    			"height" : 335+42,
    
    			"children" :
    			(	
    				{
    					"name" : "TitleBar",
    					"type" : "titlebar",
    					"style" : ("attach",),
    					"x" : 8,
    					"y" : 8,
    					"width" : 188+8+8-16,
    					"color" : "gray",
    					"children" :
    					(
    						{ 
    							"name":"TitleName",
    							"type":"text",
    							"x":0,
    							"y":4, 
    							"text" : "Bonus Transfer", 
    							"horizontal_align":"center",
    							"text_horizontal_align":"center" 
    						},
    					),
    				},
    				{
    					"name" : "Background",
    					"type" : "image",
    					"x" : 8,
    					"y" : 28,
    					"image" : "comb1.tga",
    					"children" :
    					(
    						{
    							"name" : "Costume1",
    							"type" : "grid_table",
    							"x" : 28,
    							"y" : 67,
    							"x_count" : 1,
    							"y_count" : 3,
    							"x_step" : 32,
    							"y_step" : 32,
    							"start_index" : 300,
    						},
    						{
    							"name" : "Costume2",
    							"type" : "grid_table",
    							"x" : 128,
    							"y" : 67,
    							"x_count" : 1,
    							"y_count" : 3,
    							"x_step" : 32,
    							"y_step" : 32,
    							"start_index" : 303,			
    						},
    						{
    							"name" : "Costume3",
    							"type" : "grid_table",
    							"x" : 80,
    							"y" : 185,
    							"x_count" : 1,
    							"y_count" : 3,
    							"x_step" : 32,
    							"y_step" : 32,
    							"start_index" : 400,			
    						},	
    						{
    							"name" : "Item",
    							"type" : "grid_table",
    							"x" : 80,
    							"y" : 14,
    							"x_count" : 1,
    							"y_count" : 1,
    							"x_step" : 32,
    							"y_step" : 32,
    							"start_index" : 403,			
    						},						
    					),
    				},
    						
    				{
    					"name" : "Button1",
    					"type" : "button",
    					"x" : 34,
    					"y" : 342,			
    					"text" : "Aktar",
    					"default_image" : "d:/ymir work/ui/public/middle_button_01.sub",
    					"over_image" : "d:/ymir work/ui/public/middle_button_02.sub",
    					"down_image" : "d:/ymir work/ui/public/middle_button_03.sub",
    				},
    				{
    					"name" : "Button2",
    					"type" : "button",
    					"x" : 34+70,
    					"y" : 342,			
    					"text" : "İptal",
    					"default_image" : "d:/ymir work/ui/public/middle_button_01.sub",
    					"over_image" : "d:/ymir work/ui/public/middle_button_02.sub",
    					"down_image" : "d:/ymir work/ui/public/middle_button_03.sub",
    				},
    			),
    		},
    	),
    }

    Lua:

     

    quest costumbonus begin
    	state start begin
    		when 20087.chat."Bonus Transfer" begin
    		cmdchat("kostumekran")
    		setskin(NOWINDOW)
    		end
    	end
    end



    uiscript add:

    comb1.tga

    This is the hidden content, please

    • Metin2 Dev 31
    • Lmao 1
    • Good 3
    • Love 3
    • Love 13
  10. 	if (ITEM_BELT == item->GetType())
    		ERROR_MSG(CBeltInventoryHelper::IsExistItemInBeltInventory(this), "Error text");
    if (item->GetType() == ITEM_BELT && CBeltInventoryHelper::IsExistItemInBeltInventory(this))
    	ChatPacket(CHAT_TYPE_INFO, LC_TEXT("이는에러 메시지 이다"));

    At first, ERROR_MSG define is useless here for me. This condition will be helpful for everyone.

    Kind Regards ~ Ken

    Thanks

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