SetTransmit with sdkhooks apeas to not be working in this code for some reason.
PHP Code:
static PlayerHat[MAXPLAYERS + 1] = {-1,...};
stock CreateHat(Client, const String:Model[255])
{
//Connected:
if(IsClientConnected(Client) && IsClientInGame(Client))
{
//Declare:
new iModel = CreateEntityByName("prop_dynamic_override");
//Is Valid:
if(IsValidEdict(iModel))
{
//Set String:
SetVariantString("!activator");
//Accept:
AcceptEntityInput(iModel, "SetParent", Client, iModel, 0);
//Attach:
SetVariantString("Eyes");
//Accept:
AcceptEntityInput(iModel, "SetParentAttachment", iModel , iModel, 0);
//Dispatch:
DispatchKeyValue(iModel, "model", Model);
DispatchKeyValue(iModel, "solid", "0");
//Spawn:
DispatchSpawn(iModel);
//Declare:
decl String:Name[32];
//Format:
Format(Name, sizeof(Name), "PlayerHat_%i", Client);
//Dispatch:
DispatchKeyValue(iModel, "targetname", Name);
//Sent Ent Prop:
SetEntDataEnt2(iModel, OwnerOffset, Client, true);
//Accept:
AcceptEntityInput(iModel, "TurnOn", Client, Client, 0);
//Declare:
decl Float:Pos[3], Float:Offset[3];
//Initulize:
GetEntPropVector(iModel, Prop_Send, "m_vecOrigin", Pos);
//Set Offset:
if(StrEqual(Model, "models/props_junk/sawblade001a.mdl"))
{
//Match:
Offset[2] = 3.0;
Offset[0] = -5.0;
Offset[1] = 0.0;
}
//Match:
Pos[2] += Offset[2];
Pos[0] += Offset[0];
Pos[1] += Offset[1];
//Teleport:
TeleportEntity(iModel, Pos, NULL_VECTOR, NULL_VECTOR);
//SDKHOOK:
SDKHook(iModel, SDKHook_SetTransmit, OnShouldDisplayHats);
//Initulize:
PlayerHat[Client] = iModel;
}
//Return:
return iModel;
}
//Return:
return -1;
}
public Action:OnShouldDisplayHats(Ent, Client)
{
//Is Valid:
//if(IsClientInGame(Client) && IsValidEdict(Client) && GetObserverMode(Client) == 4 && GetObserverTarget(Client) >= 0 && PlayerHat[Client] == Client)
if(PlayerHat[Client] != Ent)
{
//Return:
return Plugin_Handled;
}
//Return:
return Plugin_Continue;
}
__________________