Добрый день уважаемые. Уже как третий день пытаюсь прикрутить спрайт (эффект молнии или искр) к определенному оружию, но пока что не получается. В этом деле я еще новичок и поэтому всех тонкостей не понимаю. Сначала делал так: Спойлер Код: 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); } но эффекта не было видно. Далее переделал: Спойлер Код: 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: некоторую часть кода брал с вашего форума Прошу помощи у умельцев т.к. уже больше не к кому обратиться...
Данное свечение всегда сопровождает оружие - будь оно поднято, выброшено или любые другие события. Думаю, со спрайтом тоже должно работать. Код: #include <sdktools> #include <sdkhooks> #define EFFECT_MODEL "sprites/redglow1.vmt" public OnMapStart() { PrecacheModel(EFFECT_MODEL); } public OnEntityCreated(iEntity, const String:sClassName[]) { if ( StrEqual(sClassName, "weapon_m4a1") ) { new iGlowEntity = CreateEntityByName("env_glow"); DispatchKeyValue(iGlowEntity, "model", EFFECT_MODEL); DispatchKeyValue(iGlowEntity, "rendermode", "3"); // свечение DispatchKeyValue(iGlowEntity, "scale", "1.0"); // размер свечения DispatchKeyValue(iGlowEntity, "renderamt", "255"); // прозрачность DispatchKeyValue(iGlowEntity, "rendercolor", "255 0 0"); // цвет if ( DispatchSpawn(iGlowEntity) ) { decl String:sTargetName[32], Float:fOrigin[3]; Format(sTargetName, sizeof(sTargetName) - 1, "weapon_m4a1_%d", iGlowEntity); DispatchKeyValue(iEntity, "targetname", sTargetName); GetEntPropVector(iEntity, Prop_Data, "m_vecOrigin", fOrigin); SetVariantString(sTargetName); AcceptEntityInput(iGlowEntity, "SetParent"); TeleportEntity(iGlowEntity, fOrigin, NULL_VECTOR, NULL_VECTOR); AcceptEntityInput(iGlowEntity, "ShowSprite"); AcceptEntityInput(iGlowEntity, "TurnOn"); } } }
Большое спасибо за помощь. Не ожидал такого быстрого решения. Добавлено: Со спрайтами работает, но не проходит анимация и невозможно повернуть сам спрайт к примеру влево или вправо. Пытался добавлять "spawnflags","10" и "angles","90 0 0" но не выходит, спрайт стоит на месте. С уважением. Добавлено через 16 часов 20 минут Пробовал изменять эффект на env_fire_trail - анимация проходит, но размер не изменяется. Изменял параметры "scale" "endwidth" и "startwidth" - не работает...