Hey Hou, also es ist kein wirkliches Problem das ich habe es Funktioniert soweit einwandfrei doch Interessiert es mich was IHR für Lösungsvorschläge hättet um so etwas zu Lösen.
Player.h
Player.cpp
und aufgerufen wird das ganze dann so ->
die Structur ist mir bekannt deswegen habe ich sie selbst in eine Class geschrieben, sie befindet sich im "PlayerPtr" den ich bekomme.
Hierbei handelt es sich um eine DLL die in einen GameService Injeziert wird um Sachen zu Modifizieren bzw. Hinzuzufügen.
Player.h
Code:
#ifndef __PLAYER__H
#define __PLAYER__H
class CPlayer
{
public:
int unk_0; // 0
int unk_4; // 4
int unk_8; // 8
int unk_12; // 12
int unk_16; // 16
int unk_20; // 20
int Type; // 24
int PlayerID; // 28
char Name[14]; // 32
char Guild[14]; // 56
int Level; // 60
int Strength; // 64
int Health; // 68
int Intelligence; // 72
int Wisdom; // 76
int Agility; // 80
int MaxHealth; // 84
int MaxMana; // 88
int unk_92; // 92
int unk_96; // 96
int unk_100; // 100
int unk_104; // 104
int unk_108; // 108
int unk_112; // 112
int unk_116; // 116
int OnTargetPoint; // 120
int Evasion; // 124
int MinimalPhysicalAttack; // 128
int MaximalPhysicalAttack; // 132
int MinimalMagicanAttack; // 136
int MaximalMagicanAttack; // 140
int MinDef; // 144
int MaxDef; // 148
int Absorbtion; // 152
int ASpeed; // 156
int FireResistence; // 160
int IceResistence; // 164
int ElementResistence; // 168
int LightResisitence; // 172
int CurseResistence; // 176
int unk_180; // 180
int unk_184; // 184
int unk_188; // 188
int unk_192; // 192
int unk_196; // 196
int unk_200; // 200
int unk_204; // 204
int unk_208; // 208
int unk_212; // 212
int unk_216; // 216
int unk_220; // 220
int unk_224; // 224
int unk_228; // 228
int unk_232; // 232
int unk_236; // 236
int unk_240; // 240
int unk_244; // 244
int unk_248; // 248
int unk_252; // 252
int unk_256; // 256
int Speed; // 260
int unk_264; // 264
int unk_268; // 268
int CurrentHealth; // 272
int CurrentMana; // 276
int GState; // 280
int unk_284; // 284
int unk_288; // 288
int unk_292; // 292
int unk_296; // 296
int unk_300; // 300
int unk_304; // 304
int unk_308; // 308
int unk_312; // 312
int Map; // 316
int unk_320; // 320
int unk_324; // 324
int unk_328; // 328
int Position_X; // 332
int Position_Y; // 336
int Position_Z; // 340
int unk_344; // 344
int unk_348; // 348
int unk_352; // 352
int unk_356; // 356
int unk_360; // 360
int unk_364; // 364
int unk_368; // 368
int unk_372; // 372
int unk_376; // 376
int unk_380; // 380
int unk_384; // 384
int unk_388; // 388
int unk_392; // 392
int unk_396; // 396
int unk_400; // 400
int unk_404; // 404
int unk_408; // 408
int unk_412; // 412
int unk_416; // 416
int unk_420; // 420
int unk_424; // 424
int unk_428; // 428
int unk_432; // 432
int unk_436; // 436
int unk_440; // 440
int unk_444; // 444
int UID; // 448
int PID; // 452
int Admin; // 456
int Class; // 460
int Job; // 464
int Contribute; // 468
int Exp; // 472
int Exp_2; // 476
int unk_480; // 480
int unk_484; // 484
int unk_488; // 488
int unk_492; // 492
int unk_496; // 496
int unk_500; // 500
int unk_504; // 504
int unk_508; // 508
int unk_512; // 512
int unk_516; // 516
int unk_520; // 520
int unk_524; // 524
int unk_528; // 528
int unk_532; // 532
int GRole; // 536
int unk_540; // 540
int StatPoints; // 544
int SkillPoints; // 548
int Rage; // 552
};
class CPlayerFunktion : CPlayer
{
public:
int* ThisPtr;
int GetAdminLevel(); // Return Player Admin Level Database
int GetID(); // Return Player UID
void InsertItem(int index, int amount)
{
//Server::CItem::InsertItem(reinterpret_cast< int >(this), 21, index, 0, amount, -1);
}
void CancelBuff(int BuffIndex)
{
MainServer::CharacterCore::CancelBuff(reinterpret_cast< int >(this), BuffIndex);
}
void Buff(int BuffIndex, int LastTime, int Grade)
{
int retBuf = MainServer::CharacterCore::CreateBuff(BuffIndex, LastTime, Grade, 0);
MainServer::PlayerCore::AddBuff(reinterpret_cast< int >(this), retBuf);
}
};
#endif
Code:
#include "DllCore.h"
#include "Player.h"
int CPlayerFunktion::GetAdminLevel()
{
return this->Admin;
}
int CPlayerFunktion::GetID()
{
return this->PlayerID;
}
Code:
CPlayerFunktion *MyPlayer = (CPlayerFunktion*)PlayerPtr; if ( MyPlayer->GetAdminLevel() >= 15 ) xyz....
Hierbei handelt es sich um eine DLL die in einen GameService Injeziert wird um Sachen zu Modifizieren bzw. Hinzuzufügen.