Jump to content

FlorinMarian

Premium
  • Posts

    305
  • Joined

  • Last visited

  • Days Won

    2
  • Feedback

    0%

Posts posted by FlorinMarian

  1. FreeBSD version doesn't matter at all if you compile your source on simmilar version.

    About specs, if u can afford, you should buy a dedicated server instead of a VPS Server due of :

    - Game AntiDDoS filter;

    - NVMe Storage;

    - Pure performance (on VPS NVMe it's limited and it works more like a SATA SSD not really like a NVMe);

    If you want something between them, you're welcome to browse my website and check for VPS Game packages.

    Best regards, Florin.

  2. Hi guys and Happy new year!

     

    I encounter a stupid BUG related to character window + teleport.

    It was introduced once with app.ENABLE_DETAILS_UI (Gameforge Bonus Page).

     

    GIF.gif

     

    To reproduce this BUG need only to keep character window open during warp.

     

    What happen? The window will not be distroyed but also it doesn't work as expected (cannot close it, object itself become nonetype) and can be only moved.

    .gif

    I've compared my root with GF and other servers and didn't found the hotfix for this.

    Any tip will be appreciated.

     

    Best regards, Florin.

     

    #Fixed. Don't trust OWSAP leaked files.

    • Metin2 Dev 1
    • Lmao 2
  3. Website: https://www.forgottenworld2.com

    Register: https://www.forgottenworld2.com/users/register

    Download: https://www.forgottenworld2.com/download

    Board: http://board.forgottenworld2.com/

     

    Our server become international few days ago, it is already 100% translated client-side in all 10 languages and server-side about 50% each language. (in progress..)

     

    We're waiting for you!

     

    y9iwMTw.png 

     

    • Confused 1
  4. Version of Files : 40250

     

    Hello!

     

    1. Description of the problem / Question :

    Can anyone share GF quests ? (I remember they we're released in 2014 but I cannot find them anymore).

     

    2. SysErr ( Client / Server ) / SysLog ( Server )

    None

     

    3. How to reproduce it ?

    Text lines based like this gameforge.dragon_lair_access

     

    4. Screenshots ?

    Not necesarry

     

    Thanks, Sincerly,
    Florin.

     

    #Solved.

    #CloseRequest.

  5. Hi!

    I have a weird bug about exp rings sales in private shops (normal and offline aswell).

    You cannot add it to shop because it is locked by "ANTI_SELL | ANTI_MYSHOP" flags, but they're not present in item_proto client or server side.

    You can sell it once with that bug about changing item position but when you get buy it from shop or get it back from offline shop you cannot sell it anymore because it's locked by same rule but serverside this time.

    How it is possible to look like have ANTI_SELL | ANTI_MYSHOP antiflags as long it isn't present for real.

    Thank you!

     

    item_proto.txt

    39002	°æÇèÀǹÝÁö	ITEM_UNIQUE	UNIQUE_NONE	1	ANTI_STACK	CONFIRM_WHEN_USE	WEAR_SHIELD	NONE	0	0	0	0	0	LIMIT_NONE	0	LIMIT_NONE	0	APPLY_NONE	0	APPLY_NONE	0	APPLY_NONE	0	60	0	0	0	0	0	0	0	0

     

  6. Hello!

     

     

    It doesn't causes Item duplicate but it's still strange how "if (pkItem->IsEquipped() == true)" it's bypassed.

    Doing same thing to Normal Shop Opening doesn't work at all, it always says "You cannot sell equipped items".

    Normal Shop Function:

    Spoiler
    
    void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE bItemCount)
    {
    	if (!CanHandleItem()) // @fixme149
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´Ù¸¥ °Å·¡Áß(â°í,±³È¯,»óÁ¡)¿¡´Â °³ÀλóÁ¡À» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù."));
    		return;
    	}
    
    #ifndef ENABLE_OPEN_SHOP_WITH_ARMOR
    	if (GetPart(PART_MAIN) > 2)
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°©¿ÊÀ» ¹þ¾î¾ß °³ÀÎ »óÁ¡À» ¿­ ¼ö ÀÖ½À´Ï´Ù."));
    		return;
    	}
    #endif
    
    	if (GetMyShop())	// ÀÌ¹Ì ¼¥ÀÌ ¿­·Á ÀÖÀ¸¸é ´Ý´Â´Ù.
    	{
    		CloseMyShop();
    		return;
    	}
    #ifdef __INVENTORY_PROTECT_SYSTEM__
    	if (GetQuestFlag("abs.INVENTORY_LOCK") == 1)
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("INVENTORY_LOCK_SYSTEM_TEXT_01"));
    		return;
    	}
    #endif
    	// ÁøÇàÁßÀÎ Äù½ºÆ®°¡ ÀÖÀ¸¸é »óÁ¡À» ¿­ ¼ö ¾ø´Ù.
    	quest::PC * pPC = quest::CQuestManager::instance().GetPCForce(GetPlayerID());
    
    	// GetPCForce´Â NULLÀÏ ¼ö ¾øÀ¸¹Ç·Î µû·Î È®ÀÎÇÏÁö ¾ÊÀ½
    	if (pPC->IsRunning())
    		return;
    
    	if (bItemCount == 0)
    		return;
    
    	int64_t nTotalMoney = 0;
    
    	for (int n = 0; n < bItemCount; ++n)
    	{
    		nTotalMoney += static_cast<int64_t>((pTable+n)->price);
    	}
    
    	nTotalMoney += static_cast<int64_t>(GetGold());
    
    	if (GOLD_MAX <= nTotalMoney)
    	{
    		sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", GetPlayerID(), GetName());
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20¾ï ³ÉÀ» ÃÊ°úÇÏ¿© »óÁ¡À» ¿­¼ö°¡ ¾ø½À´Ï´Ù"));
    		return;
    	}
    
    	char szSign[SHOP_SIGN_MAX_LEN+1];
    	strlcpy(szSign, c_pszSign, sizeof(szSign));
    
    	m_stShopSign = szSign;
    
    	if (m_stShopSign.length() == 0)
    		return;
    
    	if (CBanwordManager::instance().CheckString(m_stShopSign.c_str(), m_stShopSign.length()))
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ºñ¼Ó¾î³ª Àº¾î°¡ Æ÷ÇÔµÈ »óÁ¡ À̸§À¸·Î »óÁ¡À» ¿­ ¼ö ¾ø½À´Ï´Ù."));
    		return;
    	}
    
    	// MYSHOP_PRICE_LIST
    	std::map<DWORD, DWORD> itemkind;  // ¾ÆÀÌÅÛ Á¾·ùº° °¡°Ý, first: vnum, second: ´ÜÀÏ ¼ö·® °¡°Ý
    	// END_OF_MYSHOP_PRICE_LIST
    
    	std::set<TItemPos> cont;
    	for (BYTE i = 0; i < bItemCount; ++i)
    	{
    		if (cont.find((pTable + i)->pos) != cont.end())
    		{
    			sys_err("MYSHOP: duplicate shop item detected! (name: %s)", GetName());
    			return;
    		}
    
    		// ANTI_GIVE, ANTI_MYSHOP check
    		LPITEM pkItem = GetItem((pTable + i)->pos);
    
    		if (pkItem)
    		{
    			const TItemTable * item_table = pkItem->GetProto();
    
    			if (item_table && (IS_SET(item_table->dwAntiFlags, ITEM_ANTIFLAG_GIVE | ITEM_ANTIFLAG_MYSHOP)))
    			{
    				ChatPacket(CHAT_TYPE_INFO, LC_TEXT("À¯·áÈ­ ¾ÆÀÌÅÛÀº °³ÀλóÁ¡¿¡¼­ ÆǸÅÇÒ ¼ö ¾ø½À´Ï´Ù."));
    				return;
    			}
    
    			if (pkItem->IsEquipped() == true)
    			{
    				ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀåºñÁßÀÎ ¾ÆÀÌÅÛÀº °³ÀλóÁ¡¿¡¼­ ÆǸÅÇÒ ¼ö ¾ø½À´Ï´Ù."));
    				return;
    			}
    
    			if (true == pkItem->isLocked())
    			{
    				ChatPacket(CHAT_TYPE_INFO, LC_TEXT("»ç¿ëÁßÀÎ ¾ÆÀÌÅÛÀº °³ÀλóÁ¡¿¡¼­ ÆǸÅÇÒ ¼ö ¾ø½À´Ï´Ù."));
    				return;
    			}
    
    			// MYSHOP_PRICE_LIST
    			itemkind[pkItem->GetVnum()] = (pTable + i)->price / pkItem->GetCount();
    			// END_OF_MYSHOP_PRICE_LIST
    		}
    
    		cont.insert((pTable + i)->pos);
    	}
    
    	// MYSHOP_PRICE_LIST
    	// º¸µû¸® °³¼ö¸¦ °¨¼Ò½ÃŲ´Ù.
    	if (CountSpecifyItem(71049)) { // ºñ´Ü º¸µû¸®´Â ¾ø¾ÖÁö ¾Ê°í °¡°ÝÁ¤º¸¸¦ ÀúÀåÇÑ´Ù.
    
    		//
    		// ¾ÆÀÌÅÛ °¡°ÝÁ¤º¸¸¦ ÀúÀåÇϱâ À§ÇØ ¾ÆÀÌÅÛ °¡°ÝÁ¤º¸ ÆÐŶÀ» ¸¸µé¾î DB ij½Ã¿¡ º¸³½´Ù.
    		//
    		// @fixme403 BEGIN
    		TItemPriceListTable header;
    		memset(&header, 0, sizeof(TItemPriceListTable));
    
    		header.dwOwnerID = GetPlayerID();
    		header.byCount = itemkind.size();
    
    		size_t idx=0;
    		for (itertype(itemkind) it = itemkind.begin(); it != itemkind.end(); ++it)
    		{
    			header.aPriceInfo[idx].dwVnum = it->first;
    			header.aPriceInfo[idx].dwPrice = it->second;
    			idx++;
    		}
    
    		db_clientdesc->DBPacket(HEADER_GD_MYSHOP_PRICELIST_UPDATE, GetDesc()->GetHandle(), &header, sizeof(TItemPriceListTable));
    		// @fixme403 END
    	}
    	// END_OF_MYSHOP_PRICE_LIST
    	else if (CountSpecifyItem(50200))
    		RemoveSpecifyItem(50200, 1);
    	else
    		return; // º¸µû¸®°¡ ¾øÀ¸¸é Áß´Ü.
    
    	if (m_pkExchange)
    		m_pkExchange->Cancel();
    
    	TPacketGCShopSign p;
    
    	p.bHeader = HEADER_GC_SHOP_SIGN;
    	p.dwVID = GetVID();
    	strlcpy(p.szSign, c_pszSign, sizeof(p.szSign));
    
    	PacketAround(&p, sizeof(TPacketGCShopSign));
    
    	m_pkMyShop = CShopManager::instance().CreatePCShop(this, pTable, bItemCount);
    
    	if (IsPolymorphed() == true)
    	{
    		RemoveAffect(AFFECT_POLYMORPH);
    	}
    
    	if (GetHorse())
    	{
    		HorseSummon( false, true );
    	}
    	// new mount ÀÌ¿ë Áß¿¡, °³ÀÎ »óÁ¡ ¿­¸é ÀÚµ¿ unmount
    	// StopRidingÀ¸·Î ´º¸¶¿îÆ®±îÁö ó¸®Çϸé ÁÁÀºµ¥ ¿Ö ±×·¸°Ô ¾ÈÇسù´ÂÁö ¾Ë ¼ö ¾ø´Ù.
    	else if (GetMountVnum())
    	{
    		RemoveAffect(AFFECT_MOUNT);
    		RemoveAffect(AFFECT_MOUNT_BONUS);
    	}
    
    	SetPolymorph(30000, true);
    
    }

     

     

    Offline Shop

    Spoiler
    
    void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE bItemCount, DWORD id)
    {
    
    	if (g_ShopCosts.find(id) == g_ShopCosts.end())
    	{
    		sys_log(0, "Shop days error %s %d", c_pszSign, id);
    		return;
    	}
    	int days = g_ShopCosts[id].days;
    	long long price = g_ShopCosts[id].price;
    	if (price > 0 && GetGold() < price)
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT( "SHOP_NEED_MONEY"), price);
    		return;
    	}
    	if (days == 0 && GetPart(PART_MAIN) > 2)
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°©¿ÊÀ» ¹þ¾î¾ß °³ÀÎ »óÁ¡À» ¿­ ¼ö ÀÖ½À´Ï´Ù."));
    		return;
    	}
    
    	if (GetMyShop())
    	{
    		CloseMyShop();
    		return;
    	}
    #ifdef __INVENTORY_PROTECT_SYSTEM__
    	if (GetQuestFlag("abs.INVENTORY_LOCK") == 1)
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("INVENTORY_LOCK_SYSTEM_TEXT_01"));
    		return;
    	}
    #endif
    	int gShopMax = quest::CQuestManager::Instance().GetEventFlag("shop_max");
    	if (m_mapshops.size() >= (gShopMax ? gShopMax : 2))
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT( "SHOP_MAX_ERR"));
    		return;
    	}
    
    
    	if (g_ShopIndexCount.count(GetMapIndex())>0)
    	{
    		int shop_max = g_ShopIndexCount[GetMapIndex()];
    		bool block = false;
    
    #ifdef SHOP_ONLY_ALLOWED_INDEX
    		if (shop_max > 0)
    		{
    #else
    		if (shop_max == 0)
    			block = true;
    		else{
    #endif
    			std::auto_ptr<SQLMsg> pkMsg(DBManager::instance().DirectQuery("SELECT map_index from player_shop WHERE channel=%d and status='OK' and map_index=%d", g_bChannel, GetMapIndex()));
    			SQLResult * pRes = pkMsg->Get();
    			if (pRes->uiNumRows >= shop_max)
    				block = true;
    		}
    		if (block)
    		{
    			ChatPacket(CHAT_TYPE_INFO, LC_TEXT( "SHOP_MAP_MAX"));
    			return;
    		}
    	}
    #ifdef SHOP_ONLY_ALLOWED_INDEX
    	else
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT( "SHOP_CANNOT_OPEN_HERE"));
    		return;
    	}
    #endif
    	if (GetMyShop())	// AI1I 1YAI ?­·Á AÖA¸¸é ´Ý´Â´U.
    	{
    		CloseMyShop();
    		return;
    	}
    #ifndef FULL_YANG
    	int64_t nTotalMoney = 0;
    
    	for (int n = 0; n < bItemCount; ++n)
    	{
    		nTotalMoney += static_cast<int64_t> ((pTable + n)->price);
    	}
    
    	nTotalMoney += static_cast<int64_t> (GetGold());
    
    	if (GOLD_MAX <= nTotalMoney)
    	{
    		sys_err("[OVERFLOW_GOLD] Overflow (GOLD_MAX) id %u name %s", GetPlayerID(), GetName());
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("20¾ï ³ÉÀ» ÃÊ°úÇÏ¿© »óÁ¡À» ¿­¼ö°¡ ¾ø½À´Ï´Ù"));
    		return;
    	}
    #endif
    #ifdef __SASH_SYSTEM__
    	if(IsSashOpen())
    		CloseSash();
    #endif
    	quest::PC * pPC = quest::CQuestManager::instance().GetPCForce(GetPlayerID());
    	if (pPC->IsRunning())
    		return;
    	std::vector<TShopItemTable *> map_shop;
    	for (BYTE i = 0; i < bItemCount; ++i)
    	{
    		// ANTI_GIVE, ANTI_MYSHOP check
    		LPITEM pkItem = GetItem((pTable + i)->pos);
    
    		if (pkItem)
    		{
    			const TItemTable * item_table = pkItem->GetProto();
    
    			if (item_table && (IS_SET(item_table->dwAntiFlags, ITEM_ANTIFLAG_GIVE | ITEM_ANTIFLAG_MYSHOP)))
    			{
    				ChatPacket(CHAT_TYPE_INFO, LC_TEXT( "À¯·áÈ­ ¾ÆÀÌÅÛÀº °³ÀλóÁ¡¿¡¼­ ÆǸÅÇÒ ¼ö ¾ø½À´Ï´Ù."));
    				return;
    			}
    
    			if (pkItem->IsEquipped() == true)
    			{
    				ChatPacket(CHAT_TYPE_INFO, LC_TEXT( "ÀåºñÁßÀÎ ¾ÆÀÌÅÛÀº °³ÀλóÁ¡¿¡¼­ ÆǸÅÇÒ ¼ö ¾ø½À´Ï´Ù."));
    				return;
    			}
    
    			if (pkItem->isLocked())
    			{
    				ChatPacket(CHAT_TYPE_INFO, LC_TEXT( "»ç¿ëÁßÀÎ ¾ÆÀÌÅÛÀº °³ÀλóÁ¡¿¡¼­ ÆǸÅÇÒ ¼ö ¾ø½À´Ï´Ù."));
    				return;
    			}
    			if (pkItem->GetOwner() != this)
    			{
    				return;
    			}
    #ifdef SOULBIND_SYSTEM
    			if (pkItem->IsSoulBind())
    			{
    				ChatPacket(CHAT_TYPE_INFO, LC_TEXT( "You can't sell in private shop item with soul bind."));
    				return;
    			}
    #endif
    		}
    		if (days != 0)
    			map_shop.push_back(pTable++);
    	}
    	if (days != 0 && map_shop.size() == 0)
    		return;
    	char szName[256];
    	DBManager::instance().EscapeString(szName, 256, c_pszSign, strlen(c_pszSign));
    	m_stShopSign = szName;
    	boost::replace_all(m_stShopSign, "%", "%%");
    
    
    	if (m_stShopSign.length()>30)
    		m_stShopSign.resize(30);
    	if (m_stShopSign.length() == 0)
    		return;
    #ifdef STRING_PROTECTION
    	if (CBanwordManager::instance().CheckString(m_stShopSign.c_str(), m_stShopSign.length()) != "")
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ºñ¼Ó¾î³ª Àº¾î°¡ Æ÷ÇÔµÈ »óÁ¡ À̸§À¸·Î »óÁ¡À» ¿­ ¼ö ¾ø½À´Ï´Ù."));
    		return;
    	}
    #else
    	if (CBanwordManager::instance().CheckString(m_stShopSign.c_str(), m_stShopSign.length()))
    	{
    		ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ºñ¼Ó¾î³ª Àº¾î°¡ Æ÷ÇÔµÈ »óÁ¡ À̸§À¸·Î »óÁ¡À» ¿­ ¼ö ¾ø½À´Ï´Ù."));
    		return;
    	}
    #endif
    	if (m_pkExchange)
    		m_pkExchange->Cancel();
    	if (price > 0)
    #ifdef FULL_YANG_OWN
    		ChangeGold(-price);
    #else
    		PointChange(POINT_GOLD, -price);
    #endif
    	if (days != 0)
    	{
    		CShopManager::instance().CreateOfflineShop(this, m_stShopSign.c_str(), map_shop, id);
    		m_stShopSign.clear();
    		return;
    	}
    	TPacketGCShopSign p;
    	p.bHeader = HEADER_GC_SHOP_SIGN;
    	p.dwVID = GetVID();
    	strlcpy(p.szSign, m_stShopSign.c_str(), sizeof(p.szSign));
    
    	PacketAround(&p, sizeof(TPacketGCShopSign));
    
    	m_pkMyShop = CShopManager::instance().CreatePCShop(this, pTable, bItemCount);
    	if (!m_pkMyShop)
    	{
    		sys_err("Cannot open normal shop %s %s", GetName(), m_stShopSign.c_str());
    		return;
    	}
    	if (IsPolymorphed() == true)
    	{
    		RemoveAffect(AFFECT_POLYMORPH);
    	}
    
    	if (GetHorse())
    	{
    		HorseSummon(false, true);
    	}
    	else if (GetMountVnum())
    	{
    		RemoveAffect(AFFECT_MOUNT);
    		RemoveAffect(AFFECT_MOUNT_BONUS);
    	}
    
    	SetPolymorph(30000, true);
    
    }

     

     

    Thank you all !

    • Love 1
  7. Hi guys!

    I've implemented Render Target System and everything going well to me and most of players but some of them have this problem when going with mouse over armour/weapon/costume/hair:

    pNwqjJP.png

    Any idea?

    Syserr:

    0718 23:00:00679 :: Loading UIScript/PopupDialog.py (PopupDialog True)
    0718 23:00:00972 :: Loading locale/ro/ui/LoginWindow.py (LoginWindow False)
    0718 23:01:34341 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=137) - Strange Skill Need Weapon(CLAW)
    0718 23:01:34341 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=139) - Strange Skill Need Weapon(CLAW)
    0718 23:01:34341 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=170, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:34341 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=171, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:34341 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=172, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:34341 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=173, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:34341 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=174, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:34342 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=175, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:34463 :: Loading locale/ro/ui/selectcharacterwindow.py (selectcharacterwindow False)
    0718 23:01:34574 :: Loading uiscript/questiondialog.py (questiondialog True)
    0718 23:01:36387 :: Loading locale/ro/ui/SelectEmpireWindow.py (SelectEmpireWindow False)
    0718 23:01:39011 :: Loading locale/ro/ui/createcharacterwindow.py (createcharacterwindow False)
    0718 23:01:51633 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=137) - Strange Skill Need Weapon(CLAW)
    0718 23:01:51634 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=139) - Strange Skill Need Weapon(CLAW)
    0718 23:01:51634 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=170, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:51634 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=171, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:51634 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=172, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:51634 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=173, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:51634 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=174, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:51634 :: CPythonSkill::RegisterSkillDesc(dwSkillIndex=175, strType=wolfman).STRANGE_SKILL_TYPE
    0718 23:01:51682 :: Loading locale/ro/ui/selectcharacterwindow.py (selectcharacterwindow False)
    0718 23:01:51689 :: Loading uiscript/questiondialog.py (questiondialog True)
    0718 23:01:57705 :: Loading locale/ro/ui/LoadingWindow.py (LoadingWindow False)
    0718 23:01:03616 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc2/warrior/action/dance_7.msa) ERROR
    0718 23:01:03616 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc2/warrior/action/dance_7.msa) ERROR
    0718 23:01:03845 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc2/warrior/action/dance_7.msa) ERROR
    0718 23:01:03845 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc2/warrior/action/dance_7.msa) ERROR
    0718 23:01:05164 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc/assassin/action/dance_7.msa) ERROR
    0718 23:01:05164 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc/assassin/action/dance_7.msa) ERROR
    0718 23:01:05415 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc/assassin/action/dance_7.msa) ERROR
    0718 23:01:05415 :: CRaceData::RegisterMotionData - LoadMotionData(c_szFileName=d:/ymir work/pc/assassin/action/dance_7.msa) ERROR
    0718 23:02:14302 :: Loading UIScript/CharacterWindow.py (CharacterWindow True)
    0718 23:02:14331 :: Loading UIScript/InventoryWindowEx.py (InventoryWindowEx True)
    0718 23:02:14389 :: Loading UIScript/PickMoneyDialog.py (PickMoneyDialog True)
    0718 23:02:14390 :: Loading uiscript/questiondialog2.py (questiondialog2 True)
    0718 23:02:14391 :: Loading uiscript/refinedialog.py (refinedialog True)
    0718 23:02:14393 :: Loading uiscript/attachstonedialog.py (attachstonedialog True)
    0718 23:02:14399 :: Loading locale/ro/ui/dragonsoulwindow.py (dragonsoulwindow False)
    0718 23:02:14443 :: Loading uiscript/questiondialog.py (questiondialog True)
    0718 23:02:14444 :: Loading uiscript/questiondialog2.py (questiondialog2 True)
    0718 23:02:14445 :: Loading UIScript/PopupDialog.py (PopupDialog True)
    0718 23:02:14446 :: Loading locale/ro/ui/dragonsoulrefinewindow.py (dragonsoulrefinewindow False)
    0718 23:02:14461 :: Loading UIScript/PopupDialog.py (PopupDialog True)
    0718 23:02:14467 :: Loading UIScript/AtlasWindow.py (AtlasWindow True)
    0718 23:02:14468 :: Loading UIScript/SafeboxWindow.py (SafeboxWindow True)
    0718 23:02:14469 :: Loading UIScript/PickMoneyDialog.py (PickMoneyDialog True)
    0718 23:02:14470 :: Loading uiscript/popupdialog.py (popupdialog True)
    0718 23:02:14471 :: Loading uiscript/changepassworddialog.py (changepassworddialog True)
    0718 23:02:14473 :: Loading UIScript/MallWindow.py (MallWindow True)
    0718 23:02:14479 :: Loading UIScript/exchangedialog.py (exchangedialog True)
    0718 23:02:14482 :: Loading UIScript/PickMoneyDialog.py (PickMoneyDialog True)
    0718 23:02:14483 :: Loading UIScript/dicesystem.py (dicesystem True)
    0718 23:02:14485 :: Loading uiscript/questiondialog2.py (questiondialog2 True)
    0718 23:02:14485 :: Loading uiscript/questiondialog2.py (questiondialog2 True)
    0718 23:02:14488 :: Loading UIScript/shopdialog.py (shopdialog True)
    0718 23:02:14490 :: Loading uiscript/restartdialog.py (restartdialog True)
    0718 23:02:14490 :: Loading locale/ro/ui/SystemDialog.py (SystemDialog False)
    0718 23:02:14493 :: Loading locale/ro/ui/passworddialog.py (passworddialog False)
    0718 23:02:14496 :: Loading uiscript/passworddialog_inventory.py (passworddialog_inventory True)
    0718 23:02:14497 :: Loading UIScript/PrivateShopBuilder.py (PrivateShopBuilder True)
    0718 23:02:14499 :: Loading locale/ro/ui/TaskBar.py (TaskBar False)
    0718 23:02:14533 :: Loading UIScript/MouseButtonWindow.py (MouseButtonWindow True)
    0718 23:02:14536 :: Loading UIScript/RightMouseButtonWindow.py (RightMouseButtonWindow True)
    0718 23:02:14537 :: Loading locale/ro/ui/giftbox.py (giftbox False)
    0718 23:02:14540 :: Loading locale/ro/ui/ExpandedTaskBar.py (ExpandedTaskBar False)
    0718 23:02:14544 :: Loading locale/ro/ui/EnergyBar.py (EnergyBar False)
    0718 23:02:14547 :: Loading UIScript/gamewindow.py (gamewindow True)
    0718 23:02:14549 :: Loading UIScript/HelpWindow.py (HelpWindow True)
    0718 23:02:14556 :: Loading locale/ro/ui/WebWindow.py (WebWindow False)
    0718 23:02:14558 :: Loading uiscript/changelookwindow.py (changelookwindow True)
    0718 23:02:14566 :: Loading uiscript/sash_combinewindow.py (sash_combinewindow True)
    0718 23:02:14573 :: Loading uiscript/sash_absorbwindow.py (sash_absorbwindow True)
    0718 23:02:14579 :: Loading UIScript/CubeWindow.py (CubeWindow True)
    0718 23:02:14602 :: Loading UIScript/CubeResultWindow.py (CubeResultWindow True)
    0718 23:02:14603 :: Loading UIScript/selectitemwindow.py (selectitemwindow True)
    0718 23:02:14605 :: Loading UIScript/MiniMap.py (MiniMap True)
    0718 23:02:14646 :: Loading uiscript/pvp_advanced.py (pvp_advanced True)
    0718 23:02:14653 :: Loading uiscript/pvp_advanced_informations.py (pvp_advanced_informations True)
    0718 23:02:14656 :: Loading uiscript/AdminTool.py (AdminTool True)
    0718 23:02:04131 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:02:09306 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:04:40787 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:04:51219 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:04:53339 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:04:54998 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:04:57037 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:04:11443 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:04:13290 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:06:20137 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:06:36054 :: CInstanceBase::PushTCPState You can't send move packets to yourself!
    0718 23:06:37842 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:06:00037 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:07:15352 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:07:09253 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:08:33034 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:08:39023 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:08:45658 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:08:49994 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:08:54436 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:08:13328 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:09:39582 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:10:33863 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:11:24428 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:11:09032 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:11:11690 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:12:20546 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:12:32136 :: Loading uiscript/refinedialog.py (refinedialog True)
    0718 23:12:03750 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:12:07297 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:12:07331 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:12:07496 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:12:07710 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:12:07843 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:12:08023 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:13:47624 :: Loading uiscript/newquestiondialogitem.py (newquestiondialogitem True)
    0718 23:14:49112 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:14:55894 :: Loading uiscript/questdialog.py (questdialog True)
    0718 23:15:34035 :: Loading uiscript/questiondialog.py (questiondialog True)
    0718 23:15:45708 :: Loading UIScript/WhisperDialog.py (WhisperDialog True)
    0718 23:15:48273 :: ELTimer_GetMSec() - m_dwEmoticonTime
    0718 23:17:12749 :: Loading uiscript/questiondialog.py (questiondialog True)
    0718 23:17:12751 :: Loading uiscript/questiondialog2.py (questiondialog2 True)
    0718 23:19:31895 :: Loading uiscript/questiondialog.py (questiondialog True)
    0718 23:19:31896 :: Loading uiscript/questiondialog2.py (questiondialog2 True)

     

  8. Acum 17 minute, tierrilopes a spus:

    I would like to give you this to be a reference for yourself:

    https://www.hetzner.com/cloud

    Currently its the best in its category, so its a good way to compare vs your service.

    Thank you theri !

    After lots of reviews about TS3 protection (so UDP connection) isn't so good as OVH GAME.

    Probably that's why is not so popular as long they have cheaper prices.

  9. Hi guys !

    I would like to buy first dedicated Game Server (https://www.ovh.ie/dedicated_servers/hg/1801mhg03.xml) and starting selling first KVM Game Servers.

    Please answer to these questions:

    1. How those KVM packages are for you ?

    1 vCPU

    2 GB RAM

    20 GB SSD

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

    5 Euro/month

    2 vCPU

    4 GB RAM

    30 GB SSD

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

    8 Euro/month

    4 vCPU

    8 GB RAM

    40 GB SSD

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

    13 Euro/month

    4 vCPU

    16 GB RAM

    50 GB SSD

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

    16 Euro/month

    8 vCPU

    32 GB RAM

    100 GB SSD

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

    30 Euro/month

    2. If you will ever try our services, what location you would like to have ?

    3. Do you think it's important to attach in our sales page also CPanel hosting with NVMe storage?

    4. Do you think GameCP based services will reach your needs?

    Thank you for feedback!

  10. As all of us know, damage hacks send always same packet (eg. combo1, combo2, etc). It will be nice to send attack command client-server with attack type attached as variable and serverside to null them if they are identical in a short time.

     

    Best regards, Florin.

  11. Already solved myself moving those "flying" variables to each character.

    Used:

    • 1 variable to store Dicenumber (initialized 0)
    • SetDiceNumber() -> random(1,100)
    • GetDicenumber() -> return variable.

    Best regards, Florin.

    Acum 4 ore, Ken a spus:

    Sorry but this is not a challenge or something else. You just want someone to solve your problem without pay in your own way. (Challenge). If this is a challenge, then you can put some money. That's my option

    Best Regards

    Ken

     

    Hi Ken !

    I respect you and your work, i know how great are you but this time you fail interpreting my message.

    in my mind challenge has been to find how to exploit this system and after this, as you mentioned, it's normal to get paid for solving the problem.

    I didn't bet money for 2 reasons:

    • who can guarantee that it's code will solve the problem while i don't have idea how to exploit the system?
    • i sent this request in public, so, for everyone

    Best regards.

  12. Hi there !

    Abou 1 year ago I bought Dice System C++ by Fahtibab34, it was working well till few days ago when I've discovered that someone can exploit this system.

    I have my own log system and there I saw that this player got 60/60 matches won.

    I'm not a genius in client-game communications, maybe there it's something wrong and he can send numbers from client to game, not reversal?

    Who knowns?

    Let the party begin !

    System files: #deleted 

    • Sad 1
  13. La 20.08.2018 la 0:15, IceShiva a spus:

    desc_client.cpp in void CLIENT_DESC::SetPhase(int iPhase) edit

    
    				if (!bSentBoot)
    				{
    					bSentBoot = true;
    					TPacketGDBoot p;
    					p.dwItemIDRange[0] = 0;
    					p.dwItemIDRange[1] = 0;
    					memcpy(p.szIP, g_szPublicIP, 16); // set you external ip instead g_szPublicIP 
    					DBPacket(HEADER_GD_BOOT, 0, &p, sizeof(p));
    				}

    or you can do it in client side at NetAddress.cpp

    
    void CNetworkAddress::GetIP(char* szIP, int len)
    {
    	BYTE IPs[4];
    	*((DWORD*)IPs)=m_sockAddrIn.sin_addr.s_addr;
    
    	_snprintf(szIP, len, "%d.%d.%d.%d", IPs[0], IPs[1], IPs[2], IPs[3]); // replace with you external server ip
    }

     

    Thank you very much but in this way doesn't work because cannot bind on this IP.

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