Removed SetPlayerModel, removed deprecated code in models.txt, added CSWeaponDrop, updated gamedata file.
This commit is contained in:
parent
c8989eb544
commit
37dfea2f8c
@ -1,7 +1,12 @@
|
||||
"Games"
|
||||
{
|
||||
"cstrike"
|
||||
"#default"
|
||||
{
|
||||
"#supported"
|
||||
{
|
||||
"game" "cstrike"
|
||||
}
|
||||
|
||||
"Offsets"
|
||||
{
|
||||
"RemoveAllItems"
|
||||
@ -9,17 +14,20 @@
|
||||
"windows" "283"
|
||||
"linux" "284"
|
||||
}
|
||||
|
||||
"EyePosition"
|
||||
{
|
||||
"windows" "117"
|
||||
"linux" "118"
|
||||
}
|
||||
|
||||
"EyeAngles"
|
||||
{
|
||||
"windows" "206"
|
||||
"linux" "207"
|
||||
}
|
||||
}
|
||||
|
||||
"Signatures"
|
||||
{
|
||||
"TerminateRound"
|
||||
@ -28,6 +36,13 @@
|
||||
"windows" "\x83\xEC\x18\x53\x55\x8B\xD9\x8B\x4C\x24\x28\x56\x57\x33\xF6\x8D"
|
||||
"linux" "@_ZN12CCSGameRules14TerminateRoundEfi"
|
||||
}
|
||||
|
||||
"CSWeaponDrop"
|
||||
{
|
||||
"library" "server"
|
||||
"windows" "\x2A\x2A\x2A\x2A\x2A\x2A\x53\x55\x56\x57\x8B\xBC\x24\x40\x01\x00\x00\x32\xDB\x85\xFF\x8B\xF1\x0F"
|
||||
"linux" "@_ZN9CCSPlayer12CSWeaponDropEP17CBaseCombatWeaponbb"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -115,25 +115,3 @@ LoadDownloadData()
|
||||
CloseHandle(fileDownloads);
|
||||
CloseHandle(arrayDownloads);
|
||||
}
|
||||
|
||||
/*ApplyZombieModel(client)
|
||||
{
|
||||
decl String:modelpath[256];
|
||||
|
||||
new bool:classes = GetConVarBool(gCvars[CVAR_CLASSES]);
|
||||
if (classes)
|
||||
{
|
||||
GetClassModel(pClass[client], modelpath, sizeof(modelpath));
|
||||
if (!StrEqual(modelpath, "default", false))
|
||||
{
|
||||
SetPlayerModel(client, modelpath);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
new randmodel = GetRandomInt(0, GetArraySize(arrayModels) - 1);
|
||||
GetArrayString(arrayModels, randmodel, modelpath, sizeof(modelpath));
|
||||
Format(modelpath, sizeof(modelpath), "%s.mdl", modelpath);
|
||||
|
||||
SetPlayerModel(client, modelpath);
|
||||
}*/
|
||||
|
@ -21,9 +21,10 @@ new offsRender;
|
||||
|
||||
new Handle:g_hGameConf = INVALID_HANDLE;
|
||||
new Handle:g_hRemoveAllItems = INVALID_HANDLE;
|
||||
new Handle:g_hTerminateRound = INVALID_HANDLE;
|
||||
new Handle:g_hEyePosition = INVALID_HANDLE;
|
||||
new Handle:g_hEyeAngles = INVALID_HANDLE;
|
||||
new Handle:g_hTerminateRound = INVALID_HANDLE;
|
||||
new Handle:g_hCSWeaponDrop = INVALID_HANDLE;
|
||||
|
||||
FindOffsets()
|
||||
{
|
||||
@ -100,27 +101,61 @@ FindOffsets()
|
||||
|
||||
SetupGameData()
|
||||
{
|
||||
// Load game config file.
|
||||
g_hGameConf = LoadGameConfigFile("plugin.zombiereloaded");
|
||||
|
||||
//
|
||||
StartPrepSDKCall(SDKCall_Player);
|
||||
PrepSDKCall_SetFromConf(g_hGameConf, SDKConf_Virtual, "RemoveAllItems");
|
||||
g_hRemoveAllItems = EndPrepSDKCall();
|
||||
|
||||
if(g_hRemoveAllItems == INVALID_HANDLE)
|
||||
{
|
||||
SetFailState("Couldn't find offset \"RemoveAllItems\"!");
|
||||
}
|
||||
|
||||
StartPrepSDKCall(SDKCall_Player);
|
||||
PrepSDKCall_SetFromConf(g_hGameConf, SDKConf_Virtual, "EyePosition");
|
||||
PrepSDKCall_SetReturnInfo(SDKType_QAngle, SDKPass_ByValue);
|
||||
g_hEyePosition = EndPrepSDKCall();
|
||||
|
||||
if(g_hEyePosition == INVALID_HANDLE)
|
||||
{
|
||||
SetFailState("Couldn't find offset \"EyePosition\"!");
|
||||
}
|
||||
|
||||
StartPrepSDKCall(SDKCall_Player);
|
||||
PrepSDKCall_SetFromConf(g_hGameConf, SDKConf_Virtual, "EyeAngles");
|
||||
PrepSDKCall_SetReturnInfo(SDKType_QAngle, SDKPass_ByValue);
|
||||
g_hEyeAngles = EndPrepSDKCall();
|
||||
|
||||
if(g_hEyeAngles == INVALID_HANDLE)
|
||||
{
|
||||
SetFailState("Couldn't find offset \"EyeAngles\"!");
|
||||
}
|
||||
|
||||
StartPrepSDKCall(SDKCall_GameRules);
|
||||
PrepSDKCall_SetFromConf(g_hGameConf, SDKConf_Signature, "TerminateRound");
|
||||
PrepSDKCall_AddParameter(SDKType_Float, SDKPass_Plain);
|
||||
PrepSDKCall_AddParameter(SDKType_PlainOldData, SDKPass_Plain);
|
||||
g_hTerminateRound = EndPrepSDKCall();
|
||||
|
||||
if(g_hTerminateRound == INVALID_HANDLE)
|
||||
{
|
||||
SetFailState("Couldn't find signature \"CGameRules::TerminateRound\"!");
|
||||
}
|
||||
|
||||
StartPrepSDKCall(SDKCall_Player);
|
||||
PrepSDKCall_SetFromConf(g_hGameConf, SDKConf_Signature, "CSWeaponDrop");
|
||||
PrepSDKCall_AddParameter(SDKType_CBaseEntity, SDKPass_Pointer);
|
||||
PrepSDKCall_AddParameter(SDKType_Bool, SDKPass_Plain);
|
||||
PrepSDKCall_AddParameter(SDKType_Bool, SDKPass_Plain);
|
||||
g_hCSWeaponDrop = EndPrepSDKCall();
|
||||
|
||||
if(g_hCSWeaponDrop == INVALID_HANDLE)
|
||||
{
|
||||
SetFailState("Couldn't find signature \"CBasePlayer::CSWeaponDrop\"!");
|
||||
}
|
||||
}
|
||||
|
||||
SetPlayerVelocity(client, const Float:vec[3], bool:reset)
|
||||
@ -231,13 +266,12 @@ GetPlayerEyeAngles(client, Float:ang[3])
|
||||
|
||||
TerminateRound(Float:delay, reason)
|
||||
{
|
||||
if (g_hTerminateRound == INVALID_HANDLE) return;
|
||||
SDKCall(g_hTerminateRound, delay, reason);
|
||||
}
|
||||
|
||||
SetPlayerModel(client, const String:model[])
|
||||
CSDropWeapon(client, weapon)
|
||||
{
|
||||
SetEntityModel(client, model);
|
||||
SDKCall(g_hCSWeaponDrop, client, weapon, true, false);
|
||||
}
|
||||
|
||||
SetPlayerAlpha(client, alpha)
|
||||
|
@ -78,7 +78,7 @@ bool:ClassApplyModel(client, classindex, cachetype = ZR_CLASS_CACHE_PLAYER)
|
||||
|
||||
// TODO: Add support for keeping the default cs model ("default").
|
||||
|
||||
SetPlayerModel(client, modelpath);
|
||||
SetEntityModel(client, modelpath);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user