| 
 
 
	
		
		
			| Спрайт на оружие |  |  |  | 
| In-com_Software | Дата: Суббота, 16.11.2013, 10:55:47 | Сообщение # 1 |  |   
|  |  | Сообщений: 17 Репутация: 0 [ +/- ]
 |  | Добрый день парни! Начну сразу с кода: 
 
 Код 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)
 {
 // Здесь должен быть эффект
 }
 return Plugin_Stop;
 }
 Как можно прикрутить спрайт (эффект молнии или искр) на определенное оружие, чтобы при его доставании запускался данный эффект и все время был на нем?
 
 Пытался добавлять env_sprite но все тщетно...
 
 Код createSprite(client) {
 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);
 }
 Буду признателен за помощь!
 Добавлено (16.11.2013, 10:55:47)---------------------------------------------
 Пробовал даже так делать, но эффекта не видно
   
 Код #include <sourcemod> #include <sdktools>
 
 public OnMapStart()
 {
 PrecacheModel("sprites/bluelight1.vmt");
 }
 
 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");
 }
 }
 Я еще новичек в это деле и мне совершенно не понятно, что же еще можно сделать. Прошу помощи у _wS_ и Scarface_slv
 
 
 Сообщение отредактировал In-com_Software - Четверг, 14.11.2013, 15:07:15 |  |  |  |  |  | 
| panorama | Дата: Суббота, 16.11.2013, 14:05:19 | Сообщение # 2 |  |   
|  |  | Сообщений: 203 Репутация: 2 [ +/- ]
 |  | Цитата In-com_Software (  ) Я еще новичек в это деле и мне совершенно не понятно, что же еще можно сделать. Прошу помощи у _wS_ и Scarface_slvНе уверен что есть такое оружие weapon_smg1
 |  |  |  |  |  | 
| In-com_Software | Дата: Суббота, 16.11.2013, 14:25:47 | Сообщение # 3 |  |   
|  |  | Сообщений: 17 Репутация: 0 [ +/- ]
 |  | Цитата panorama Не уверен что есть такое оружие weapon_smg1Это оружие есть в игре HL2DM
 Думаю можно установить спрайт и на любое другое, даже в CSS...
 
 Есть какие либо идеи по этому поводу?
 |  |  |  |  |  | 
| panorama | Дата: Суббота, 16.11.2013, 14:34:16 | Сообщение # 4 |  |   
|  |  | Сообщений: 203 Репутация: 2 [ +/- ]
 |  | Цитата In-com_Software (  ) Есть какие либо идеи по этому поводу?В css я как то названия не встречал ...
 
 А по поводу плагина можно через sdkhook
 
 Код  SDKHook(client, SDKHook_PostThinkPost, OnPostThinkPosts);
 
Записывать текущее оружие клиента и тут же сверять нынешнее с записанным раннее ... И если индексы оружия различаются значит игрок его сменил ... Ну и тогда плагин воспроизводит твои эффекты ...
 |  |  |  |  |  | 
| Scarface_slv | Дата: Суббота, 16.11.2013, 17:43:38 | Сообщение # 5 |  |   
|  |  | Сообщений: 737 Репутация: 61 [ +/- ]
 |  | public OnEntityCreated(entity, const String:classname[]) не будет работать без #include <sdkhooks> |  |  |  |  |  | 
| In-com_Software | Дата: Суббота, 16.11.2013, 23:19:37 | Сообщение # 6 |  |   
|  |  | Сообщений: 17 Репутация: 0 [ +/- ]
 |  | Цитата Scarface_slv #include <sdkhooks>Отлично! Спасибо за совет. Я то думаю что не так. Вот с env_spritetrail проблемка вышла, не изменяется размер спрайта и его анимация. Пробовал юзать env_fire_trail анимация проходит а вот размер спрайта не изменяется. Баловался с параметром scale и spawnflags - не работает.
 |  |  |  |  |  | 
| Scarface_slv | Дата: Воскресенье, 17.11.2013, 00:20:00 | Сообщение # 7 |  |   
|  |  | Сообщений: 737 Репутация: 61 [ +/- ]
 |  | Пробовал менять "endwidth" и "startwidth"? |  |  |  |  |  | 
