Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

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

  • Страница 1 из 1
  • 1
Исправление плагина decapination после обновы краш
morkva Дата: Среда, 29.08.2012, 15:45:32 | Сообщение # 1
Сообщений: 49
Репутация: 0 [ +/- ]
помогите исправить так как до обновы все прекрасно работал, а после крашит сервер посмотрите что там не так выложил архив

Добавлено (29.08.2012, 15:44:20)
---------------------------------------------
нашел что крашит сервер вот

команда HookEvent("player_hurt", EventPlayerHurt, EventHookMode_Pre);

Code

// plugin events
public OnPluginStart()
{
  PrintToConsole(0, "[ZR] Zombie:DecapiTation loaded.");
   
  CreateConVar("sm_decap_version", PLUGIN_VERSION, "Zombie:DecapiTation Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);

  cvDecapHeadshot = CreateConVar("sm_decap_headshot", "1", "decapination on headshot");
  cvDecapKnife = CreateConVar("sm_decap_knife", "1", "decapination on knifing");
  cvDecapHE = CreateConVar("sm_decap_he", "1", "decapination on grenade");

  HookEvent("player_hurt", EventPlayerHurt, EventHookMode_Pre);
  HookEvent("round_start", EventRoundStart);
  //HookEvent("round_end", EventRoundEnd);
  HookEvent("player_death", EventDeath);
  HookEvent("player_spawn", EventSpawn);
  HookEvent("player_team", EventSpawn);
   
}

public OnEventShutdown()
{
  UnhookEvent("player_hurt", EventPlayerHurt, EventHookMode_Pre);
  UnhookEvent("round_start", EventRoundStart);
  UnhookEvent("player_death", EventDeath, EventHookMode_Pre);
  UnhookEvent("player_spawn",EventSpawn);
  UnhookEvent("player_team",EventTeam);
   
}

public OnMapStart()
{
  //open precache file and add everything to download table
  new String:modelfile[256];
  BuildPath(Path_SM, modelfile, 255, "configs/dc_assetconfig.ini");
  new Handle:fileh = OpenFile(modelfile, "r");
  new String:buffer[256];
  while (ReadFileLine(fileh, buffer, sizeof(buffer)))
  {
   new len = strlen(buffer);
   if (buffer[len-1] == '\n')
       buffer[--len] = '\0';
        
   if (FileExists(buffer))
   {
    AddFileToDownloadsTable(buffer);
   }
    
   if (IsEndOfFile(fileh))
    break;
  }
   
  // models
  PrecacheModel("models/player/zh/zh_charple001_hs.mdl",true);
  PrecacheModel("models/player/zh/zh_corpse002_hs.mdl",true);
  PrecacheModel("models/player/zh/zh_zombie003_hs.mdl",true);
  PrecacheModel("models/player/slow/zombie_package/slow_5_hs.mdl",true);
  PrecacheModel("models/player/lextalionis/zombine/t_phoenix_hs.mdl",true);
  PrecacheModel("models/player/ics/t_guerilla_z/t_guerilla_hs.mdl",true);
  PrecacheModel("models/player/ibizagaming/zombie/poison_v2_hs.mdl",true);
  PrecacheModel("models/player/elis/uz1/uz1_hs.mdl",true);

  PrecacheModel("models/player/zh/zh_charple001_head.mdl",true);
  PrecacheModel("models/player/zh/zh_corpse002_head.mdl",true);
  PrecacheModel("models/player/zh/zh_zombie003_head.mdl",true);
  PrecacheModel("models/player/slow/zombie_package/slow_5_head.mdl",true);
  PrecacheModel("models/player/ics/t_guerilla_z/t_guerilla_head.mdl",true);
  PrecacheModel("models/player/lextalionis/zombine/t_phoenix_head.mdl",true);
  PrecacheModel("models/player/ibizagaming/zombie/poison_v2_head.mdl",true);
  PrecacheModel("models/player/elis/uz1/uz1_head.mdl",true);
   
  PrecacheModel("models/props/de_train/utility_truck_windows.mdl",true);

  // particles
  ForcePrecache("blood_advisor_pierce_spray");
  ForcePrecache("blood_advisor_pierce_spray_b");
  ForcePrecache("blood_advisor_pierce_spray_c");  
  ForcePrecache("blood_advisor_puncture");
  ForcePrecache("blood_advisor_puncture_withdraw");
  ForcePrecache("blood_antlionguard_injured_heavy_tiny");
  ForcePrecache("blood_impact_red_01");
  ForcePrecache("blood_impact_red_01_droplets");
  ForcePrecache("blood_impact_red_01_goop");
  ForcePrecache("blood_impact_red_01_mist");
  ForcePrecache("blood_impact_red_01_smalldroplets");
  ForcePrecache("blood_zombie_split_spray");
  ForcePrecache("blood_zombie_split_spray_tiny");
  ForcePrecache("blood_zombie_split_spray_tiny2");
  ForcePrecache("smoke_gib_01");
}

public ForcePrecache(String:ParticleName[])
{
  decl Particle;
   
  Particle = CreateEntityByName("info_particle_system");
   
  if(IsValidEdict(Particle))
  {
   DispatchKeyValue(Particle, "effect_name", ParticleName);
    
   DispatchSpawn(Particle);
   ActivateEntity(Particle);
   AcceptEntityInput(Particle, "start");
    
   CreateTimer(0.3, DeleteParticle, Particle, TIMER_FLAG_NO_MAPCHANGE);
  }
}

public OnClientPutInServer(client)
{
  ResetPlayer(client);
}

public OnClientDisconnect(client)
{
  if((g_HeadEnt[client]) && (IsValidEntity(g_HeadEnt[client])))
  {
   RemoveEdict(g_HeadEnt[client]);
  }

  ResetPlayer(client);
}

public Action:EventRoundStart(Handle:Event, const String:Name[], bool:Broadcast)
{
  for (new client = 1; client <= MaxClients; client++)
  {
   if (IsClientConnected(client) && IsClientInGame(client))
   {
    
   }
  }
   
  return Plugin_Continue;
}


помогите исправить чтобы он вновь заработал

Добавлено (29.08.2012, 15:45:32)
---------------------------------------------
если ее сделать //HookEvent("player_hurt", EventPlayerHurt, EventHookMode_Pre); то тогда не рабоате отрыв головы(


Гости не могут скачивать файлы


Сообщение отредактировал morkva - Вторник, 28.08.2012, 00:31:29
 
Naykon Дата: Среда, 29.08.2012, 18:14:56 | Сообщение # 2
Сообщений: 439
Репутация: -4 [ +/- ]
Идеш сюда - http://www.sourcemod.net/snapshots.php
Качаешь это - 1.4.5-hg3545.zip
Заменяешь и вуаля.

Имхо. Такая проблема была.
 
morkva Дата: Среда, 29.08.2012, 21:49:53 | Сообщение # 3
Сообщений: 49
Репутация: 0 [ +/- ]
обновлял!(( толку ноль и даже уже стоит 1.4.5-hg3552.zip сейчас еще раз папробую

Добавлено (29.08.2012, 21:49:53)
---------------------------------------------
неа также(



Сообщение отредактировал morkva - Среда, 29.08.2012, 19:08:53
 
М9сНиК Дата: Пятница, 31.08.2012, 11:16:42 | Сообщение # 4
Сообщений: 61
Репутация: 0 [ +/- ]
sdk hooks есть? Если да то до версии 2.2 обнови
 
morkva Дата: Вторник, 04.09.2012, 23:25:17 | Сообщение # 5
Сообщений: 49
Репутация: 0 [ +/- ]
уже стоит даже профиксеный, так как если его не будет то зомби мод не будет работать

Добавлено (04.09.2012, 11:00:31)
---------------------------------------------
как быть? а то хочеться запустить обратно этот плагин(

Добавлено (04.09.2012, 21:46:38)
---------------------------------------------
вот что пишет в лог

L 09/04/2012 - 22:45:09: [SM] Displaying call stack trace for plugin "ZombieDecapiNation.smx":
L 09/04/2012 - 22:45:09: [SM] [0] Line 58, E:\update css\css\cstrike\addons\sourcemod\scripting\include_dc/decap.inc::GiveHead()
L 09/04/2012 - 22:45:09: [SM] [1] Line 153, E:\update css\css\cstrike\addons\sourcemod\scripting\include_dc/player.inc::EventPlayerHurt()
L 09/04/2012 - 22:45:21: [SM] Native "SetEntProp" reported: Property "m_usSolidFlags" not safe to access (entity 145/prop_physics_override)
L 09/04/2012 - 22:45:21: [SM] Displaying call stack trace for plugin "ZombieDecapiNation.smx":
L 09/04/2012 - 22:45:21: [SM] [0] Line 58, E:\update css\css\cstrike\addons\sourcemod\scripting\include_dc/decap.inc::GiveHead()
L 09/04/2012 - 22:45:21: [SM] [1] Line 153, E:\update css\css\cstrike\addons\sourcemod\scripting\include_dc/player.inc::EventPlayerHurt()

Добавлено (04.09.2012, 23:25:17)
---------------------------------------------
теперь он робит но ошибка выше он отрубает головы но их нет на земле то есть исчезают при отстреле



Сообщение отредактировал morkva - Вторник, 04.09.2012, 21:46:00
 
_wS_ Дата: Вторник, 04.09.2012, 23:25:30 | Сообщение # 6
В decap.inc строка 52. Попробуй ее закомментировать:

Code
//SetEntProp(g_HeadEnt[victim], Prop_Data, "m_usSolidFlags", 16);

Затем снова компилируй и пробуй запустить плагин. Если не поможет, попробуй вставить строку 52 после строки 53 (DispatchSpawn), или пробуй изменить значение, вот что я нашел:

Code
enum SolidFlags_t (m_usSolidFlags)
{
     FSOLID_CUSTOMRAYTEST        = 0x0001,    // Ignore solid type + always call into the entity for ray tests
     FSOLID_CUSTOMBOXTEST        = 0x0002,    // Ignore solid type + always call into the entity for swept box tests
     FSOLID_NOT_SOLID            = 0x0004,    // Are we currently not solid?
     FSOLID_TRIGGER                = 0x0008,    // This is something may be collideable but fires touch functions
                     // even when it's not collideable (when the FSOLID_NOT_SOLID flag is set)
     FSOLID_NOT_STANDABLE        = 0x0010,    // You can't stand on this
     FSOLID_VOLUME_CONTENTS        = 0x0020,    // Contains volumetric contents (like water)
     FSOLID_FORCE_WORLD_ALIGNED    = 0x0040,    // Forces the collision rep to be world-aligned even if it's SOLID_BSP or SOLID_VPHYSICS
     FSOLID_USE_TRIGGER_BOUNDS    = 0x0080,    // Uses a special trigger bounds separate from the normal OBB
     FSOLID_ROOT_PARENT_ALIGNED    = 0x0100,    // Collisions are defined in root parent's local coordinate space
     FSOLID_TRIGGER_TOUCH_DEBRIS    = 0x0200,    // This trigger will touch debris objects

     FSOLID_MAX_BITS    = 10
};

Например:

Code
SetEntProp(g_HeadEnt[victim], Prop_Data, "m_usSolidFlags", 0x0004);

И еще вместо Prop_Data можешь попробовать Prop_Send
 
morkva Дата: Пятница, 07.09.2012, 22:13:03 | Сообщение # 7
Сообщений: 49
Репутация: 0 [ +/- ]
спс огромное!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! помогло закомментировал!! и все теперь снова рабоатет!!
а можешь добавить команду ? на hp или от сколки выстрелов голова упадет?? если тебе не сложно.

Добавлено (07.09.2012, 22:13:03)
---------------------------------------------
поможет кто ни будь сделать? hp для головы


Сообщение отредактировал morkva - Пятница, 07.09.2012, 22:13:23
 
morkva Дата: Среда, 12.09.2012, 14:10:03 | Сообщение # 8
Сообщений: 49
Репутация: 0 [ +/- ]
скинул архив если кто может добавте пожалуйста!

Гости не могут скачивать файлы
 
Beelzebub Дата: Вторник, 18.09.2012, 19:11:54 | Сообщение # 9
Сообщений: 202
Репутация: 13 [ +/- ]
HP для головы? То есть ты хочешь сделать чтобы при выстреле голова разлеталась или что? Мне тебя не понять.
 
morkva Дата: Вторник, 18.09.2012, 19:18:59 | Сообщение # 10
Сообщений: 49
Репутация: 0 [ +/- ]
вот 100-500 hp и только тогда когда это все кончиться отвыстрелов в нее она упадет и чтобы была возможность самому регулировать hp


Сообщение отредактировал morkva - Вторник, 18.09.2012, 19:30:48
 
Beelzebub Дата: Вторник, 18.09.2012, 19:33:25 | Сообщение # 11
Сообщений: 202
Репутация: 13 [ +/- ]
Есть же куча примеров. Я не думаю что кто то станет заниматься твоей проблемой с HP.
Пример: CSS Gore v5.3.2 там тоже есть регулировка при попадание в человека.
Раньше данный плагин так назывался сейчас не знаю.

Добавлено (18.09.2012, 19:33:25)
---------------------------------------------
Я бы тебе помог если бы весь день не проспал.

 
morkva Дата: Вторник, 18.09.2012, 19:44:36 | Сообщение # 12
Сообщений: 49
Репутация: 0 [ +/- ]
ясно(( я просто не могу сам добавлять а именно писать плагины( если бы кто ни будь добавил))

Добавлено (18.09.2012, 19:39:30)
---------------------------------------------
ну лио хотя бы сделать от скольки выстрелов например 5 выстрелов и упала 100 и упала

Добавлено (18.09.2012, 19:44:13)
---------------------------------------------
вот 3 файла в которых думаю надо вснести

Code

// plugin events
public OnPluginStart()
{
  PrintToConsole(0, "[ZR] Zombie:DecapiTation loaded.");
   
  CreateConVar("sm_decap_version", PLUGIN_VERSION, "Zombie:DecapiTation Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);

  cvDecapHeadshot = CreateConVar("sm_decap_headshot", "1", "decapination on headshot");
  cvDecapKnife = CreateConVar("sm_decap_knife", "1", "decapination on knifing");
  cvDecapHE = CreateConVar("sm_decap_he", "1", "decapination on grenade");

  HookEvent("player_hurt", EventPlayerHurt, EventHookMode_Pre);
  HookEvent("round_start", EventRoundStart);
  //HookEvent("round_end", EventRoundEnd);
  HookEvent("player_death", EventDeath);
  HookEvent("player_spawn", EventSpawn);
  HookEvent("player_team", EventSpawn);
   
}

public OnEventShutdown()
{
  UnhookEvent("player_hurt", EventPlayerHurt, EventHookMode_Pre);
  UnhookEvent("round_start", EventRoundStart);
  UnhookEvent("player_death", EventDeath, EventHookMode_Pre);
  UnhookEvent("player_spawn",EventSpawn);
  UnhookEvent("player_team",EventTeam);
   
}

public OnMapStart()
{
  //open precache file and add everything to download table
  new String:modelfile[256];
  BuildPath(Path_SM, modelfile, 255, "configs/dc_assetconfig.ini");
  new Handle:fileh = OpenFile(modelfile, "r");
  new String:buffer[256];
  while (ReadFileLine(fileh, buffer, sizeof(buffer)))
  {
   new len = strlen(buffer);
   if (buffer[len-1] == '\n')
       buffer[--len] = '\0';
        
   if (FileExists(buffer))
   {
    AddFileToDownloadsTable(buffer);
   }
    
   if (IsEndOfFile(fileh))
    break;
  }
   
  // models
  PrecacheModel("models/player/zh/zh_charple001_hs.mdl",true);
  PrecacheModel("models/player/zh/zh_corpse002_hs.mdl",true);
  PrecacheModel("models/player/zh/zh_zombie003_hs.mdl",true);
  PrecacheModel("models/player/slow/zombie_package/slow_5_hs.mdl",true);

  PrecacheModel("models/player/zh/zh_charple001_head.mdl",true);
  PrecacheModel("models/player/zh/zh_corpse002_head.mdl",true);
  PrecacheModel("models/player/zh/zh_zombie003_head.mdl",true);
  PrecacheModel("models/player/slow/zombie_package/slow_5_head.mdl",true);
   
  PrecacheModel("models/props/de_train/utility_truck_windows.mdl",true);

  // particles
  ForcePrecache("blood_advisor_pierce_spray");
  ForcePrecache("blood_advisor_pierce_spray_b");
  ForcePrecache("blood_advisor_pierce_spray_c");  
  ForcePrecache("blood_advisor_puncture");
  ForcePrecache("blood_advisor_puncture_withdraw");
  ForcePrecache("blood_antlionguard_injured_heavy_tiny");
  ForcePrecache("blood_impact_red_01");
  ForcePrecache("blood_impact_red_01_droplets");
  ForcePrecache("blood_impact_red_01_goop");
  ForcePrecache("blood_impact_red_01_mist");
  ForcePrecache("blood_impact_red_01_smalldroplets");
  ForcePrecache("blood_zombie_split_spray");
  ForcePrecache("blood_zombie_split_spray_tiny");
  ForcePrecache("blood_zombie_split_spray_tiny2");
  ForcePrecache("smoke_gib_01");
}

public ForcePrecache(String:ParticleName[])
{
  decl Particle;
   
  Particle = CreateEntityByName("info_particle_system");
   
  if(IsValidEdict(Particle))
  {
   DispatchKeyValue(Particle, "effect_name", ParticleName);
    
   DispatchSpawn(Particle);
   ActivateEntity(Particle);
   AcceptEntityInput(Particle, "start");
    
   CreateTimer(0.3, DeleteParticle, Particle, TIMER_FLAG_NO_MAPCHANGE);
  }
}

public OnClientPutInServer(client)
{
  ResetPlayer(client);
}

public OnClientDisconnect(client)
{
  if((g_HeadEnt[client]) && (IsValidEntity(g_HeadEnt[client])))
  {
   RemoveEdict(g_HeadEnt[client]);
  }

  ResetPlayer(client);
}

public Action:EventRoundStart(Handle:Event, const String:Name[], bool:Broadcast)
{
  for (new client = 1; client <= MaxClients; client++)
  {
   if (IsClientConnected(client) && IsClientInGame(client))
   {
    
   }
  }
   
  return Plugin_Continue;
}

Добавлено (18.09.2012, 19:44:25)
---------------------------------------------

Code

// dont actually use this...
stock bool:IsPlayer(client)
{
  if (client <= 0) return false;
  if (client > MAXPLAYERS) return false;
  if (!IsClientConnected(client)) return false;
  return IsClientInGame(client);
}

ResetPlayer(client, bool:resetHead = true)
{
  if(resetHead)
   g_HeadEnt[client] = -1;
  g_HeadLastHolder[client] = -1;

}

public Action:RemoveRagdoll(Handle:Timer, any:client)
{
  if (!IsValidEntity(client))
   return;
   
  new String:edictname[128];

  new BodyRagdoll = GetEntPropEnt(client, Prop_Send, "m_hRagdoll");
  if(IsValidEdict(BodyRagdoll))
  {
   
   //Find:
   GetEdictClassname(BodyRagdoll, edictname, sizeof(edictname));  

   //Remove:
   if(StrEqual(edictname, "cs_ragdoll", false)) RemoveEdict(BodyRagdoll);
  }
}

// game events
public Action:EventPlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
{
  new hitgroup = GetEventInt(event, "hitgroup");
  new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
  new victim = GetClientOfUserId(GetEventInt(event, "userid"));
  new doDecap = false;
   
  //if(IsPlayer(victim) == false) PrintToServer("[SM][DC] EventPlayerHurt(victim):FALSE");
  //if(IsPlayer(attacker) == false) PrintToServer("[SM][DC] EventPlayerHurt(attacker):FALSE");
   
  new String:weapon[64];
  GetEventString(event, "weapon", weapon, 64);

  if((hitgroup == 1) && (GetConVarInt(cvDecapHeadshot)==1))
   doDecap = true;
  if((StrEqual(weapon, "knife", false)) && (GetConVarInt(cvDecapKnife)==1))
   doDecap = true;
  if((StrEqual(weapon, "hegrenade", false)) && (GetConVarInt(cvDecapHE)==1))
   doDecap = true;

  {
   new String:oldmodel[256];
   new String:bodymodel[256];
   new String:headmodel[256];

   GetClientModel(victim, oldmodel, 256);

   if (StrEqual(oldmodel, "models/player/zh/zh_charple001.mdl", false))
   {
    bodymodel = "models/player/zh/zh_charple001_hs.mdl";
    headmodel = "models/player/zh/zh_charple001_head.mdl";
   }
   else if (StrEqual(oldmodel, "models/player/zh/zh_corpse002.mdl", false))
   {
    bodymodel = "models/player/zh/zh_corpse002_hs.mdl";
    headmodel = "models/player/zh/zh_corpse002_head.mdl";
   }
   else if (StrEqual(oldmodel, "models/player/zh/zh_zombie003.mdl", false))
   {
    bodymodel = "models/player/zh/zh_zombie003_hs.mdl";
    headmodel = "models/player/zh/zh_zombie003_head.mdl";
   }
   else if (StrEqual(oldmodel, "models/player/slow/zombie_package/slow_5.mdl", false))
   {
    bodymodel = "models/player/slow/zombie_package/slow_5_hs.mdl";
    headmodel = "models/player/slow/zombie_package/slow_5_head.mdl";
   }
   else
   {
    doDecap = false;
   }

   if (IsModelPrecached(bodymodel) && IsModelPrecached(headmodel) && doDecap)
   {
    new String:attacker_name[64];
    new String:victim_name[64];
    GetClientName(attacker, attacker_name, sizeof(attacker_name));
    GetClientName(victim, victim_name, sizeof(victim_name));
     
    if(IsPlayer(attacker))
     PrintToChatAll("%s Обезглавил!! => %s!", attacker_name, victim_name);
    else
     PrintToChatAll("%s Потерял голову!! =>", victim_name);
     
    SetEntityModel(victim, bodymodel);
    GiveHead(victim, headmodel);
   }
  }
  return Plugin_Continue;
}

public Action:EventSpawn(Handle:Event, const String:Name[], bool:Broadcast)
{
  new client = GetClientOfUserId(GetEventInt(Event, "userid"));

  ResetPlayer(client);

  return Plugin_Continue;
}

public Action:EventDeath(Handle:Event, const String:Name[], bool:Broadcast)
{
  return Plugin_Continue;
}

public Action:EventTeam(Handle:Event, const String:Name[], bool:Broadcast)
{
  new client = GetClientOfUserId(GetEventInt(Event, "userid"));

  ResetPlayer(client);
   
  return Plugin_Continue;
}

Добавлено (18.09.2012, 19:44:36)
---------------------------------------------

Code

// timers
public Action:SpurtTimer(Handle:Timer, any:client)
{
  if(IsClientInGame(client) && IsClientConnected(client) && IsPlayerAlive(client))
  {
   //if(IsPlayer(client) == false) PrintToServer("[SM][DC] SpurtTimer:FALSE");
   //BloodSpurt(client);
    
   //new bloodloss = GetConVarInt(cvBloodLoss);
   decl health;
   health = GetClientHealth(client);
   //health -= bloodloss;

   if (health > 0)
    SetEntityHealth(client, health);
   else
    ForcePlayerSuicide(client);
  }

  return Plugin_Continue;
}

public Action:CheckPosTimer(Handle:Timer)
{
  decl Float:ClientOrigin[3];
  decl Float:HeadOrigin[3];

  for (new client = 1; client <= MaxClients; client++)
  {
   if (g_HeadEnt[client] > 0)
   {
    //if(IsPlayer(client) == false) PrintToServer("[SM][DC] CheckPosTimer:FALSE");
    GetClientAbsOrigin(client,ClientOrigin);
    ClientOrigin[0] += 5.0;
    ClientOrigin[2] += 60.0;
    GetEntPropVector(g_HeadEnt[client], Prop_Send, "m_vecOrigin", HeadOrigin);
   }
  }
   
  return Plugin_Continue;
}

// decapiTation functions
public GiveHead(any:victim, String:headmodel[])
{
  //if(IsPlayer(victim) == false) PrintToServer("[SM][DC] GiveHead:FALSE");
  g_HeadEnt[victim] = CreateEntityByName("prop_physics_override");
  SetEntityModel(g_HeadEnt[victim],headmodel);
  SetEntityMoveType(g_HeadEnt[victim], MOVETYPE_VPHYSICS);
  SetEntProp(g_HeadEnt[victim], Prop_Data, "m_CollisionGroup", 11); //TODO: CHECKME
  //SetEntProp(g_HeadEnt[victim], Prop_Data, "m_usSolidFlags", 16);
  DispatchSpawn(g_HeadEnt[victim]);

  if(IsValidEntity(g_HeadEnt[victim]))
  {
   new Float:Client_Origin[3];
   new Float:Client_Angles[3];
   new Float:vecVelocity[3];

   GetClientAbsOrigin(victim,Client_Origin);
   GetClientAbsAngles(victim,Client_Angles);

   //Client_Origin[0] += 30;
   Client_Origin[2] += 50;

   vecVelocity[0] = GetRandomFloat(-130.0,130.0);
   vecVelocity[1] = GetRandomFloat(-130.0,130.0);
   vecVelocity[2] = GetRandomFloat(100.0,250.0);
    
   TeleportEntity(g_HeadEnt[victim], Client_Origin, Client_Angles, vecVelocity);
    
   //BloodSpurt(victim);
  }
}

public ReattachHead(any:client)
{
  //if(IsPlayer(client) == false) PrintToServer("[SM][DC] ReattachHead:FALSE");
  if(IsClientInGame(client) && IsClientConnected(client))
  {
   new String:oldmodel[256];
   new String:bodymodel[256];

   GetClientModel(client, oldmodel, 256);

   if (StrEqual(oldmodel, "models/player/zh/zh_charple001.mdl", false))
   {
    bodymodel = "models/player/zh/zh_charple001_hs.mdl";
   }
   else if (StrEqual(oldmodel, "models/player/zh/zh_corpse002.mdl", false))
   {
    bodymodel = "models/player/zh/zh_corpse002_hs.mdl";
   }
   else if (StrEqual(oldmodel, "models/player/zh/zh_zombie003.mdl", false))
   {
    bodymodel = "models/player/zh/zh_zombie003_hs.mdl";
   }
   else if (StrEqual(oldmodel, "models/player/slow/zombie_package/slow_5.mdl", false))
   {
    bodymodel = "models/player/slow/zombie_package/slow_5_hs.mdl";
   }
   
   if (IsModelPrecached(bodymodel))
   {
    SetEntityModel(client, bodymodel);
   }

   if((g_HeadEnt[client]) && (IsValidEntity(g_HeadEnt[client])))
   {
    RemoveEdict(g_HeadEnt[client]);
   }
    
   g_HeadEnt[client] = -1;
   g_HeadLastHolder[client] = -1;

    
  }
}
 
Beelzebub Дата: Вторник, 18.09.2012, 19:44:42 | Сообщение # 13
Сообщений: 202
Репутация: 13 [ +/- ]
Я бы помог нет времени сейчас говорить об этом. Завтра на пары идти. У меня еще домашка не сделана ...
 
morkva Дата: Суббота, 22.09.2012, 12:19:58 | Сообщение # 14
Сообщений: 49
Репутация: 0 [ +/- ]
ясно,(( а у меня практика))

Добавлено (22.09.2012, 12:19:58)
---------------------------------------------
хотя бы напишите какие отвечают команды за это, а тама сам попробую в нести!


Сообщение отредактировал morkva - Суббота, 22.09.2012, 12:20:14
 
  • Страница 1 из 1
  • 1
Поиск: