|
You last visited: Today at 12:34
Advertisement
War Rock Cheat Programming Discussion
Discussion on War Rock Cheat Programming Discussion within the WarRock forum part of the Shooter category.
10/09/2016, 14:32
|
#1096
|
elite*gold: 31
Join Date: Oct 2011
Posts: 2,276
Received Thanks: 2,029
|
Quote:
Originally Posted by GHTheBoss
thanks for shuring. i have a question about ur codenz.!
why u reint_cast ? because yaznn(peter_file) use it ? 
|
no
|
|
|
12/06/2016, 09:39
|
#1097
|
elite*gold: 0
Join Date: May 2014
Posts: 58
Received Thanks: 33
|
Warrock PacketID's and their original names
Code:
12544 DO_UDP_CHAR_MOVE
12548 DO_UDP_CHAR_MOVE_A
12549 DO_UDP_CHAR_MOVE_B
12800 DO_UDP_OBJ_MOVE
12801 DO_UDP_VEHICLE_MOVE
12802 DO_UDP_VEHICLE_MOVE_A
12803 DO_UDP_VEHICLE_MOVE_B
13312 DO_UDP_BULLET
13313 DO_UDP_DUMMY_INFO
13314 DO_UDP_HACK_INFO
13824 DO_UDP_TEXT_CHAT
24593 DO_PLAYER_INFO
24832 DO_GAME_SERIAL
25088 DO_JOIN_SERV
28673 DO_SET_CHANNEL
25344 DO_EVENT_MESSAGE
25600 DO_KEEP_ALIVE
28928 DO_USER_LIST
28960 DO_USER_LIST_EX
28944 DO_USER_LIST_MODIFY
29184 DO_ROOM_LIST
29200 DO_ROOM_INFO_CHANGE
29440 DO_CREATE_ROOM
29456 DO_JOIN_ROOM
29472 DO_QUICK_JOIN
29536 DO_CLAN_QUICK_JOIN
29488 DO_GUEST_JOIN
29504 DO_EXIT_ROOM
29505 DO_EXPEL_PLAYER
29520 DO_INVIT_ROOM
29696 DO_CHAT_MSG
30000 DO_GAME_PROTOCOL
29952 DO_GAME_USER_LIST
29953 DO_GAME_GUEST_LIST
29968 DO_GDATA_INFO
30001 DO_GAME_LAUNCH_COUNT
30002 DO_ROOM_DESTROY_CLOCK
30016 DO_GAME_CLOCK
30017 DO_GAME_UPDATE_DATA
30032 DO_GAME_SCORE
30048 DO_GAME_RESULT
29984 DO_GAME_IN_BOMB
29985 DO_GAME_IN_MISSION
30208 DO_ITEM_CONTROL
30224 DO_ITEM_DESTROY
30209 DO_CUSTOM_CONTROL
30225 DO_CUSTOMITEM_DESTROY
29971 DO_CITEM_CHANGE
31079 DO_CUSTOM_BOUNS
30230 DO_CUSTOM_CSHOP
30464 DO_TMARKET_PROTOCOL
29970 DO_BITEM_CHANGE
31490 DO_AI_GOAL
31492 DO_KILL_STREAK
31495 DO_GET_KILL_STREAK
31494 DO_AI_WAVE_NOTIFY
13441 DO_AI_DESTROY_BONUS
13442 DO_AI_DESTROY_TIME
31094 DO_AI_MASK_EVENT
29776 DO_MESSENGER_CTRL
30992 DO_EVENT_COUPON
30997 DO_EVENT_ALPHABET
31076 DO_CS_BONUS_EVENT
31008 DO_PLAYER_PROMOTION
31024 DO_PLAYER_OVER_BIGINNER
31072 DO_TEST_ALPHABET
31077 DO_SIEGEWAR_EVENT
31080 DO_SNOWBALL_EVENT
31081 DO_SEMESTER_BONUS
31089 DO_INGAME_BONUS
31090 DO_CHALLENGE_TIME
31091 DO_CHARACTER_BONUS
31092 DO_MAYEVENT_BONUS
31093 DO_MAYEVENT_ITEM
31104 DO_HAMMER_COUNT
31105 DO_HAMMER_ITEM
30720 DO_NCASH_PROCESS
30976 DO_SBI_CHANGE
30772 DO_EVENT_COUNTMISSION
30977 DO_SBC_CHANGE
30768 DO_GET_AMPEDCASH
30769 DO_POPUP_TOPUP
30241 DO_BOAST_ITEM
31264 DO_AHNHS_KEEPALIVE
31265 DO_AHNHS_DROP
22040 DO_CS_KEEPALIVE
30774 DO_SQUEAKYHAMMER_EVENT
30998 DO_EVENT_PUZZLE
31057 DO_TEST_PUZZLE_EVENT
31120 DO_EVENT_WATERBALLOON
13431 DO_WAVE_STATE
13432 DO_AI_SPAWN
13433 DO_AI_CHANGE_CONTROLLER
13440 DO_SPAWN_SKILL_ITEM_IN_SURVIVAL
30775 DO_PEAKTIME_EVENT
13443 DO_CHARIOT_KILL
31109 DO_REWARD_EVENT
30256 DO_LUCKYSHOT_UPDATE
30257 DO_LUCKYSHOT_INFO
30258 DO_LUCKYSHOT_PROCESS
30776 DO_DEFENCE_EVENT
30777 DO_ONGAMENET_EVENT
30784 DO_THANKSDINAR_EVENT
25601 DO_GET_SERVER_TIME
30999 DO_EVENT_KILL_COUNT
13444 DO_EVENT_SAKURA_KILL_COUNT
Found by me
Credits to: AmazingTurtle
|
|
|
12/06/2016, 15:43
|
#1098
|
elite*gold: 32
Join Date: Dec 2009
Posts: 937
Received Thanks: 1,307
|
Quote:
Originally Posted by znoeen
Warrock PacketID's and their original names
Code:
12544 DO_UDP_CHAR_MOVE
12548 DO_UDP_CHAR_MOVE_A
12549 DO_UDP_CHAR_MOVE_B
12800 DO_UDP_OBJ_MOVE
12801 DO_UDP_VEHICLE_MOVE
12802 DO_UDP_VEHICLE_MOVE_A
12803 DO_UDP_VEHICLE_MOVE_B
13312 DO_UDP_BULLET
13313 DO_UDP_DUMMY_INFO
13314 DO_UDP_HACK_INFO
13824 DO_UDP_TEXT_CHAT
24593 DO_PLAYER_INFO
24832 DO_GAME_SERIAL
25088 DO_JOIN_SERV
28673 DO_SET_CHANNEL
25344 DO_EVENT_MESSAGE
25600 DO_KEEP_ALIVE
28928 DO_USER_LIST
28960 DO_USER_LIST_EX
28944 DO_USER_LIST_MODIFY
29184 DO_ROOM_LIST
29200 DO_ROOM_INFO_CHANGE
29440 DO_CREATE_ROOM
29456 DO_JOIN_ROOM
29472 DO_QUICK_JOIN
29536 DO_CLAN_QUICK_JOIN
29488 DO_GUEST_JOIN
29504 DO_EXIT_ROOM
29505 DO_EXPEL_PLAYER
29520 DO_INVIT_ROOM
29696 DO_CHAT_MSG
30000 DO_GAME_PROTOCOL
29952 DO_GAME_USER_LIST
29953 DO_GAME_GUEST_LIST
29968 DO_GDATA_INFO
30001 DO_GAME_LAUNCH_COUNT
30002 DO_ROOM_DESTROY_CLOCK
30016 DO_GAME_CLOCK
30017 DO_GAME_UPDATE_DATA
30032 DO_GAME_SCORE
30048 DO_GAME_RESULT
29984 DO_GAME_IN_BOMB
29985 DO_GAME_IN_MISSION
30208 DO_ITEM_CONTROL
30224 DO_ITEM_DESTROY
30209 DO_CUSTOM_CONTROL
30225 DO_CUSTOMITEM_DESTROY
29971 DO_CITEM_CHANGE
31079 DO_CUSTOM_BOUNS
30230 DO_CUSTOM_CSHOP
30464 DO_TMARKET_PROTOCOL
29970 DO_BITEM_CHANGE
31490 DO_AI_GOAL
31492 DO_KILL_STREAK
31495 DO_GET_KILL_STREAK
31494 DO_AI_WAVE_NOTIFY
13441 DO_AI_DESTROY_BONUS
13442 DO_AI_DESTROY_TIME
31094 DO_AI_MASK_EVENT
29776 DO_MESSENGER_CTRL
30992 DO_EVENT_COUPON
30997 DO_EVENT_ALPHABET
31076 DO_CS_BONUS_EVENT
31008 DO_PLAYER_PROMOTION
31024 DO_PLAYER_OVER_BIGINNER
31072 DO_TEST_ALPHABET
31077 DO_SIEGEWAR_EVENT
31080 DO_SNOWBALL_EVENT
31081 DO_SEMESTER_BONUS
31089 DO_INGAME_BONUS
31090 DO_CHALLENGE_TIME
31091 DO_CHARACTER_BONUS
31092 DO_MAYEVENT_BONUS
31093 DO_MAYEVENT_ITEM
31104 DO_HAMMER_COUNT
31105 DO_HAMMER_ITEM
30720 DO_NCASH_PROCESS
30976 DO_SBI_CHANGE
30772 DO_EVENT_COUNTMISSION
30977 DO_SBC_CHANGE
30768 DO_GET_AMPEDCASH
30769 DO_POPUP_TOPUP
30241 DO_BOAST_ITEM
31264 DO_AHNHS_KEEPALIVE
31265 DO_AHNHS_DROP
22040 DO_CS_KEEPALIVE
30774 DO_SQUEAKYHAMMER_EVENT
30998 DO_EVENT_PUZZLE
31057 DO_TEST_PUZZLE_EVENT
31120 DO_EVENT_WATERBALLOON
13431 DO_WAVE_STATE
13432 DO_AI_SPAWN
13433 DO_AI_CHANGE_CONTROLLER
13440 DO_SPAWN_SKILL_ITEM_IN_SURVIVAL
30775 DO_PEAKTIME_EVENT
13443 DO_CHARIOT_KILL
31109 DO_REWARD_EVENT
30256 DO_LUCKYSHOT_UPDATE
30257 DO_LUCKYSHOT_INFO
30258 DO_LUCKYSHOT_PROCESS
30776 DO_DEFENCE_EVENT
30777 DO_ONGAMENET_EVENT
30784 DO_THANKSDINAR_EVENT
25601 DO_GET_SERVER_TIME
30999 DO_EVENT_KILL_COUNT
13444 DO_EVENT_SAKURA_KILL_COUNT
Found by me
Credits to: AmazingTurtle
|
AmazingTurtle released them a year ago or so:
|
|
|
12/18/2016, 19:30
|
#1099
|
elite*gold: 0
Join Date: May 2014
Posts: 58
Received Thanks: 33
|
Hooking SendMessage function shows warrock log messages
Code:
typedef LRESULT(WINAPI * pSendMessage)(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
pSendMessage oSendMessage;
void detourFunc()
{
oSendMessage = (pSendMessage)Detour((DWORD)SendMessage, (DWORD)mySendMessage, 5);
}
LRESULT __stdcall mySendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
printf("[Debug Log] %s\n", wParam);
return oSendMessage(hWnd, Msg, wParam, lParam);
}
|
|
|
12/31/2016, 02:32
|
#1100
|
elite*gold: 0
Join Date: Apr 2010
Posts: 726
Received Thanks: 1,128
|
Code:
#define AutoAmmo_1 0x00502C47
#define AutoAmmo_2 0x00502C87
#define AutoMedic_1 0x00502D4E
#define AutoMedic_2 0x00502F92
#define AutoRepair_1 0x0042CBC8
#define AutoRepair_2 0x0042CBF7
#define AutoRepair_3 0x0042CC97
#define AlwaysCross 0x005A30C3
#define NoReload 0x0051871E
#define NoRestriction 0x004F1CCA
#define QuickPlant 0x0050E93C
#define QuickDefuse 0x0050A346
#define WalkTrueWalls 0x007AFA95
#define ShootTrueWalls 0x006417CB
#define ShootTrueWalls_2 (ShootTrueWalls+0x6)
#define NoDelay 0x005183DF
#define OFS_NoDelay 0x000103F2
#define Bullets 0x0050C7E2
#define OPK_X 0x004085CA
#define OPK_Y 0x004085D3
#define OPK_Z 0x004085DF
#define UnlimitedOxygen 0x00504C43
#define Prone 0x004F2FB0
#define DamageAs 0x0050C6EF
#define RadarGPS 0x005CF684
#define RadarGPSFFA 0x005CF6F3
#define AntiFlash 0x005DE32A
#define AntiM14 0x005DE256
#define VehicleInvisible 0x00430E01
#define VehicleJump 0x0046586E
#define VehicleJump_2 (VehicleJump+0x8)
#define VehicleOverHeat 0x00763753
#define BoneShot 0x00451D6B
#define Stamina1 0x0045F216
#define Stamina2 0x00401A06
#define Stamina3 0x005030FC
#define AutoShot 0x004F1CBF
#define FastReloadPX 0x00518A14
#define FastReloadPX_2 0x005CA694
#define Artillery1 0x005093ED
#define Artillery2 0x005C4C61
#define Artillery3 0x005C4CE7
#define Artillery4 0x005C4D7B
#define Artillery5 0x005C4AC2
#define Artillery6 0x005A3780
#define Artillery7 0x005C4C61
#define Artillery8 0x005C4DF8
#define GameNotice 0x00412CDC
#define GameText 0x00520867
#define SpamBot 0x0051B495
Was bored today so updated few old ASM addresses, HF.
Credits : UnknownPK, R3d_L!n3, GHTheBoss and me obviously
|
|
|
12/31/2016, 08:02
|
#1101
|
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
|
Inb4 they start detecting .text modifications again.
|
|
|
01/01/2017, 15:23
|
#1102
|
elite*gold: 30
Join Date: May 2013
Posts: 1,546
Received Thanks: 2,596
|
Quote:
Originally Posted by n4n033
Code:
#define AutoAmmo_1 0x00502C47
#define AutoAmmo_2 0x00502C87
#define AutoMedic_1 0x00502D4E
#define AutoMedic_2 0x00502F92
#define AutoRepair_1 0x0042CBC8
#define AutoRepair_2 0x0042CBF7
#define AutoRepair_3 0x0042CC97
#define AlwaysCross 0x005A30C3
#define NoReload 0x0051871E
#define NoRestriction 0x004F1CCA
#define QuickPlant 0x0050E93C
#define QuickDefuse 0x0050A346
#define WalkTrueWalls 0x007AFA95
#define ShootTrueWalls 0x006417CB
#define ShootTrueWalls_2 (ShootTrueWalls+0x6)
#define NoDelay 0x005183DF
#define OFS_NoDelay 0x000103F2
#define Bullets 0x0050C7E2
#define OPK_X 0x004085CA
#define OPK_Y 0x004085D3
#define OPK_Z 0x004085DF
#define UnlimitedOxygen 0x00504C43
#define Prone 0x004F2FB0
#define DamageAs 0x0050C6EF
#define RadarGPS 0x005CF684
#define RadarGPSFFA 0x005CF6F3
#define AntiFlash 0x005DE32A
#define AntiM14 0x005DE256
#define VehicleInvisible 0x00430E01
#define VehicleJump 0x0046586E
#define VehicleJump_2 (VehicleJump+0x8)
#define VehicleOverHeat 0x00763753
#define BoneShot 0x00451D6B
#define Stamina1 0x0045F216
#define Stamina2 0x00401A06
#define Stamina3 0x005030FC
#define AutoShot 0x004F1CBF
#define FastReloadPX 0x00518A14
#define FastReloadPX_2 0x005CA694
#define Artillery1 0x005093ED
#define Artillery2 0x005C4C61
#define Artillery3 0x005C4CE7
#define Artillery4 0x005C4D7B
#define Artillery5 0x005C4AC2
#define Artillery6 0x005A3780
#define Artillery7 0x005C4C61
#define Artillery8 0x005C4DF8
#define GameNotice 0x00412CDC
#define GameText 0x00520867
#define SpamBot 0x0051B495
Was bored today so updated few old ASM addresses, HF.
Credits : UnknownPK, R3d_L!n3, GHTheBoss and me obviously
|
thanks does still same function are working ?
|
|
|
01/01/2017, 17:22
|
#1103
|
elite*gold: 0
Join Date: Apr 2010
Posts: 726
Received Thanks: 1,128
|
Quote:
Originally Posted by GHTheBoss
thanks does still same function are working ?
|
Didn't tried it all for now, only thing I'm sure is working is Artillery
|
|
|
01/06/2017, 18:00
|
#1104
|
elite*gold: 0
Join Date: May 2014
Posts: 58
Received Thanks: 33
|
Code:
class cPlayer
{
public:
char _0x0000[66716];
BYTE isAI; //0x1049C
char _0x1049D[3];
int aiControllerSession; //0x104A0
BYTE isDeadAI; //0x104A4
};
void demo()
{
cPlayer * player = GetPlayerByID(<zombie_id>);
player->aiControllerSession = 4;
}
aiControllerSession is the target id of the zombie (who he follows). Changing this value makes the zombies trippp. They are only turning rounds xD (or following teammember)
Setting isDeadAI to true. Causes to completly disable the zombie (doesn't move or attack you).
Credits:
Znoen
Mae
Alliance
Armour
|
|
|
01/06/2017, 21:49
|
#1105
|
elite*gold: 26
Join Date: Nov 2013
Posts: 410
Received Thanks: 249
|
Quote:
Originally Posted by znoeen
Code:
class cPlayer
{
public:
char _0x0000[66716];
BYTE isAI; //0x1049C
char _0x1049D[3];
int aiControllerSession; //0x104A0
BYTE isDeadAI; //0x104A4
};
|
Code:
void demo()
{
cPlayer * player = GetPlayerByID(<zombie_id>);
player->aiControllerSession = 4;
}
Cool! I will add this in my VIP
|
|
|
01/06/2017, 22:44
|
#1106
|
elite*gold: 30
Join Date: May 2013
Posts: 1,546
Received Thanks: 2,596
|
Quote:
Originally Posted by znoeen
Code:
class cPlayer
{
public:
char _0x0000[66716];
BYTE isAI; //0x1049C
char _0x1049D[3];
int aiControllerSession; //0x104A0
BYTE isDeadAI; //0x104A4
};
void demo()
{
cPlayer * player = GetPlayerByID(<zombie_id>);
player->aiControllerSession = 4;
}
aiControllerSession is the target id of the zombie (who he follows). Changing this value makes the zombies trippp. They are only turning rounds xD (or following teammember)
Setting isDeadAI to true. Causes to completly disable the zombie (doesn't move or attack you).
Credits:
Znoen
Mae
Alliance
Armour
|
ahaha ******* funny ahah   gona add it on my VIP Cheats lmao
|
|
|
01/07/2017, 12:03
|
#1107
|
elite*gold: 0
Join Date: May 2014
Posts: 58
Received Thanks: 33
|
Code:
class cPlayer
{
public:
char _0xrandom0[66134];
WORD PrevWeapon; //0x10256
char _0xrandom1[244]
BYTE isAI; //0x1049C
char _0xrandom2[3];
int aiControllerSession; //0x104A0
BYTE isDeadAI; //0x104A4
};
Code:
void demo()
{
/*Make zombies like sheep*/
cPlayer * player = GetPlayerByID(<zombie_id>);
player-PrevWeapon = 1000;
}
Found a new value that is very usefull for zombies. Its the PrevWeapon value. It stores the weaponid of the player. For zombie the weaponid is checked for its special atack mode (Close, Dash, Fire). If you change this to a non existing weaponid the zombie is not able to attack you. and also walks backwards  . Well have fun with this
Credits:
Znoen
|
|
|
01/08/2017, 01:18
|
#1108
|
elite*gold: 420
Join Date: Jan 2012
Posts: 1,082
Received Thanks: 1,000
|
Code:
namespace detail {
struct safe_value_value {
unsigned long value;
unsigned long key;
};
template <typename T, std::size_t Size = sizeof(T), bool = false>
struct safe_value_data {};
template <typename T, std::size_t Size>
struct safe_value_data<T, Size, true> {
std::array<safe_value_value, Size> data;
};
template <typename T, std::size_t Size>
struct safe_value_data<T, Size> : safe_value_data<T, Size / 4, true> {
static_assert(Size % 4 == 0, "Size needs to be a multiple of four.");
};
template <typename T>
struct safe_value_data<T, 1> : safe_value_data<T, 1, true> {};
template <typename T>
struct safe_value_data<T, 2> : safe_value_data<T, 1, true> {};
} // detail
#define IMPL_OPERATORS1(C,T) C<T> &operator=(const T &value) { set(value); return *this; } \
operator const T() const { return get(); }
#define IMPL_OPERATORS2(C,T) C<T> &operator+=(const T &value) { T tmp(*this); *this = tmp += value; return *this; } \
C<T> &operator-=(const T &value) { T tmp(*this); *this = tmp -= value; return *this; } \
C<T> &operator*=(const T &value) { T tmp(*this); *this = tmp *= value; return *this; } \
C<T> &operator/=(const T &value) { T tmp(*this); *this = tmp /= value; return *this; } \
C<T> operator+(const T &value) { C<T> tmp(*this); *this = tmp + value; return *this; } \
C<T> operator-(const T &value) { C<T> tmp(*this); *this = tmp - value; return *this; } \
C<T> operator*(const T &value) { C<T> tmp(*this); *this = tmp * value; return *this; } \
C<T> operator/(const T &value) { C<T> tmp(*this); *this = tmp / value; return *this; }
template <typename T>
class safe_value;
template <typename T>
class safe_value : detail::safe_value_data<T>
{
public:
safe_value() { set(T{}) };
safe_value(safe_value<T> const &other) : data(other.data) {}
safe_value(T const &value) { set(value); }
void set(T const &value)
{
unsigned long const *value32 = reinterpret_cast<unsigned long const *>(&value);
for (auto &pair : data)
pair.value = pair.key ^ *value32++;
}
const T get() const
{
T result;
unsigned long *result32 = reinterpret_cast<unsigned long *>(&result);
for (auto const &pair : data)
*result32++ = pair.key ^ pair.value;
return result;
}
IMPL_OPERATORS1(safe_value, T);
IMPL_OPERATORS2(safe_value, T);
};
template <>
class safe_value<bool> : detail::safe_value_data<bool>
{
public:
safe_value() : safe_value(false) {}
safe_value(safe_value<bool> const &other) : safe_value_data(other) {}
safe_value(bool const &value) { set(value); }
void set(bool const &value)
{
data[0].value = value ? data[0].key / 2 : data[0].key;
}
const bool get() const
{
return data[0].value == data[0].key / 2;
}
IMPL_OPERATORS1(safe_value, bool);
};
#undef IMPL_OPERATORS1
#undef IMPL_OPERATORS2
A little something to make your life a bit easier
|
|
|
01/08/2017, 11:55
|
#1109
|
elite*gold: 0
Join Date: May 2014
Posts: 58
Received Thanks: 33
|
This is a new completly stable method of OPK. It disables the SetControlPosition(CCharacterHandlePack *this, Vector3 Position) function. This causes the player to completly freeze. However it will not stay on the 0,0,0 position. Because other functions handle the spawn of the player. This will set the position of the player again.
Making this a fully working OPK i advice you to once per second set the position of the player. No need to put it in a CPU breaking loop again. Because the players won't walk away
Code:
#define ADR_ProcessCharMove_PH 0x4F9A37
#define ADR_ProcessCharMove_EU 0x4F9968
Code:
void WriteAsm(void *adress, void *bytes, int size)
{
DWORD dwProtect;
VirtualProtect((void*)adress, size, PAGE_EXECUTE_READWRITE, &dwProtect);
memcpy((void *)adress, (PBYTE)bytes, size);
VirtualProtect((void*)adress, size, dwProtect, &dwProtect);
}
Code:
void PatchPlayerMovement()
{
#ifdef PH
WriteAsm((VOID *)(ADR_ProcessCharMove_PH), (PBYTE)"\xC2\x0C\x00", 3);
#endif
#ifdef EU
WriteAsm((VOID *)(ADR_ProcessCharMove_EU), (PBYTE)"\xC2\x0C\x00", 3);
#endif
}
Code:
void RestorePlayerMovement()
{
#ifdef PH
WriteAsm((VOID *)(ADR_ProcessCharMove_PH), (PBYTE)"\x55\x8B\xEC", 3);
#endif
#ifdef EU
WriteAsm((VOID *)(ADR_ProcessCharMove_EU), (PBYTE)"\x55\x8B\xEC", 3);
#endif
}
|
|
|
01/08/2017, 12:34
|
#1110
|
elite*gold: 30
Join Date: May 2013
Posts: 1,546
Received Thanks: 2,596
|
Quote:
Originally Posted by Peter File
Code:
namespace detail {
struct safe_value_value {
unsigned long value;
unsigned long key;
};
template <typename T, std::size_t Size = sizeof(T), bool = false>
struct safe_value_data {};
template <typename T, std::size_t Size>
struct safe_value_data<T, Size, true> {
std::array<safe_value_value, Size> data;
};
template <typename T, std::size_t Size>
struct safe_value_data<T, Size> : safe_value_data<T, Size / 4, true> {
static_assert(Size % 4 == 0, "Size needs to be a multiple of four.");
};
template <typename T>
struct safe_value_data<T, 1> : safe_value_data<T, 1, true> {};
template <typename T>
struct safe_value_data<T, 2> : safe_value_data<T, 1, true> {};
} // detail
#define IMPL_OPERATORS1(C,T) C<T> &operator=(const T &value) { set(value); return *this; } \
operator const T() const { return get(); }
#define IMPL_OPERATORS2(C,T) C<T> &operator+=(const T &value) { T tmp(*this); *this = tmp += value; return *this; } \
C<T> &operator-=(const T &value) { T tmp(*this); *this = tmp -= value; return *this; } \
C<T> &operator*=(const T &value) { T tmp(*this); *this = tmp *= value; return *this; } \
C<T> &operator/=(const T &value) { T tmp(*this); *this = tmp /= value; return *this; } \
C<T> operator+(const T &value) { C<T> tmp(*this); *this = tmp + value; return *this; } \
C<T> operator-(const T &value) { C<T> tmp(*this); *this = tmp - value; return *this; } \
C<T> operator*(const T &value) { C<T> tmp(*this); *this = tmp * value; return *this; } \
C<T> operator/(const T &value) { C<T> tmp(*this); *this = tmp / value; return *this; }
template <typename T>
class safe_value;
template <typename T>
class safe_value : detail::safe_value_data<T>
{
public:
safe_value() { set(T{}) };
safe_value(safe_value<T> const &other) : data(other.data) {}
safe_value(T const &value) { set(value); }
void set(T const &value)
{
unsigned long const *value32 = reinterpret_cast<unsigned long const *>(&value);
for (auto &pair : data)
pair.value = pair.key ^ *value32++;
}
const T get() const
{
T result;
unsigned long *result32 = reinterpret_cast<unsigned long *>(&result);
for (auto const &pair : data)
*result32++ = pair.key ^ pair.value;
return result;
}
IMPL_OPERATORS1(safe_value, T);
IMPL_OPERATORS2(safe_value, T);
};
template <>
class safe_value<bool> : detail::safe_value_data<bool>
{
public:
safe_value() : safe_value(false) {}
safe_value(safe_value<bool> const &other) : safe_value_data(other) {}
safe_value(bool const &value) { set(value); }
void set(bool const &value)
{
data[0].value = value ? data[0].key / 2 : data[0].key;
}
const bool get() const
{
return data[0].value == data[0].key / 2;
}
IMPL_OPERATORS1(safe_value, bool);
};
#undef IMPL_OPERATORS1
#undef IMPL_OPERATORS2
A little something to make your life a bit easier 
|
i think less people, understand what does it is.
but anyway thanks for sharing.
|
|
|
Similar Threads
|
[Farmville2]Rock&Wood Cheat.
10/28/2012 - Facebook - 0 Replies
Credits:
http://www.pwnthis.net/2012/10/farmville-2-cheats -vanishing-rocks.html
1. Gehe auf deine Farm.
2. Öffne Cheat Engine.
3. Öffne den flash plugin bei Firefox.
4. Ändere den Value type auf Text.
5. Scanne: obstruction_rock.
6. Wähle alle Ergebnisse aus und nutzen dann den roten Pfeil.
|
Can you help me in Cheat Engine for the rock paper scissor please ?
08/04/2011 - 4Story - 4 Replies
With Cheat Engine 6 I tried to modifie the number of victories:
I win one time, I put 1 and do first scan
I win twice, I put 2 and I do next scen
I win three times and I put 3 and next scan and I found the adress number:
07482200
I modifie for put 15 and I try to leave and he didn't work I repaet operations and I try to continue but didn't work either =(
Do you know how make that ?
|
help war rock cheat
04/14/2008 - Say Hello - 3 Replies
can some 1 give me some cheat for war rock thx.
[email protected]:confused:
|
All times are GMT +1. The time now is 12:35.
|
|