Продам прострел стен Warface 10к руб!
-
Автор темы
- #1
2.6. Запрещено попрошайничество реакций, денег и так далее. К этому пункту относятся завуалированные сообщения, например: «Не откажусь от реакций», «Буду рад благодарности за проделанную работу» и т.п.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем хай, вот и настало время слить - этот ужас, всем. Так как я сливал его в поддержку - было одобрение на фикс, дабы я нашел новый способ магнита и многое другое. Но получилось так, что обещания разработчиков заставило нас долго ждать, и неумелые читоделы как Миша Мирон - тот самый Icod, украл код с незащищённой dll, и я даже рад, и это оправдало, то что он и украл код прострела у ShkolovHack, но не суть ближе к делу.
Так вот для создания Магнита, Взлета и магнита определённых Entity нам нужна функция:
1) RMI:CPlayer:SvHoldEntityMessage
2)Она получает\передает 3 аргумента которые нам нужны, а так их там поболее. Я говорю про те, которые нам нужны.
-IGameObject, EntityId.holdEntityId, EntityId.releaseEntityId
Дело к кодам, сразу говорю эта реализация чисто для примера, и она рабочая, можно сделать гораздо легче\проще\лучше, но это будет ваша задача!
Так вот для создания Магнита, Взлета и магнита определённых Entity нам нужна функция:
1) RMI:CPlayer:SvHoldEntityMessage
2)Она получает\передает 3 аргумента которые нам нужны, а так их там поболее. Я говорю про те, которые нам нужны.
-IGameObject, EntityId.holdEntityId, EntityId.releaseEntityId
Дело к кодам, сразу говорю эта реализация чисто для примера, и она рабочая, можно сделать гораздо легче\проще\лучше, но это будет ваша задача!
C++:
classes:
#define RequestHooldEntityBegin 0x1417208A0
#define RequestHooldEntityEnd 0x142175000
struct SSpecialMoveMessage
{
ESMType type; //0x0000
int msgtype; //0x0004
uint64 timestamp; //0x0008
int opcode; //0x0010
bool instant; //0x0014
}; //Size=0x0018
struct SHoldEntityMessage : SSpecialMoveMessage
{
EntityId holdEntityId;
EntityId releaseEntityId;
String holdTypeStr;
};
struct SKnockBackMessage : SSpecialMoveMessage {
EntityId pEntityId[2];
uint64 ui_0x28;
uint32 ui_0x30;
uint64 ui_0x34;
};
Exemple:
void DoInvokeRmi(IGameObject* pObj, IRMIMessageBody* pBody)
{
if (pBody)
{
pBody->AddRef();
}
pObj->DoInvokeRMI(&pBody, eRMI_ToServer, -1);
}
void RequestHoldEntity(IGameObject* pObj, EntityId holdEntityId, EntityId releaseEntityId)
{
String::StrHeader hdr;
hdr.nRefCount = -1;
hdr.nLength = 0;
SHoldEntityMessage msg;
msg.type = eSMT_HoldEntity;
msg.instant = 0;
msg.timestamp = SSystemGlobalEnvironment::Singleton()->GetTimer()->GetCurrTime();
msg.msgtype = 0;
msg.opcode = -1;
msg.holdEntityId = holdEntityId;
msg.releaseEntityId = releaseEntityId;
msg.holdTypeStr = { 0, &hdr };
using TConstructionMethod = IRMIMessageBody * (__thiscall*)(SGameObjectExtensionRMI*, EntityId, SHoldEntityMessage&, int64, int32, int32);
IRMIMessageBody* pBody = CallFunction<TConstructionMethod>(RequestHooldEntityBegin)((*(SGameObjectExtensionRMI**)RequestHooldEntityEnd), pObj->GetEntityId(), msg, 0, 0, 0);
DoInvokeRmi(pObj, pBody);
}
if (pMagnet) {
if (CMCrt::strstr(pAnim, "fixedLoc")) continue;
if (pMainDeterminative->pKey->GetKeyState(EKeyId::eKI_M, false)) {
/*RequestHoldEntity(pGameObject, pActor->GetEntityId(), 0) - Это берет ентити в руки - т.е Магнитит к себе!*/
RequestHoldEntity(pGameObject, pActor->GetEntityId(), 0);
pHud = eHUDSilouettes::eDistantion;
/*RequestHoldEntity(pGameObject, 0, pActor->GetEntityId()) - Это откпускать Entity, если всегда держать будет то просто крашнет комнату,
и все кто в ней есть будут крашнуты ибо выкинуты в лобби, по этому принцыпу,
я делал краш комнат, только магнитил SpawnPoint - точки спавна, можно было их украсть,
и все враги спавнились там где вы это сделали)))) Рофл геймс, видосы, всё есть и тд))
Так что магнитить и отпускать врагов как это сделать, думайте сами, но там не сложно!*/
RequestHoldEntity(pGameObject, 0, pActor->GetEntityId());
}
}
/*Так по приколу ещё рофл штучки, думаю поймете и разберетесь)))*/
if (IsObject(pEntity, "SEDTeleporter", "SEDAssault", pMagnetSED)) {
if (pMainDeterminative->pKey->GetKeyState(EKeyId::eKI_H, false)) {
RequestHoldEntity(pGameObject, pEntity->GetEntityId(), 0);
RequestHoldEntity(pGameObject, 0, pEntity->GetEntityId());
}
continue;
}
if (IsObject(pEntity, "GeomEntity", "BombGeometry", pMagnetBomb)) {
eHUDSilouettesResult pResultBombVisible = eHUDSilouettesResult::eNotVisible;
if (pMainDeterminative->pPhysicalWorld->isVisible(pMainDeterminative->pEntitySystem, pEntity, pShootPos, aabb.GetCenter())) {
pResultBombVisible = eHUDSilouettesResult::eVisible;
}
HUDSilhouettes(renderProxy, pResultBombVisible);
if (pMainDeterminative->pKey->GetKeyState(EKeyId::eKI_N, false)) {
RequestHoldEntity(pGameObject, pEntity->GetEntityId(), 0);
RequestHoldEntity(pGameObject, 0, pEntity->GetEntityId());
}
continue;
}
if (IsObject(pEntity, "PlantEntity", "PlantEntity", pMagnetBomb)) {
eHUDSilouettesResult pResultBombVisible = eHUDSilouettesResult::eNotVisible;
if (pMainDeterminative->pPhysicalWorld->isVisible(pMainDeterminative->pEntitySystem, pEntity, pShootPos, aabb.GetCenter())) {
pResultBombVisible = eHUDSilouettesResult::eVisible;
}
HUDSilhouettes(renderProxy, pResultBombVisible);
if (pMainDeterminative->pKey->GetKeyState(EKeyId::eKI_N, false)) {
RequestHoldEntity(pGameObject, pEntity->GetEntityId(), 0);
RequestHoldEntity(pGameObject, 0, pEntity->GetEntityId());
}
continue;
}
if (IsObject(pEntity, "InventoryPickup", "arl", pMagnetRPG)) {
eHUDSilouettesResult pResultBombVisible = eHUDSilouettesResult::eNotVisible;
if (pMainDeterminative->pPhysicalWorld->isVisible(pMainDeterminative->pEntitySystem, pEntity, pShootPos, aabb.GetCenter())) {
pResultBombVisible = eHUDSilouettesResult::eVisible;
}
HUDSilhouettes(renderProxy, pResultBombVisible);
if (pMainDeterminative->pKey->GetKeyState(EKeyId::eKI_Q, false)) {
RequestHoldEntity(pGameObject, pEntity->GetEntityId(), 0);
RequestHoldEntity(pGameObject, 0, pEntity->GetEntityId());
}
continue;
}
Последнее редактирование: