| 
				
				Флеш гранта
				 | 
 | 
| 
panorama
 | 
Дата: Понедельник, 22.07.2013, 20:47:29 | Сообщение # 1 |  
  
  |  
Сообщений: 203
 
Репутация: 2 [ +/- ]
 |   
 | 
Здравствуйте можно вопрос , не всегда выполняется функция .   Код    public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype)   {   if(victim > 0 && attacker > 0 && IsClientInGame(victim) && IsClientInGame(attacker)){   if(GetClientTeam(attacker) != GetClientTeam(victim) && SnowEnable && GetClientTeam(attacker) == 2){ 
   new String:classname[64];    GetClientWeapon(attacker, classname, sizeof(classname));    if(SnowEnable && StrEqual(classname, "weapon_flashbang")){    damage = (damage + 49);    return Plugin_Changed;   } 
   }   }   return Plugin_Continue;   }      
   Дело в том что не всегда игроку снимает 50 хп !   При попадание с большого расстояния снимает 1 хп . А если в упор то 50 !   В чем заключается проблема ? 
 | 
 
|   | 
 |    | 
| 
TEIN
 | 
Дата: Вторник, 23.07.2013, 06:35:42 | Сообщение # 2 |  
  
  |  
Сообщений: 563
 
Репутация: 78 [ +/- ]
 |   
 | 
 а так? 
 
| 
Гости не могут скачивать файлы
 |   
 | 
 
|   | 
 |    | 
| 
horr0r
 | 
Дата: Вторник, 23.07.2013, 07:20:12 | Сообщение # 3 |  
  
  |  
Сообщений: 149
 
Репутация: 40 [ +/- ]
 |   
 | 
Вот, у меня похожая проблема была в css v34. Там тоже хук на "player_hurt" от флешки не всегда срабатывал.   Я решил проблему по другому :).   Код    new vecoffset;   public OnPluginStart()   {    HookEvent("grenade_bounce", OnBounce);    vecoffset = FindSendPropInfo("CPhysicsProp", "m_vecOrigin");   }   stock GetGrenadeIndex(client)   {    new grenadeindex = -1;    while((grenadeindex = FindEntityByClassname(grenadeindex, "flashbang_projectile")) != -1)    {     if(GetEntPropEnt(grenadeindex, Prop_Send, "m_hThrower") == client) return grenadeindex;    }    return 0;   }   public OnBounce(Handle:event, const String:name[], bool:dontBroadcast)    {    new client = GetClientOfUserId(GetEventInt(event, "userid"));    new grent = GetGrenadeIndex(client), Float:location[3];    GetEntDataVector(grent, vecoffset, location);    for(new i = 1; i <= GetMaxClients(); i++)    {     if(IsClientInRangeOfPoint(i, 50.0, location) && i != client)     {      //флешка попала, твои действия     }    }   }   stock Float:GetDistance(Float:pos1[3], Float:pos2[3])   {    return SquareRoot( Pow(pos2[0] - pos1[0], 2.0) + Pow(pos2[1] - pos1[1], 2.0) + Pow(pos2[2]-pos1[2], 2.0) );   } 
   stock IsClientInRangeOfPoint(client, Float:radius, Float:cpos[3])   {    if(!IsClientInGame(client)) return false;    new Float:ppos[3];    GetClientAbsOrigin(client, ppos);    if(GetDistance(ppos, cpos) <= radius) return true;    return false;   }     
 | 
 
|   | 
 |    | 
| 
panorama
 | 
Дата: Вторник, 23.07.2013, 07:42:29 | Сообщение # 4 |  
  
  |  
Сообщений: 203
 
Репутация: 2 [ +/- ]
 |   
 | 
 К сожалению все также (   Я думаю может после того как выкидывается граната , запускается что то типа таймера на доли секунды ?   Просто по другому я не могу понять почему урон не наносится ! 
 | 
 
|   | 
 |    | 
| 
Scarface_slv
 | 
Дата: Вторник, 23.07.2013, 12:50:10 | Сообщение # 5 |  
  
  |  
Сообщений: 737
 
Репутация: 61 [ +/- ]
 |   
 | 
 Пробуй с SDKHook(entity, SDKHook_StartTouch, SDKHook_Touch); 
 | 
 
|   | 
 |    | 
| 
panorama
 | 
Дата: Вторник, 23.07.2013, 13:03:54 | Сообщение # 6 |  
  
  |  
Сообщений: 203
 
Репутация: 2 [ +/- ]
 |   
 | 
Цитата (Scarface_slv) Пробуй с SDKHook(entity, SDKHook_StartTouch, SDKHook_Touch);     Можно пример ?   А то я только с координатами пробовал эту функцию 
 | 
 
|   | 
 |    | 
| 
Scarface_slv
 | 
Дата: Вторник, 23.07.2013, 13:11:37 | Сообщение # 7 |  
  
  |  
Сообщений: 737
 
Репутация: 61 [ +/- ]
 |   
 | 
 проверь, должен работать 
 
| 
Гости не могут скачивать файлы
 |   
 | 
 
|   | 
 |    | 
| 
ThRunningMan
 | 
Дата: Вторник, 23.07.2013, 17:12:16 | Сообщение # 8 |  
  
  |  
Сообщений: 140
 
Репутация: 12 [ +/- ]
 |   
 | 
 ну вообще лучше сразу, когда рсаботает тач, без всяких сетов, ибо тут сразу тебе и дамаг засчитается и в случе смерти очко даст   SDKHooks_TakeDamage(victim, attacker, attacker, 200.0, DMG_SLASH, -1, NULL_VECTOR, Pos); 
   вместо DMG_SLASH можно любой вид дамага   200.0 сколько хочешь чтоб наносило   Pos это координаты твоего предмета в момент срабатывания тача 
 | 
 
|   | 
 |    | 
| 
panorama
 | 
Дата: Среда, 24.07.2013, 13:12:15 | Сообщение # 9 |  
  
  |  
Сообщений: 203
 
Репутация: 2 [ +/- ]
 |   
 | 
Цитата (Scarface_slv) проверь, должен работать        Спасибо ! 
 | 
 
|   | 
 |    |