Junior Member
|
05-11-2022
, 08:45
Re: [L4D2] Sinister Jockey
|
#17
|
I fix the bug, move
Code:
if(isBacterialFeetRide)
above
Code:
if(isGravityPounce)
Old
Code:
public Action Event_JockeyRideStart(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(GetEventInt(event, "userid"));
int victim = GetClientOfUserId(GetEventInt(event, "victim"));
if (IsValidClient(client) && IsValidClient(victim))
{
isRiding[client] = true;
if (isGravityPounce)
{
GetClientAbsOrigin(client, endPosition[client]);
int distance = RoundFloat(startPosition[client][2] - endPosition[client][2]);
int damage = RoundFloat(distance * 0.4);
int maxdamage = GetConVarInt(cvarGravityPounceCap);
float multiplier = GetConVarFloat(cvarGravityPounceMultiplier);
damage = RoundFloat(damage * multiplier);
if (damage < 0.0){return;}
if (damage > maxdamage)
{
damage = maxdamage;
}
float victimPos[3];
char strDamage[16];
char strDamageTarget[16];
GetClientEyePosition(victim, victimPos);
IntToString(damage, strDamage, sizeof(strDamage));
Format(strDamageTarget, sizeof(strDamageTarget), "hurtme%d", victim);
int entPointHurt = CreateEntityByName("point_hurt");
if (!IsValidEntity(entPointHurt) || !IsValidEdict(entPointHurt))
{
return;
}
DispatchKeyValue(victim, "targetname", strDamageTarget);
DispatchKeyValue(entPointHurt, "DamageTarget", strDamageTarget);
DispatchKeyValue(entPointHurt, "Damage", strDamage);
DispatchKeyValue(entPointHurt, "DamageType", "0"); // DMG_GENERIC
DispatchSpawn(entPointHurt);
TeleportEntity(entPointHurt, victimPos, NULL_VECTOR, NULL_VECTOR);
AcceptEntityInput(entPointHurt, "Hurt", (client && client < MaxClients && IsClientInGame(client)) ? client : -1);
DispatchKeyValue(entPointHurt, "classname", "point_hurt");
DispatchKeyValue(victim, "targetname", "null");
AcceptEntityInput(entPointHurt, "kill");
if (isAnnounce)
{
PrintHintText(client, "You dropped %i distance on a Survivor, causing %i damage.", distance, damage);
PrintHintText(victim, "A Jockey dropped %i distance on you, causing %i damage.", distance, damage);
}
}
//any code from this line won't run, I don't know why
if (isBacterialFeetRide)
{
SetEntDataFloat(victim, laggedMovementOffset, 1.0*GetConVarFloat(cvarBacterialFeetRideSpeed), true);
}
}
}
New
Code:
public Action Event_JockeyRideStart(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(GetEventInt(event, "userid"));
int victim = GetClientOfUserId(GetEventInt(event, "victim"));
if (IsValidClient(client) && IsValidClient(victim))
{
isRiding[client] = true;
if (isBacterialFeetRide)
{
SetEntDataFloat(victim, laggedMovementOffset, 1.0*GetConVarFloat(cvarBacterialFeetRideSpeed), true);
}
if (isGravityPounce)
{
GetClientAbsOrigin(client, endPosition[client]);
int distance = RoundFloat(startPosition[client][2] - endPosition[client][2]);
int damage = RoundFloat(distance * 0.4);
int maxdamage = GetConVarInt(cvarGravityPounceCap);
float multiplier = GetConVarFloat(cvarGravityPounceMultiplier);
damage = RoundFloat(damage * multiplier);
if (damage < 0.0){return;}
if (damage > maxdamage)
{
damage = maxdamage;
}
float victimPos[3];
char strDamage[16];
char strDamageTarget[16];
GetClientEyePosition(victim, victimPos);
IntToString(damage, strDamage, sizeof(strDamage));
Format(strDamageTarget, sizeof(strDamageTarget), "hurtme%d", victim);
int entPointHurt = CreateEntityByName("point_hurt");
if (!IsValidEntity(entPointHurt) || !IsValidEdict(entPointHurt))
{
return;
}
DispatchKeyValue(victim, "targetname", strDamageTarget);
DispatchKeyValue(entPointHurt, "DamageTarget", strDamageTarget);
DispatchKeyValue(entPointHurt, "Damage", strDamage);
DispatchKeyValue(entPointHurt, "DamageType", "0"); // DMG_GENERIC
DispatchSpawn(entPointHurt);
TeleportEntity(entPointHurt, victimPos, NULL_VECTOR, NULL_VECTOR);
AcceptEntityInput(entPointHurt, "Hurt", (client && client < MaxClients && IsClientInGame(client)) ? client : -1);
DispatchKeyValue(entPointHurt, "classname", "point_hurt");
DispatchKeyValue(victim, "targetname", "null");
AcceptEntityInput(entPointHurt, "kill");
if (isAnnounce)
{
PrintHintText(client, "You dropped %i distance on a Survivor, causing %i damage.", distance, damage);
PrintHintText(victim, "A Jockey dropped %i distance on you, causing %i damage.", distance, damage);
}
}
}
}
Last edited by arclightarchery; 05-11-2022 at 08:46.
Reason: Add code block
|
|