Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Анимация модели (Создание анимации модели (если она есть))
Анимация модели
panorama Дата: Вторник, 27.08.2013, 12:28:18 | Сообщение # 1
Сообщений: 206
Репутация: 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
Сообщений: 305
Репутация: 23 [ +/- ]
Раньше было можно,сейчас у меня не выходило,посмотри в датамапс ( http://world-source.ru/datamaps.txt ) поищи флаг у player связанный с анимацией...
 
panorama Дата: Вторник, 27.08.2013, 18:21:24 | Сообщение # 3
Сообщений: 206
Репутация: 2 [ +/- ]
Цитата (iEx)
Раньше было можно,сейчас у меня не выходило,посмотри в датамапс ( http://world-source.ru/datamaps.txt ) поищи флаг у player связанный с анимацией...

Я долго думал и понял что у каждой модели есть что то типо своей включалки анимации .
Так как на двух разных моделях анимация all_run не работает !

Добавлено (27.08.2013, 18:19:08)
---------------------------------------------
Ничего там не понятно (

Добавлено (27.08.2013, 18:21:24)
---------------------------------------------
Если кто-нибудь сможет помочь отпишитесь в этой теме пожалуйста grust

 
iEx Дата: Вторник, 27.08.2013, 18:26:21 | Сообщение # 4
Сообщений: 305
Репутация: 23 [ +/- ]
Глупый совет,но попробуй ловить у клиента как у пропа кучу всяких параметров,может что найдешь...
 
panorama Дата: Среда, 28.08.2013, 07:51:57 | Сообщение # 5
Сообщений: 206
Репутация: 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 библиотек , но вот первые же трудности меня убили pipec

 
iEx Дата: Среда, 28.08.2013, 10:07:26 | Сообщение # 6
Сообщений: 305
Репутация: 23 [ +/- ]
А,нпс,глянь плагин этот:
https://forums.alliedmods.net/showthread.php?p=1997841
+К нему расширения...
+Может тебе поможет,я карту вскрыл,там есть нпс с анимацией:


Прикрепления: 5926264.png(403.5 Kb)


Сообщение отредактировал iEx - Среда, 28.08.2013, 10:07:36
 
panorama Дата: Среда, 28.08.2013, 12:23:56 | Сообщение # 7
Сообщений: 206
Репутация: 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, Насколько я знаю анимации моделей можно поискать в файле анимации если сдекомпилить ее. Или можно на карте в редакторе выставить модель и посмотреть там все анимации.
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Анимация модели (Создание анимации модели (если она есть))
  • Страница 1 из 1
  • 1
Поиск: