Добрый день уважаемые. Уже как третий день пытаюсь прикрутить спрайт (эффект молнии или искр) к определенному оружию, но пока что не получается. В этом деле я еще новичок и поэтому всех тонкостей не понимаю.
Сначала делал так:
но эффекта не было видно. Далее переделал:
и также не получилось. Эффекта не видать :(
PS: некоторую часть кода брал с вашего форума
Прошу помощи у умельцев т.к. уже больше не к кому обратиться...
Сначала делал так:
C-подобный:
public OnEntityCreated(entity, const String:classname[])
{
if(StrEqual(classname, "weapon_smg1"))
{
CreateTimer(0.01, Timer_Entity, entity);
}
}
public Action:Timer_Entity(Handle:timer, any:entity)
{
new client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");
if(!IsValidEntity(client)) return Plugin_Stop;
if (client > 0 && client <= MaxClients)
{
createSprite(client);
}
return Plugin_Stop;
}
createSprite(client)
{
new env_sprite[client] = CreateEntityByName("env_sprite");
if (!IsValidEntity(env_sprite[client]) && (env_sprite[client] != 0))
{
return;
}
new Float:origin[3];
GetEntPropVector(client,Prop_Send,"m_vecOrigin",origin);
origin[2] += 80.0;
DispatchKeyValueVector(env_sprite[client],"origin",origin);
DispatchKeyValue(env_sprite[client],"model","materials/Sprites/bluelight1.vmt");
DispatchKeyValue(env_sprite[client],"rendermode","1");
DispatchKeyValue(env_sprite[client],"spawnflags","1");
DispatchKeyValue(env_sprite[client],"scale","0.3");
DispatchSpawn(env_sprite[client]);
SetVariantString("!activator");
AcceptEntityInput(env_sprite[client],"SetParent",client);
}
C-подобный:
public OnEntityCreated(entity, const String:classname[])
{
if(StrEqual(classname, "weapon_smg1"))
{
CreateTimer(0.01, Timer_Entity, entity);
}
}
public Action:Timer_Entity(Handle:timer, any:entity)
{
new client = GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity");
if(!IsValidEntity(client)) return Plugin_Stop;
if (client > 0 && client <= MaxClients)
{
Void_AttachTrail(client);
}
return Plugin_Stop;
}
void:Void_AttachTrail(client)
{
new g_iEntity[client];
g_iEntity[client] = CreateEntityByName("env_spritetrail");
if(g_iEntity[client] > 0 && IsValidEdict(g_iEntity[client]))
{
new Float:g_fOrigin[3], String:g_sName[MAX_NAME_LENGTH];
GetClientName(client, g_sName, sizeof(g_sName));
Format(g_sName, sizeof(g_sName), "Trails_%s", g_sName);
DispatchKeyValue(client, "targetname", g_sName);
DispatchKeyValue(g_iEntity[client], "parentname", g_sName);
DispatchKeyValue(g_iEntity[client], "lifetime", "1.5");
DispatchKeyValue(g_iEntity[client], "endwidth", "0.1");
DispatchKeyValue(g_iEntity[client], "startwidth", "5");
DispatchKeyValue(g_iEntity[client], "spritename", "materials/sprites/bluelight1.vmt");
DispatchKeyValue(g_iEntity[client], "renderamt", "255");
DispatchKeyValue(g_iEntity[client], "rendercolor", "255 0 0");
DispatchKeyValue(g_iEntity[client], "rendermode", "5");
DispatchSpawn(g_iEntity[client]);
new g_fTrailHeight;
GetClientAbsOrigin(client, g_fOrigin);
g_fOrigin[2] += g_fTrailHeight;
TeleportEntity(g_iEntity[client], g_fOrigin, NULL_VECTOR, NULL_VECTOR);
SetVariantString(g_sName);
AcceptEntityInput(g_iEntity[client], "SetParent");
}
}
PS: некоторую часть кода брал с вашего форума
Прошу помощи у умельцев т.к. уже больше не к кому обратиться...