Анимация модели
| |
panorama
|
Дата: Вторник, 27.08.2013, 12:28:18 | Сообщение # 1 |
|
Сообщений: 203
Репутация: 2 [ +/- ]
|
|
Здравствуйте ! Скажите а возможно ли запустить анимацию определенную например у entity с определенным index Например я создаю проп с моделькой "models/player/t_phoenix.mdl" и например через плагин использую анимацию модельки : Например прыгнуть . (Я понимаю что проп от земли не оторвется , НО анимация должна проиграться )Добавлено (27.08.2013, 12:28:18) --------------------------------------------- Так вот я узнал несколько типов анимаций Код idle01 idle02 run_all swing wave
Какие еще есть кто знает ?
|
|
| |
iEx
|
Дата: Вторник, 27.08.2013, 16:32:07 | Сообщение # 2 |
|
Сообщений: 304
Репутация: 23 [ +/- ]
|
|
Раньше было можно,сейчас у меня не выходило,посмотри в датамапс ( http://world-source.ru/datamaps.txt ) поищи флаг у player связанный с анимацией...
|
|
| |
panorama
|
Дата: Вторник, 27.08.2013, 18:21:24 | Сообщение # 3 |
|
Сообщений: 203
Репутация: 2 [ +/- ]
|
|
Цитата (iEx) Раньше было можно,сейчас у меня не выходило,посмотри в датамапс ( http://world-source.ru/datamaps.txt ) поищи флаг у player связанный с анимацией... Я долго думал и понял что у каждой модели есть что то типо своей включалки анимации . Так как на двух разных моделях анимация all_run не работает !Добавлено (27.08.2013, 18:19:08) --------------------------------------------- Ничего там не понятно ( Добавлено (27.08.2013, 18:21:24) --------------------------------------------- Если кто-нибудь сможет помочь отпишитесь в этой теме пожалуйста
|
|
| |
iEx
|
Дата: Вторник, 27.08.2013, 18:26:21 | Сообщение # 4 |
|
Сообщений: 304
Репутация: 23 [ +/- ]
|
|
Глупый совет,но попробуй ловить у клиента как у пропа кучу всяких параметров,может что найдешь...
|
|
| |
panorama
|
Дата: Среда, 28.08.2013, 07:51:57 | Сообщение # 5 |
|
Сообщений: 203
Репутация: 2 [ +/- ]
|
|
iEx, iEx, iEx, panorama, Цитата (iEx) Глупый совет,но попробуй ловить у клиента как у пропа кучу всяких параметров,может что найдешь... Я не понимаю , тупо все подряд смотреть ?Добавлено (28.08.2013, 07:50:29) ---------------------------------------------
Код #include <sourcemod> #include <sdktools> #include <cstrike> #include <sdkhooks>
new Float:Pos[3];
public OnPluginStart() { RegConsoleCmd("prop", create_prop); RegConsoleCmd("prop_1", prop_1); RegConsoleCmd("prop_2", prop_2); RegConsoleCmd("prop_3", prop_3); RegConsoleCmd("prop_4", prop_4); RegConsoleCmd("prop_5", prop_5); }
public OnMapStart() { PrecacheModel("models/gman_high.mdl"); }
public Action:create_prop(i, args) { GetClientAbsOrigin(i, Pos); new String:buffer_modelsname[PLATFORM_MAX_PATH]; Pos[0] += 80.0; new index = CreateEntityByName("prop_dynamic"); if (index > 0) { DispatchKeyValueVector(index, "origin", Pos); DispatchKeyValue(index, "model", "models/gman_high.mdl"); DispatchKeyValue(index, "DefaultAnim", "idle"); DispatchKeyValue(index, "solid", "6"); DispatchKeyValue(index, "spawnflags", "3"); DispatchSpawn(index); } return Plugin_Handled; }
public Action:prop_1(client, args) { if (!(0 < client <= MaxClients)) return Plugin_Handled;
decl Float:origin[3], Float:angles[3]; GetClientEyePosition(client, origin); GetClientEyeAngles(client, angles); TR_TraceRayFilter(origin, angles, MASK_SOLID, RayType_Infinite, Filter, client);
if (!TR_DidHit()) return Plugin_Handled;
new ent = TR_GetEntityIndex(); TR_GetEndPosition(origin);
if (ent < 1) { PrintToChat(client, "%f %f %f", origin[0], origin[1], origin[2]); return Plugin_Handled; }
decl String:class[45], String:name[65]; class[0] = '\0'; GetEntityClassname(ent, class, 45); name[0] = '\0'; GetEntPropString(ent, Prop_Data, "m_iName", name, 65); GetEntPropVector(ent, Prop_Send, "m_vecOrigin", origin); PrintToChat(client, "\x01classname = '\x04%s\x01'\nindex = '\x04%d\x01', targetname = '\x04%s\x01'\norigin = %f %f %f", class, ent, name, origin[0], origin[1], origin[2]);
SetVariantString("run_all"); AcceptEntityInput(ent, "SetAnimation"); PropSetAnim("run_all");
return Plugin_Handled; }
public Action:prop_2(client, args) { if (!(0 < client <= MaxClients)) return Plugin_Handled;
decl Float:origin[3], Float:angles[3]; GetClientEyePosition(client, origin); GetClientEyeAngles(client, angles); TR_TraceRayFilter(origin, angles, MASK_SOLID, RayType_Infinite, Filter, client);
if (!TR_DidHit()) return Plugin_Handled;
new ent = TR_GetEntityIndex(); TR_GetEndPosition(origin);
if (ent < 1) { PrintToChat(client, "%f %f %f", origin[0], origin[1], origin[2]); return Plugin_Handled; }
decl String:class[45], String:name[65]; class[0] = '\0'; GetEntityClassname(ent, class, 45); name[0] = '\0'; GetEntPropString(ent, Prop_Data, "m_iName", name, 65); GetEntPropVector(ent, Prop_Send, "m_vecOrigin", origin); PrintToChat(client, "\x01classname = '\x04%s\x01'\nindex = '\x04%d\x01', targetname = '\x04%s\x01'\norigin = %f %f %f", class, ent, name, origin[0], origin[1], origin[2]);
SetVariantString("idle02"); AcceptEntityInput(ent, "SetAnimation");
return Plugin_Handled; }
public Action:prop_3(client, args) { if (!(0 < client <= MaxClients)) return Plugin_Handled;
decl Float:origin[3], Float:angles[3]; GetClientEyePosition(client, origin); GetClientEyeAngles(client, angles); TR_TraceRayFilter(origin, angles, MASK_SOLID, RayType_Infinite, Filter, client);
if (!TR_DidHit()) return Plugin_Handled;
new ent = TR_GetEntityIndex(); TR_GetEndPosition(origin);
if (ent < 1) { PrintToChat(client, "%f %f %f", origin[0], origin[1], origin[2]); return Plugin_Handled; }
decl String:class[45], String:name[65]; class[0] = '\0'; GetEntityClassname(ent, class, 45); name[0] = '\0'; GetEntPropString(ent, Prop_Data, "m_iName", name, 65); GetEntPropVector(ent, Prop_Send, "m_vecOrigin", origin); PrintToChat(client, "\x01classname = '\x04%s\x01'\nindex = '\x04%d\x01', targetname = '\x04%s\x01'\norigin = %f %f %f", class, ent, name, origin[0], origin[1], origin[2]);
SetVariantString("swing"); AcceptEntityInput(ent, "SetAnimation");
return Plugin_Handled; }
public Action:prop_4(client, args) { if (!(0 < client <= MaxClients)) return Plugin_Handled;
decl Float:origin[3], Float:angles[3]; GetClientEyePosition(client, origin); GetClientEyeAngles(client, angles); TR_TraceRayFilter(origin, angles, MASK_SOLID, RayType_Infinite, Filter, client);
if (!TR_DidHit()) return Plugin_Handled;
new ent = TR_GetEntityIndex(); TR_GetEndPosition(origin);
if (ent < 1) { PrintToChat(client, "%f %f %f", origin[0], origin[1], origin[2]); return Plugin_Handled; }
decl String:class[45], String:name[65]; class[0] = '\0'; GetEntityClassname(ent, class, 45); name[0] = '\0'; GetEntPropString(ent, Prop_Data, "m_iName", name, 65); GetEntPropVector(ent, Prop_Send, "m_vecOrigin", origin); PrintToChat(client, "\x01classname = '\x04%s\x01'\nindex = '\x04%d\x01', targetname = '\x04%s\x01'\norigin = %f %f %f", class, ent, name, origin[0], origin[1], origin[2]);
SetVariantString("wave"); AcceptEntityInput(ent, "SetAnimation");
return Plugin_Handled; }
public Action:prop_5(client, args) { if (!(0 < client <= MaxClients)) return Plugin_Handled;
decl Float:origin[3], Float:angles[3]; GetClientEyePosition(client, origin); GetClientEyeAngles(client, angles); TR_TraceRayFilter(origin, angles, MASK_SOLID, RayType_Infinite, Filter, client);
if (!TR_DidHit()) return Plugin_Handled;
new ent = TR_GetEntityIndex(); TR_GetEndPosition(origin);
if (ent < 1) { PrintToChat(client, "%f %f %f", origin[0], origin[1], origin[2]); return Plugin_Handled; }
decl String:class[45], String:name[65]; class[0] = '\0'; GetEntityClassname(ent, class, 45); name[0] = '\0'; GetEntPropString(ent, Prop_Data, "m_iName", name, 65); GetEntPropVector(ent, Prop_Send, "m_vecOrigin", origin); PrintToChat(client, "\x01classname = '\x04%s\x01'\nindex = '\x04%d\x01', targetname = '\x04%s\x01'\norigin = %f %f %f", class, ent, name, origin[0], origin[1], origin[2]);
SetVariantString("fly"); AcceptEntityInput(ent, "SetAnimation");
return Plugin_Handled; }
public Action:Prop_delete(Handle:event, any:index) { ExtinguishEntity(index); decl String:target[32]; Format(target, sizeof(target), "target_%d", index); new ent = CreateEntityByName("env_entity_dissolver"); if (ent > 1) { DispatchKeyValue(index, "targetname", target); DispatchKeyValue(ent, "dissolvetype", "3"); DispatchKeyValue(ent, "target", target); AcceptEntityInput(ent, "Dissolve"); AcceptEntityInput(ent, "kill"); } }
public bool:Filter(ent, mask, any:client) { return client != ent; }
Вот такой код получился ... Для проверки сойдет . Вроде все выполняется нормально , но как только меняю модельку на другую все ... Как получается , к модельки привязана анимация all_run ?Добавлено (28.08.2013, 07:51:57) --------------------------------------------- У меня появился интерес к NPC и я буду пробовать делать ее без dll библиотек , но вот первые же трудности меня убили
|
|
| | |
panorama
|
Дата: Среда, 28.08.2013, 12:23:56 | Сообщение # 7 |
|
Сообщений: 203
Репутация: 2 [ +/- ]
|
|
Цитата (iEx) А,нпс,глянь плагин этот: https://forums.alliedmods.net/showthread.php?p=1997841 +К нему расширения... +Может тебе поможет,я карту вскрыл,там есть нпс с анимацией:
Спасибо если все получится я поделюсь в этой теме !Добавлено (28.08.2013, 10:33:07) ---------------------------------------------
Цитата (iEx) А,нпс,глянь плагин этот: https://forums.alliedmods.net/showthread.php?p=1997841 +К нему расширения... +Может тебе поможет,я карту вскрыл,там есть нпс с анимацией:
Спасибо если все получится я поделюсь в этой теме !Добавлено (28.08.2013, 11:58:39) --------------------------------------------- В итоге не получилось ( Возможно ли как нибудь в модель вставить что то типо включалки анимации ? Добавлено (28.08.2013, 12:23:56) --------------------------------------------- В итоге не получилось ( Возможно ли как нибудь в модель вставить что то типо включалки анимации ?
|
|
| |
MongoL666
|
Дата: Вторник, 24.12.2013, 10:34:28 | Сообщение # 8 |
|
Сообщений: 92
Репутация: -9 [ +/- ]
|
|
panorama, Насколько я знаю анимации моделей можно поискать в файле анимации если сдекомпилить ее. Или можно на карте в редакторе выставить модель и посмотреть там все анимации.
|
|
| |
|