-
Posts
196 -
Joined
-
Last visited
-
Days Won
14 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by Abel(Tiger)
-
-
On 27.02.2017 at 14:22, Root said:
Replace:
if (ch->IsPC() && ch->IsDead()) { if (ch->GetDesc()) { LogManager::instance().HackLog("GHOSTMODE", ch); ch->GetDesc()->DelayedDisconnect(3); } }
with:
if (ch->IsPC() && ch->IsDead()) { if (ch->GetDesc()) { LogManager::instance().HackLog("GHOSTMODE", ch); ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY(), ch->GetZ()); ch->Stop(); return; } }
-
uiinventory.py:
search:
self.inventoryTab[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg))
add after:
self.inventoryTab[0].Down()
- 1
-
In offlineshop_manager.cpp replace Refresh function with that:
Spoilervoid COfflineShopManager::Refresh(LPCHARACTER ch) { if (!ch) return; LPCHARACTER npc = CHARACTER_MANAGER::Instance().Find(FindMyOfflineShop(ch->GetPlayerID())); if (npc) { LPOFFLINESHOP pkOfflineShop = npc->GetOfflineShop(); if (!pkOfflineShop) return; pkOfflineShop->Refresh(ch); return; } TPacketGCShop pack; pack.header = HEADER_GC_OFFLINE_SHOP; pack.subheader = SHOP_SUBHEADER_GC_UPDATE_ITEM2; TPacketGCOfflineShopStart pack2; memset(&pack2, 0, sizeof(pack2)); pack2.owner_vid = 0; char szQuery[1024]; snprintf(szQuery, sizeof(szQuery), "SELECT pos, count, vnum, price, socket0, socket1, socket2, " "attrtype0, attrvalue0, " "attrtype1, attrvalue1, " "attrtype2, attrvalue2, " "attrtype3, attrvalue3, " "attrtype4, attrvalue4, " "attrtype5, attrvalue5, " "attrtype6, attrvalue6 " #ifdef USE_LENTS_SHOULDER_SASH ", applytype0, applyvalue0, " "applytype1, applyvalue1, " "applytype2, applyvalue2, " "applytype3, applyvalue3, " "applytype4, applyvalue4, " "applytype5, applyvalue5, " "applytype6, applyvalue6, " "applytype7, applyvalue7 " #endif "FROM %soffline_shop_item WHERE owner_id = %u and status = 0", get_table_postfix(), ch->GetPlayerID()); std::auto_ptr<SQLMsg> pMsg(DBManager::Instance().DirectQuery(szQuery)); if (pMsg->Get()->uiNumRows == 0) memset(&pack2, 0, sizeof(pack2)); else { for (int i = 0; i < mysql_num_rows(pMsg->Get()->pSQLResult); ++i) { MYSQL_ROW row = mysql_fetch_row(pMsg->Get()->pSQLResult); int cur = 0; BYTE bPos = 0; str_to_number(bPos, row[cur++]); str_to_number(pack2.items[bPos].count, row[cur++]); str_to_number(pack2.items[bPos].vnum, row[cur++]); str_to_number(pack2.items[bPos].price, row[cur++]); for (BYTE j = 0; j < ITEM_SOCKET_MAX_NUM; j++) str_to_number(pack2.items[bPos].alSockets[j], row[cur++]); for (BYTE n = 0; n < ITEM_ATTRIBUTE_MAX_NUM; n++) { str_to_number(pack2.items[bPos].aAttr[n].bType, row[cur++]); str_to_number(pack2.items[bPos].aAttr[n].sValue, row[cur++]); } } } pack.size = sizeof(pack) + sizeof(pack2); if (ch->GetDesc()) { ch->GetDesc()->BufferedPacket(&pack, sizeof(TPacketGCShop)); ch->GetDesc()->Packet(&pack2, sizeof(TPacketGCOfflineShopStart)); } }
- 2
-
2 minutes ago, ѕeмa™ said:
but as u can see in my image, i dont have full screen, that fix will work for alt+tab too?
Is the same thing dude , when you leave aplication with camera active she just stop .
-
5 minutes ago, ѕeмa™ said:
Is this what u mean?
right click, alt+tab change window and try to move the mouse .
I know , but not all players know alt+tab.
-
When you move camera and minimize client in the same time mouse remains blocked and you need to maximize client , stop move camera and minimize again .
-
An annoying bug which need a fix.
Gif with the problem (from ѕeмa™) :
// PythonApplicationProcedure.cpp // After: if (m_isWindowFullScreenEnable) { __MinimizeFullScreenWindow(hWnd, m_dwWidth, m_dwHeight); } // Just add: OnMouseMiddleButtonUp(0, 0);
- 21
- 5
- 1
- 33
-
- 15
- 2
- 2
- 5
- 4
- 10
-
PythonEventManager.cpp
const long c_lNormal_Waiting_Time = 0;
- 2
-
This is official effect :
https://metin2.download/picture/n8Qu6zrCJaAr955j6jAo3aVKZGvn5iQ3/.gif
https://metin2.download/picture/xKRHyDMXdWZO1S94AYEOe6Nt7f38Z1Rw/.gif
------------------------------------------------------------------------------
#playersettingmodule.py
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "Bip01", "D:/ymir work/pc/common/effect/armor/acc_01.mse")
------------------------------------------------------------------------------
This is acc_01.mse :
- 9
- 1
- 2
- 5
-
-
uiquest.py -> event.SetRestrictedCount
- 1
-
-
In input_main.cpp in function : int CInputMain::MyOfflineShop(LPCHARACTER ch, const char * c_pData, size_t uiBytes)
add:
if (ch->GetExchange() || ch->IsOpenSafebox() || ch->GetShopOwner() || ch->IsCubeOpen() || ch->GetOfflineShopOwner() || ch->IsAcceOpen())
{
ch->ChatPacket(CHAT_TYPE_NOTICE, ("This nigga try to make a bug -> %s."), ch->GetName());
return (iExtraLen);
}- 1
-
Contact creator (Vegas) and he help you if you bought this system.
- 2
-
-
PythonEventManager.cpp
const long c_lNormal_Waiting_Time = 0;
- 1
-
In locale_game.txt search GAME_PICK_MONEY and replace %d with %s .
In game.py search function def OnPickMoney(self, money): and replace with:
chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.GAME_PICK_MONEY % (localeInfo.NumberToMoneyString(money)))
- 2
-
upload uiinventory on pastebin
- 1
-
-
For luzzo pet system
- [ File: /Src/game/char_battle.cpp ]
#1.) Search:
#ifdef NEW_PET_SYSTEM if (to->GetNewPetSystem()) { if (to->GetNewPetSystem()->IsActivePet() && to->GetNewPetSystem()->GetLevelStep() < 4) { int tmpexp = iExp * 9 / 20; iExp = iExp - tmpexp; to->GetNewPetSystem()->SetExp(tmpexp, 0); } } #endif
#2.) Replace with:
#ifdef NEW_PET_SYSTEM if (to->GetNewPetSystem()) { if (to->GetNewPetSystem()->GetLevel() < 120) { if (to->GetNewPetSystem()->IsActivePet() && to->GetNewPetSystem()->GetLevelStep() < 4) { int tmpexp = iExp * 9 / 20; iExp = iExp - tmpexp; to->GetNewPetSystem()->SetExp(tmpexp, 0); } } } #endif
- [ File: /Src/game/New_PetSystem.cpp ]
#1.) Search:
else if(type == 3) { if(itemxp->GetType() == 1 || itemxp->GetType() == 2) { SetExp(itemxp->GetShopBuyPrice() / 2, 1); ITEM_MANAGER::instance().RemoveItem(itemxp); } }
#2.) Replace with:
else if(type == 3) { if (GetLevel() < 120) { if(itemxp->GetType() == 1 || itemxp->GetType() == 2) { SetExp(itemxp->GetShopBuyPrice() / 2, 1); ITEM_MANAGER::instance().RemoveItem(itemxp); } } else { m_pkOwner->ChatPacket(CHAT_TYPE_INFO, "Your pet has a maximum level."); } }
- 2
-
Very fast loading . I do not know you but you are good. =))
- 1
-
Works perfectly, thanks.
-
With check_name function you can't use space in title and lenght must be less than 12 characters ...
TC.
in Community Support - Questions & Answers
Posted · Edited by Metin2 Dev
Core X - External 2 Internal
Check these functions in uitooltip.py : https://metin2.download/picture/r3F9504x09DVmF8K988YXgTtGTP6KMUj/.gif
Probably you have a new function in your uitooltip.py like :
def __IsNewHair4(self, itemVnum): return itemVnum > 76000 and itemVnum < 77000