-
Activity
-
5
-
0
Looking for Someone to create the queries etc for armors and weapons
Hello I am looking for someone who will create the queries from the ground up and item proto etc everything required to implement a few armor and weapon sets for my server such as these - https://imgur.com/a/sUwencb Paid service obviously Contact me on discord for more info - whait#7061 -
13
Official Private Shop Search
From where get this Cheque-System that are used in this system -
944
[40250] Reference Serverfile + Client + Src [15 Available Languages]
Hi tmp4, I was trying to increase the pull range by editing FuncAggregateMonster. But it seems that there is something other than the DISTANCE_APPROX check limiting the max range. struct FuncAggregateMonster { LPCHARACTER m_ch; FuncAggregateMonster(LPCHARACTER ch) { m_ch = ch; } void operator()(LPENTITY ent) { if (ent->IsType(ENTITY_CHARACTER)) { LPCHARACTER ch = (LPCHARACTER) ent; if (ch->IsPC()) return; if (!ch->IsMonster()) return; if (ch->GetVictim()) return; if (DISTANCE_APPROX(ch->GetX() - m_ch->GetX(), ch->GetY() - m_ch->GetY()) < 20000) if (ch->CanBeginFight()) { ch->AddAffect(AFFECT_MOV_SPEED, POINT_MOV_SPEED, 700, AFF_MOV_SPEED_POTION, 500, 0, true); ch->BeginFight(m_ch); } } } }; I added a movementspeed Affect and got very weird behaviour. The movementspeed bonus is applied to mobs way further than the "standard" pull range, yet no mobs outside of the standard pull range get aggressive towards my character. Do you know what's causing this? EDIT: Oh and I am posting this here, because the same code snipped works on other serverfiles. -
79
GUI Teleport System
Working With press button, but how can i add under indevtory button? -
0
inventory slot marking system cant compile
Hey guys! As i have mentioned in the title i have problems with compiling client src for inventory slot marking system. Server src is fine but in client src i get errorr that arg4 is not member of class exchange_packet... where can i add the member ? -
8
Inventory Bug
syserr is empty.. refreshbagslot I have it like this def SetInventoryPage(self, page): self.inventoryTab[self.inventoryPageIndex].SetUp() self.inventoryPageIndex = page self.inventoryTab[self.inventoryPageIndex].Down() self.RefreshBagSlotWindow() and def RefreshBagSlotWindow(self): getItemVNum=player.GetItemIndex getItemCount=player.GetItemCount setItemVNum=self.wndItem.SetItemSlot for i in xrange(self.wndItem.GetSlotCount()): self.wndItem.DeactivateSlot(i) for i in xrange(player.INVENTORY_PAGE_SIZE): slotNumber = self.__InventoryLocalSlotPosToGlobalSlotPos(i) itemCount = getItemCount(slotNumber) # itemCount == 0이면 소켓을 비운다. if 0 == itemCount: self.wndItem.ClearSlot(i) continue elif 1 == itemCount: itemCount = 0 itemVnum = getItemVNum(slotNumber) setItemVNum(i, itemVnum, itemCount) ## 자동물약 (HP: #72723 ~ #72726, SP: #72727 ~ #72730) 특수처리 - 아이템인데도 슬롯에 활성화/비활성화 표시를 위한 작업임 - [hyo] if constInfo.IS_AUTO_POTION(itemVnum): # metinSocket - [0] : 활성화 여부, [1] : 사용한 양, [2] : 최대 용량 metinSocket = [player.GetItemMetinSocket(slotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)] if slotNumber >= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex: slotNumber -= player.INVENTORY_PAGE_SIZE*self.inventoryPageIndex isActivated = 0 != metinSocket[0] if isActivated: self.wndItem.ActivateSlot(slotNumber) potionType = 0; if constInfo.IS_AUTO_POTION_HP(itemVnum): potionType = player.AUTO_POTION_TYPE_HP elif constInfo.IS_AUTO_POTION_SP(itemVnum): potionType = player.AUTO_POTION_TYPE_SP usedAmount = int(metinSocket[1]) totalAmount = int(metinSocket[2]) player.SetAutoPotionInfo(potionType, isActivated, (totalAmount - usedAmount), totalAmount, self.__InventoryLocalSlotPosToGlobalSlotPos(i)) else: self.wndItem.DeactivateSlot(slotNumber) if app.WJ_ENABLE_TRADABLE_ICON: self.RefreshMarkSlots(i) self.__HighlightSlot_Refresh() self.wndItem.RefreshSlot() if self.wndBelt: self.wndBelt.RefreshSlot() if app.WJ_ENABLE_TRADABLE_ICON: map(lambda wnd:wnd.RefreshLockedSlot(), self.bindWnds) def RefreshEquipSlotWindow(self): getItemVNum=player.GetItemIndex getItemCount=player.GetItemCount setItemVNum=self.wndEquip.SetItemSlot for i in xrange(player.EQUIPMENT_PAGE_COUNT): slotNumber = player.EQUIPMENT_SLOT_START + i itemCount = getItemCount(slotNumber) if itemCount <= 1: itemCount = 0 setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount) if app.ENABLE_NEW_EQUIPMENT_SYSTEM: for i in xrange(player.NEW_EQUIPMENT_SLOT_COUNT): slotNumber = player.NEW_EQUIPMENT_SLOT_START + i itemCount = getItemCount(slotNumber) if itemCount <= 1: itemCount = 0 setItemVNum(slotNumber, getItemVNum(slotNumber), itemCount) print "ENABLE_NEW_EQUIPMENT_SYSTEM", slotNumber, itemCount, getItemVNum(slotNumber) self.wndEquip.RefreshSlot() if self.wndCostume: self.wndCostume.RefreshCostumeSlot() def RefreshItemSlot(self): self.RefreshBagSlotWindow() self.RefreshEquipSlotWindow() -
63
Metin2 Dev - Changelogs
Duplicate posts (warns, topics, PM's...) are resolved 2FA re-enabled IP Board Upgrade IPS 4.7.0 Beta 10 (Dev Build)- 2
-
-
-
9
-
-
Recently Browsing
- No registered users viewing this page.
Question
cuceritorul28 2
Hello, i have a little problem with channel status, the problem comes from desc_client.cpp where, the function void CLIENT_DESC::UpdateChannelStatus(DWORD t, bool fForce) is not working properly. The function defines 4 states for the server, OFFLINE, NORM, BUSY and FULL. I parsed the variables into a syslog from the function and i realised that the iTotal it's always 0, so the server works in only 2 states, OFFLINE and NORM. Can anybody help me to fix this problem? I want to implement the count of players of the servers into the login interface. Another test i've made is with the command /who ingame, command which count properly the numbler of players.
Here is the function:
void CLIENT_DESC::UpdateChannelStatus(DWORD t, bool fForce)
{
enum {
// CHANNELSTATUS_UPDATE_PERIOD = 5*60*1000, // 5분마다
CHANNELSTATUS_UPDATE_PERIOD = 1*1000, // 5분마다
};
DWORD tLCSUP = m_tLastChannelStatusUpdateTime+CHANNELSTATUS_UPDATE_PERIOD;
if (fForce || tLCSUP < t) {
int iTotal;
int * paiEmpireUserCount;
int iLocal;
DESC_MANAGER::instance().GetUserCount(iTotal, &paiEmpireUserCount, iLocal);
TChannelStatus channelStatus;
channelStatus.nPort = mother_port;
#if defined(__CHANNEL_STATUS_UPDATE__)
channelStatus.player_count = iTotal;
#endif
if (g_bNoMoreClient) channelStatus.bStatus = 0;
else channelStatus.bStatus = iTotal > g_iFullUserCount ? 3 : iTotal > g_iBusyUserCount ? 2 : 1;
sys_log(0, "Total %d , FullUserCount %d , BusyUserCount %d", iTotal, g_iFullUserCount, g_iBusyUserCount);
DBPacket(HEADER_GD_UPDATE_CHANNELSTATUS, 0, &channelStatus, sizeof(channelStatus));
m_tLastChannelStatusUpdateTime = t;
}
}
Link to comment
Share on other sites
Top Posters For This Question
2
1
1
Popular Days
Dec 13
2
Dec 14
2
Top Posters For This Question
cuceritorul28 2 posts
ondry 1 post
Catalin2o14 1 post
Popular Days
Dec 13 2020
2 posts
Dec 14 2020
2 posts
3 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now