Трейлы для WS
| |
Naykon
|
Дата: Пятница, 16.11.2012, 00:34:53 | Сообщение # 1 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
У меня возник очень интересный вопрос... ответ на него я скал довольно долго на alliedmods.нет но к сожалению ничего не нашел... WS вся надежда на вас! С помощью TE_SetupBeamFollow разобрав ваш плагин "Луч за гранатой" я заменил стандартный луч на свой .vtf рисунок... После запуска рисунок отобразился но не корректно, он вращается вокруг своей оси.. а мне нужно чтоб картинка .vtf следовала четко за гранатой и не вращалась (чтоб можно было смотреть на картинку с боку). Если я не ошибаюсь плагин NotD Store корректно все отображает но я хочу понять как он работает.. исходника нету поэтому сам разобраться не могу( За ранее благодарен.
|
|
| |
Beelzebub
|
Дата: Пятница, 16.11.2012, 09:54:28 | Сообщение # 2 |
|
Сообщений: 202
Репутация: 13 [ +/- ]
|
|
Code #pragma semicolon 1 #include <sourcemod> #include <sdktools> new Handle:he_trail, LaserIndex, bool:need_set_model = true, String:he_model[75] = "models/props/cs_italy/bananna.mdl"; public OnPluginStart() { HookConVarChange(CreateConVar("he_model", "models/props/cs_italy/bananna.mdl"), cvar_he_model); he_trail = CreateConVar("he_trail", "1"); HookEvent("weapon_fire", weapon_fire); CreateConVar("HeGrenade_Projectile", "0.1", "", FCVAR_NOTIFY); } public OnMapStart() { LaserIndex = PrecacheModel("materials/sprites/laser.vmt", true); if (need_set_model) PrecacheModel(he_model, true); } public cvar_he_model(Handle:var, const String:old[], const String:NewValue[]) { if (StrContains(NewValue, "models") == 0 && StrContains(NewValue, ".mdl") != -1) { strcopy(he_model, 75, NewValue); ReplaceString(he_model, 75, "\\", "/"); PrecacheModel(he_model, true); need_set_model = true; } else need_set_model = false; } public weapon_fire(Handle:event, const String:name[], bool:dontBroadcast) { decl String:item[11]; GetEventString(event, "weapon", item, 11); if (StrEqual(item, "hegrenade")) CreateTimer(0.1, ChangeHeModel); } public Action:ChangeHeModel(Handle:timer) { new index = FindEntityByClassname(-1, "hegrenade_projectile"); if (index < 1) return; if (need_set_model) SetEntityModel(index, he_model); if (GetConVarInt(he_trail) == 1) { decl color[4]; color[1] = 0; color[3] = 255; if (GetEntProp(index, Prop_Data, "m_iTeamNum") == 2) { color[0] = 255; color[2] = 0; } else { color[0] = 0; color[2] = 255; } TE_SetupBeamFollow(index, LaserIndex, LaserIndex, 3.0, 9.0, 4.0, 0, color); TE_SendToAll(); } }
не?
|
|
| |
Naykon
|
Дата: Пятница, 16.11.2012, 11:59:10 | Сообщение # 3 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
Да этот плагин я брал за основу и заменил laser.vmt на свое изображение... но оно отображается не коректно.... как я писал в 1 посте.
|
|
| |
Beelzebub
|
Дата: Пятница, 16.11.2012, 13:29:11 | Сообщение # 4 |
|
Сообщений: 202
Репутация: 13 [ +/- ]
|
|
Naykon, попробую что ни будь сделать :)Добавлено (16.11.2012, 13:25:58) --------------------------------------------- Naykon, дай свой код гранаты полностью. и трейл который вставляешь. Добавлено (16.11.2012, 13:29:11) ---------------------------------------------
Code #include <sourcemod> #include <sdktools> #include <sdkhooks>
#pragma semicolon 1
#define FragColor {225,0,0,225} #define FlashColor {225,225,225,225} #define SmokeColor {0,225,0,225}
new BeamSprite; new Handle:GTrailsEnabled; public OnMapStart() { BeamSprite = PrecacheModel("materials/sprites/crystal_beam1.vmt"); } public OnPluginStart() { CreateConVar("gt_version", "1.0", "Grenade Trails", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY); GTrailsEnabled = CreateConVar("gt_enables", "1", "Enables/Disables Grenade Trails"); } public OnEntityCreated(Entity, const String:Classname[]) { if(GetConVarInt(GTrailsEnabled) == 1) { for(new client=1;client<=MaxClients;client++) { if(IsValidClient(client)) { if(strcmp(Classname, "hegrenade_projectile") == 0) { TE_SetupBeamFollow(Entity, BeamSprite, 0, Float:1.0, Float:10.0, Float:10.0, 5, FragColor); TE_SendToAll(); } else if(strcmp(Classname, "flashbang_projectile") == 0) { TE_SetupBeamFollow(Entity, BeamSprite, 0, Float:1.0, Float:10.0, Float:10.0, 5, FlashColor); TE_SendToAll(); } else if(strcmp(Classname, "smokegrenade_projectile") == 0) { TE_SetupBeamFollow(Entity, BeamSprite, 0, Float:1.0, Float:10.0, Float:10.0, 5, SmokeColor); TE_SendToAll(); } } } } }
public IsValidClient( client ) { if ( !( 1 <= client <= MaxClients ) || !IsClientInGame(client) ) return false; return true; }
|
|
| |
Naykon
|
Дата: Пятница, 16.11.2012, 14:08:39 | Сообщение # 5 |
|
Сообщений: 439
Репутация: -4 [ +/- ]
|
|
((
Сообщение отредактировал Naykon - Пятница, 16.11.2012, 15:30:52 |
|
| |
|