- Katılım
- 19 May 2018
- Konular
- 54
- Mesajlar
- 409
- Online süresi
- 2ay 16g
- Reaksiyon Skoru
- 271
- Altın Konu
- 0
- Başarım Puanı
- 153
- TM Yaşı
- 7 Yıl 11 Ay 7 Gün
- MmoLira
- 790
- DevLira
- 0
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
Konularımı takip edenler bilir, fazla uzatmayı sevmiyorum direk konuya geçelim.
Not: Sistem kendi tarafımca henüz denenmemiştir. Deneyen olursa yazdığı taktirde konuya eklerim.
Not: Sistem kendi tarafımca henüz denenmemiştir. Deneyen olursa yazdığı taktirde konuya eklerim.
C++:
Uygun bir yere ekle
#define ENABLE_PARTY_MAP
C++:
Bul;
HEADER_GC_MARK_IDXLIST = 102,
Altına ekle;
#ifdef ENABLE_PARTY_MAP HEADER_GC_PARTY_POSITION_INFO = 105,
#endif
Bul;
typedef struct packet_party_add
Satır sonuna ekle;
#ifdef ENABLE_PARTY_MAP
typedef struct SPacketGCPartyPositionInfo
{
unsigned char header;
DWORD pid;
DWORD x;
DWORD y;
float rot;
} TPacketGCPartyPositionInfo;
#endif
C++:
Arat;
#include "../eterPythonLib/PythonWindowManager.h"
Altına ekle;
#ifdef ENABLE_PARTY_MAP
void CPythonMiniMap::AddPartyMember(DWORD dwPID, const char* szName)
{ TPartyMember& rkPartyMember = m_kMap_dwPID_kPartyMember[dwPID]; ZeroMemory(&rkPartyMember, sizeof(TPartyMember));
rkPartyMember.pid = dwPID; strncpy(rkPartyMember.szName, szName, sizeof(rkPartyMember.szName)); rkPartyMember.szName[CHARACTER_NAME_MAX_LEN] = '\0';
}
void CPythonMiniMap::MovePartyMember(DWORD dwPID, long lX, long lY, float fRot)
{ auto it = m_kMap_dwPID_kPartyMember.find(dwPID); if (it == m_kMap_dwPID_kPartyMember.end()) return;
if (lX < m_dwAtlasBaseX) return; if (lY < m_dwAtlasBaseY) return; if (lX > m_dwAtlasBaseX + DWORD(m_fAtlasMaxX)) return; if (lY > m_dwAtlasBaseY + DWORD(m_fAtlasMaxY)) return;
/*char szBuf[256]; snprintf(szBuf, sizeof(szBuf), "MovePartyMember %u (%s) to %ldx%ld (rot %f)", dwPID, it->second.szName, lX, lY, fRot); CPythonChat::Instance().AppendChat(CHAT_TYPE_INFO, szBuf); */
it->second.lX = lX - m_dwAtlasBaseX; it->second.lY = lY - m_dwAtlasBaseY; it->second.fRotation = fRot;
}
void CPythonMiniMap::RemovePartyMember(DWORD dwPID)
{ m_kMap_dwPID_kPartyMember.erase(dwPID);
}
void CPythonMiniMap::ClearPartyMember()
{ m_kMap_dwPID_kPartyMember.clear();
}
#endif
Arat;
bool CPythonMiniMap::LoadAtlas()
{
Satır içine ekle;
#ifdef ENABLE_PARTY_MAP
ClearPartyMember();
#endif
Arat;
m_AtlasPlayerMark.Destroy();
Altına ekle;
#ifdef ENABLE_PARTY_MAP m_AtlasPartyPlayerMark.Destroy();
#endif
Arat;
m_AtlasPlayerMark.SetImagePointer((CGraphicSubImage *) CResourceManager::Instance().GetResourcePointer(playerMarkFileName));
Altına ekle;
#ifdef ENABLE_PARTY_MAP m_AtlasPartyPlayerMark.SetImagePointer((CGraphicSubImage *)CResourceManager::Instance().GetResourcePointer(playerMarkFileName));
#endif
UpdateAtlas() İçinde arat;
__GlobalPositionToAtlasPosition(rInfo.lx+rInfo.lwidth, rInfo.ly+rInfo.lheight, &rInfo.fexRender, &rInfo.feyRender);
}
}
Altına ekle;
#ifdef ENABLE_PARTY_MAP
{
auto itor = m_kMap_dwPID_kPartyMember.begin();
for (; itor != m_kMap_dwPID_kPartyMember.end(); ++itor)
{
TPartyMember & rInfo = itor->second;
__GlobalPositionToAtlasPosition(rInfo.lX, rInfo.lY, &rInfo.fScreenX, &rInfo.fScreenY);
}
}
#endif
Arat;
if ((ELTimer_GetMSec() / 500) % 2)
m_AtlasPlayerMark.Render();
Değiştir;
#ifdef ENABLE_PARTY_MAP
if ((ELTimer_GetMSec() / 500) % 2)
{
for (auto itor = m_kMap_dwPID_kPartyMember.begin(); itor != m_kMap_dwPID_kPartyMember.end(); ++itor)
{
//TraceError("PartyPosition %ld %ld (screen %f %f)", itor->second.lX, itor->second.lY, itor->second.fScreenX, itor->second.fScreenY);
m_AtlasPartyPlayerMark.SetPosition(itor->second.fScreenX - (float)m_AtlasPartyPlayerMark.GetWidth() / 2.0f,
itor->second.fScreenY - (float)m_AtlasPartyPlayerMark.GetHeight() / 2.0f);
m_AtlasPartyPlayerMark.SetRotation(itor->second.fRotation);
m_AtlasPartyPlayerMark.Render();
}
m_AtlasPlayerMark.Render();
}
#else
if ((ELTimer_GetMSec() / 500) % 2)
m_AtlasPlayerMark.Render();
#endif
C++:
Arat;
bool GetAtlasSize(float * pfSizeX, float * pfSizeY);
Altına ekle;
#ifdef ENABLE_PARTY_MAP
void AddPartyMember(DWORD dwPID, const char* szName);
void MovePartyMember(DWORD dwPID, long lX, long lY, float fRot);
void RemovePartyMember(DWORD dwPID);
void ClearPartyMember();
#endif
Arat;
struct SObserver
{};
Satır sonuna ekle;
#ifdef ENABLE_PARTY_MAP
typedef struct
{
DWORD pid;
char szName[CHARACTER_NAME_MAX_LEN + 1];
long lX;
long lY;
float fScreenX;
float fScreenY;
float fRotation;
} TPartyMember;
#endif
Arat;
TInstanceMarkPositionVector m_WarpPositionVector;
Altına ekle;
#ifdef ENABLE_PARTY_MAP
std::map<DWORD, TPartyMember> m_kMap_dwPID_kPartyMember;
#endif
Arat;
CGraphicExpandedImageInstance m_AtlasPlayerMark;
Altına ekle;
#ifdef ENABLE_PARTY_MAP
CGraphicExpandedImageInstance m_AtlasPartyPlayerMark;
#endif
C++:
Arat;
Set(HEADER_GC_PARTY_UPDATE,
Altına ekle;
#ifdef ENABLE_PARTY_MAP
Set(HEADER_GC_PARTY_POSITION_INFO, CNetworkPacketHeaderMap::TPacketType(sizeof(TPacketGCPartyPositionInfo), STATIC_SIZE_PACKET));
#endif
C++:
Arat;
bool RecvPartyUpdate();
Altına ekle;
#ifdef ENABLE_PARTY_MAP
bool RecvPartyPositionInfo();
#endif
C++:
Arat;
case HEADER_GC_PARTY_UPDATE:
Üstüne ekle;
#ifdef ENABLE_PARTY_MAP
case HEADER_GC_PARTY_POSITION_INFO:
ret = RecvPartyPositionInfo();
break;
#endif
Arat;
bool CPythonNetworkStream::RecvPartyAdd()
{
...
return false;
Altına ekle;
#ifdef ENABLE_PARTY_MAP
if (strcmp(kPartyAddPacket.name, CPythonPlayer::Instance().GetName()))
CPythonMiniMap::Instance().AddPartyMember(kPartyAddPacket.pid, kPartyAddPacket.name);
#endif
Arat;
bool CPythonNetworkStream::RecvPartyRemove()
Üstüne ekle;
#ifdef ENABLE_PARTY_MAP
bool CPythonNetworkStream::RecvPartyPositionInfo()
{
TPacketGCPartyPositionInfo kPartyPositionInfoPacket;
if (!Recv(sizeof(kPartyPositionInfoPacket), &kPartyPositionInfoPacket))
return false;
CPythonMiniMap::Instance().MovePartyMember(kPartyPositionInfoPacket.pid, kPartyPositionInfoPacket.x,
kPartyPositionInfoPacket.y, kPartyPositionInfoPacket.rot);
return true;
}
#endif
Arat;
if (!Recv(sizeof(kPartyRemovePacket), &kPartyRemovePacket))
return false;
Altına ekle;
#ifdef ENABLE_PARTY_MAP
CPythonMiniMap::Instance().RemovePartyMember(kPartyRemovePacket.pid);
#endif
Arat;
if (CPythonPlayer::Instance().IsMainCharacterIndex(kPartyUnlinkPacket.vid))
Altına ekle;
#ifdef ENABLE_PARTY_MAP
CPythonMiniMap::Instance().ClearPartyMember();
#endif
C++:
Arat;
mining_cancel();
Altına ekle;
#ifdef ENABLE_PARTY_MAP
if (IsPC() && GetParty())
GetParty()->SendPartyPositionOneToAll(this);
#endif
C++:
Arat;
HEADER_GC_MARK_IDXLIST = 102,
Altına ekle;
#ifdef ENABLE_PARTY_MAP
HEADER_GC_PARTY_POSITION_INFO =105,
#endif
Arat;
typedef struct packet_party_update
Satır sonuna ekle;
#ifdef ENABLE_PARTY_MAP
typedef struct SPacketGCPartyPositionInfo
{
unsigned char header;
DWORD pid;
DWORD x;
DWORD y;
float rot;
} TPacketGCPartyPositionInfo;
#endif
C++:
Arat;
SendPartyInfoOneToAll(pkChr);
Altına ekle;
#ifdef ENABLE_PARTY_MAP
SendPartyPositionAllToOne(pkChr);
SendPartyPositionOneToAll(pkChr);
#endif
Arat;
void CParty::SendPartyInfoAllToOne(LPCHARACTER ch)
Üstüne ekle;
#ifdef ENABLE_PARTY_MAP
void CParty::SendPartyPositionOneToAll(LPCHARACTER ch)
{
if (!ch->GetDesc())
return;
TMemberMap::iterator it;
TPacketGCPartyPositionInfo p;
p.header = HEADER_GC_PARTY_POSITION_INFO;
p.pid = ch->GetPlayerID();
p.x = ch->GetX();
p.y = ch->GetY();
p.rot = ch->GetRotation();
for (it = m_memberMap.begin(); it != m_memberMap.end(); ++it)
{
if ((it->second.pCharacter) && (it->second.pCharacter->GetDesc()) && (it->second.pCharacter->GetMapIndex() == ch->GetMapIndex()))
it->second.pCharacter->GetDesc()->Packet(&p, sizeof(p));
}
}
void CParty::SendPartyPositionAllToOne(LPCHARACTER ch)
{
TMemberMap::iterator it;
TPacketGCPartyPositionInfo p;
for (it = m_memberMap.begin(); it != m_memberMap.end(); ++it)
{
if (it->second.pCharacter && it->second.pCharacter->GetMapIndex() == ch->GetMapIndex())
{
DWORD pid = it->first;
memset(&p, 0, sizeof(p));
p.header = HEADER_GC_PARTY_POSITION_INFO;
p.pid = pid;
p.x = it->second.pCharacter->GetX();
p.y = it->second.pCharacter->GetX();
p.rot = it->second.pCharacter->GetRotation();
ch->GetDesc()->Packet(&p, sizeof(p));
}
}
}
#endif
C++:
Arat;
void SendPartyUnlinkOneToAll(LPCHARACTER ch);
Altına ekle;
#ifdef ENABLE_PARTY_MAP
void SendPartyPositionOneToAll(LPCHARACTER ch);
void SendPartyPositionAllToOne(LPCHARACTER ch);
#endif
C++:
Uygun bir yere ekle;
#define ENABLE_PARTY_MAP
- Katılım
- 8 Eki 2017
- Konular
- 2,419
- Mesajlar
- 10,263
- Online süresi
- 4ay 30869s
- Reaksiyon Skoru
- 4,206
- Altın Konu
- 244
- Başarım Puanı
- 422
- TM Yaşı
- 8 Yıl 6 Ay 15 Gün
- MmoLira
- 7,168
- DevLira
- 15
Teşekkürler.
- Katılım
- 19 Ara 2015
- Konular
- 90
- Mesajlar
- 760
- Reaksiyon Skoru
- 240
- Altın Konu
- 0
- Başarım Puanı
- 127
- TM Yaşı
- 10 Yıl 4 Ay 4 Gün
- MmoLira
- 108
- DevLira
- 0
kardeşim bunu questten de yapabilirdin çok basit bi sistem olmuş.Bunu okuma yazmayı bilenlerde yapar
benim filesimden sökmüşsün bunu 
- Katılım
- 19 Ara 2015
- Konular
- 90
- Mesajlar
- 760
- Reaksiyon Skoru
- 240
- Altın Konu
- 0
- Başarım Puanı
- 127
- TM Yaşı
- 10 Yıl 4 Ay 4 Gün
- MmoLira
- 108
- DevLira
- 0
Bu arada ciddiye almayınkardeşim bunu questten de yapabilirdin çok basit bi sistem olmuş.Bunu okuma yazmayı bilenlerde yaparbenim filesimden sökmüşsün bunu
![]()
Adamsın Burak.
- Katılım
- 19 May 2018
- Konular
- 54
- Mesajlar
- 409
- Online süresi
- 2ay 16g
- Reaksiyon Skoru
- 271
- Altın Konu
- 0
- Başarım Puanı
- 153
- TM Yaşı
- 7 Yıl 11 Ay 7 Gün
- MmoLira
- 790
- DevLira
- 0
Quest artık vakit kaybı, source boşamı çıktıkardeşim bunu questten de yapabilirdin çok basit bi sistem olmuş.Bunu okuma yazmayı bilenlerde yaparbenim filesimden sökmüşsün bunu
![]()
Rica ederimBu arada ciddiye almayınşakasına yaptım beceremem ben bunu
Adamsın Burak.
Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)
Benzer konular
- Cevaplar
- 1
- Görüntüleme
- 85
- Cevaplar
- 0
- Görüntüleme
- 51
- Cevaplar
- 95
- Görüntüleme
- 5K
- Cevaplar
- 0
- Görüntüleme
- 81
- Cevaplar
- 0
- Görüntüleme
- 30