| panorama | Дата: Воскресенье, 17.11.2013, 05:03:09 | Сообщение # 8 |  |   
|  |  | Сообщений: 203 Репутация: 2 [ +/- ]
 |  | Цитата Scarface_slv (  ) Отлично! Спасибо за совет. Я то думаю что не так. Вот с env_spritetrail проблемка вышла, не изменяется размер спрайта и его анимация. Пробовал юзать env_fire_trail анимация проходит а вот размер спрайта не изменяется. Баловался с параметром scale и spawnflags - не работает.Можно поинтересоваться для чего ты функцию делаешь ? Для Спрайта выстрела ?
 |  |  |  |  |  | 
| In-com_Software | Дата: Воскресенье, 17.11.2013, 07:49:02 | Сообщение # 9 |  |   
|  |  | Сообщений: 17 Репутация: 0 [ +/- ]
 |  | Цитата Scarface_slv Пробовал менять "endwidth" и "startwidth"?С env_fire_trail не работает. Можно ли за место функции env_fire_trail использовать env_spritetrail с анимацией спрайта (fire.vmt)?
 
 
 Цитата panorama Можно поинтересоваться для чего ты функцию делаешь ? Для Спрайта выстрела ?Делаю по типу этого скрина но с эффектом анимированного огня. Для спрайта выстрелов тоже идейка есть.
 
  |  |  |  |  |  | 
| panorama | Дата: Понедельник, 18.11.2013, 12:37:14 | Сообщение # 10 |  |   
|  |  | Сообщений: 203 Репутация: 2 [ +/- ]
 |  | Цитата In-com_Software (  ) Делаю по типу этого скрина но с эффектом анимированного огня. Для спрайта выстрелов тоже идейка есть. С спрайтом выстрела я тоже бы хотел повозиться но в event я к сожалению ничего не нашел ...
 
 Сообщение отредактировал panorama - Понедельник, 18.11.2013, 12:37:29 |  |  |  |  |  | 
| Scarface_slv | Дата: Понедельник, 18.11.2013, 13:11:24 | Сообщение # 11 |  |   
|  |  | Сообщений: 737 Репутация: 61 [ +/- ]
 |  | panorama, event "bullet_impact" не? |  |  |  |  |  | 
| panorama | Дата: Понедельник, 18.11.2013, 14:38:04 | Сообщение # 12 |  |   
|  |  | Сообщений: 203 Репутация: 2 [ +/- ]
 |  | Цитата Scarface_slv (  ) panorama, event "bullet_impact" не?Не ... Есть ли event создания спрайта muzzflash ? Или как то так называется ...
 |  |  |  |  |  | 
| In-com_Software | Дата: Четверг, 21.11.2013, 07:57:58 | Сообщение # 13 |  |   
|  |  | Сообщений: 17 Репутация: 0 [ +/- ]
 |  | Видел на одном сервере эффект огня на оружии, но он там анимированный и очень маленький. Кто знает, как такое сделать? |  |  |  |  |  | 
| Sunday | Дата: Четверг, 21.11.2013, 14:46:51 | Сообщение # 14 |  |   
|  |  | Сообщений: 186 Репутация: 24 [ +/- ]
 |  | У меня наверное видел :) 
 Ты бы в начале проверил что создается на самом деле при выстреле, например так:
 
 Код public OnEntityCreated(entity, const String:classname[]) {
 PrintToChatAll("%s", classname);
 }
 Убивает конечно weapon_smg1 но выстреливаешь ты grenade_ar2(это подствол летящий) а env_smoketrail(дым летящий за ним).
 
 Попробуй например так:
 
 
 Код #include <sourcemod> #include <sdkhooks>
 #include <sdktools>
 
 new Sprite;
 
 public OnMapStart()
 {
 Sprite = PrecacheModel("sprites/laser.vmt");
 }
 
 public OnEntityCreated(entity, const String:classname[])
 {
 if(strcmp(classname, "grenade_ar2") == 0)
 {
 TE_SetupBeamFollow(entity, Sprite,    0, Float:1.0, Float:10.0, Float:10.0, 5, {225,0,0,225});
 TE_SendToAll();
 }
 }
 |  |  |  |  |  | 
| Loco | Дата: Понедельник, 16.12.2013, 21:20:20 | Сообщение # 15 |  |   
|  |  | Сообщений: 42 Репутация: 0 [ +/- ]
 |  | У кого нибудь есть пример кода, как это сделать? |  |  |  |  |  
 |