| 
				
				Блок
				 |   |  
| 
Tokami
 | 
Дата: Суббота, 15.02.2014, 18:38:35 | Сообщение # 1 |  
  
  |  
Сообщений: 238
 
Репутация: 19 [ +/- ]
 |   
 | 
Данная хилка может заблочить игрока как сделать что она не могла блочить))?   Код    #include <sourcemod>    #include <sdktools>    #include <sdkhooks>  
   #define VERSION "1.0"  
   #define TEAM_T 2    #define TEAM_CT 3  
   #define HEALTHKIT_SOUND    "items/medshot4.wav"    #define HEALTHKIT_MODEL    "models/items/healthkit.mdl"  
   //Cvars    new Handle:g_hMedKitCount = INVALID_HANDLE;    new Handle:g_hMedKitLifeTime = INVALID_HANDLE;    new Handle:g_hMedKitRegenTime = INVALID_HANDLE;  
   //Client variables    new g_iMedKitCount[MAXPLAYERS+1];  
   //Timers    new Handle:g_hMedKitTimer[2048];    new Handle:g_hClientRegenKits[MAXPLAYERS+1];  
   //Offset    new g_iCollision  = -1;    new g_iSolidFlags    = -1;  
   public Plugin:myinfo = {      name = "JailMedKit",      author = "s1dex",      description = "CT can throw medkits",      version = VERSION,      url = "http://adminexe.ru/showthread.php?t=773"    };  
   public OnPluginStart()    {      g_hMedKitCount = CreateConVar("sm_jailmedkit_count", "2", "Максимальное количетсво аптечек на руках у CT");      g_hMedKitLifeTime = CreateConVar("sm_jailmedkit_lifetime", "15", "Время \"жизни\" аптечек");      g_hMedKitRegenTime = CreateConVar("sm_jailmedkit_regentime", "10", "Время регенерации аптечек");            RegConsoleCmd("hl", CmdThrowMedKit);            HookEvent("player_spawn", EventPlayerSpawn);            if((g_iCollision = FindSendPropOffs("CBaseEntity", "m_Collision")) == -1)       LogError("Could not find offset for CBaseEntity::m_Collision");            if((g_iSolidFlags = FindSendPropOffs("CBaseEntity", "m_usSolidFlags")) == -1)       LogError("Could not find offset for CBaseEntity::m_usSolidFlags");             AutoExecConfig(true, "jailmedkit");    }  
   public OnClientPutInServer(client)    {      if (g_hClientRegenKits[client] != INVALID_HANDLE)       CloseHandle(g_hClientRegenKits[client]);      g_hClientRegenKits[client] = CreateTimer(GetConVarFloat(g_hMedKitRegenTime), TimerRegen, client, TIMER_REPEAT);    }  
   public OnClientDisconnect(client)    {      if (g_hClientRegenKits[client] != INVALID_HANDLE)       CloseHandle(g_hClientRegenKits[client]);            g_hClientRegenKits[client] = INVALID_HANDLE;    }  
   public OnMapStart()    {      PrecacheModel(HEALTHKIT_MODEL, true);      PrecacheSound(HEALTHKIT_SOUND, true);    }  
   public Action:OnTouch(medkit, entity)    {      if (entity < 1 || entity > MaxClients || !IsClientInGame(entity) || !IsPlayerAlive(entity) || GetEntProp(medkit, Prop_Send, "m_PredictableID") == entity || GetClientHealth(entity) == 100) {       return;      }            SetEntityHealth(entity, GetEntProp(entity, Prop_Data, "m_iMaxHealth"));            new Float:origin[3];      EmitSoundToAll(HEALTHKIT_SOUND, entity, SNDCHAN_AUTO, SNDLEVEL_NORMAL, SND_NOFLAGS, 1.0, SNDPITCH_NORMAL, -1, origin, NULL_VECTOR, true, 0.0);             AcceptEntityInput(medkit, "Kill");      if (g_hMedKitTimer[medkit] != INVALID_HANDLE)       CloseHandle(g_hMedKitTimer[medkit]);            g_hMedKitTimer[medkit] = INVALID_HANDLE;    }  
   public Action:CmdThrowMedKit(client, args)    {      if (GetClientTeam(client) != TEAM_CT) {       PrintToChat(client, "\x03[Аптечка] \x01Данную команду могут использовать только CT");       return Plugin_Handled;      }            if (!IsPlayerAlive(client)) {       PrintToChat(client, "\x03[Аптечка] \x01Вы мертвы");       return Plugin_Handled;      }            if (!g_iMedKitCount[client]) {       PrintToChat(client, "\x03[Аптечка] \x01У Вас нет доступных аптечек");       return Plugin_Handled;      }            CreateMedKit(client);      g_iMedKitCount[client]--;      return Plugin_Handled;    }  
   public Action:EventPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)    {      new client = GetClientOfUserId(GetEventInt(event, "userid"));      g_iMedKitCount[client] = GetConVarInt(g_hMedKitCount);            //Advert      if (GetClientTeam(client) == 3)       PrintToChat(client, "\x03[Аптечка] \x01Вы можете кинуть аптечку командой !hl");    }  
   public Action:TimerRegen(Handle:timer, any:client)    {      if (IsClientInGame(client) && g_iMedKitCount[client] < GetConVarInt(g_hMedKitCount))       g_iMedKitCount[client]++;            return Plugin_Continue;    }  
   public Action:TimerDissolve(Handle:timer, any:entity)    {      if (IsValidEntity(entity))      {       decl String:dname[16];       Format(dname, sizeof(dname), "dis_%d", entity);       DispatchKeyValue(entity, "targetname", dname);       new diss = CreateEntityByName("env_entity_dissolver");       DispatchKeyValue(diss, "dissolvetype", "3");       DispatchKeyValue(diss, "target", dname);       AcceptEntityInput(diss, "Dissolve");       AcceptEntityInput(diss, "kill");      }            g_hMedKitTimer[entity] = INVALID_HANDLE;    }  
   stock CreateMedKit(client)    {      new entity = CreateEntityByName("prop_physics");      new Float:vecPos[3], Float:vecVel[3], Float:clAngles[3], Float:fwd[3];      GetClientEyePosition(client, vecPos);      SetEntityModel(entity, HEALTHKIT_MODEL);      SetEntProp(entity, Prop_Data, "m_CollisionGroup", 4);      SetEntProp(entity, Prop_Data, "m_MoveCollide", 0);      SetSolidFlags(entity, 152);      SetEntProp(entity, Prop_Send, "m_PredictableID", client);      SetEntityMoveType(entity, MOVETYPE_VPHYSICS);            GetClientAbsAngles(client, clAngles);      GetAngleVectors(clAngles, fwd, NULL_VECTOR, NULL_VECTOR);      NormalizeVector(fwd, vecVel);      ScaleVector(vecVel, 150.0);            TeleportEntity(entity, vecPos, NULL_VECTOR, NULL_VECTOR);      DispatchSpawn(entity);      TeleportEntity(entity, NULL_VECTOR, NULL_VECTOR, vecVel);            SDKHook(entity, SDKHook_StartTouchPost, OnTouch);      g_hMedKitTimer[entity] = CreateTimer(GetConVarFloat(g_hMedKitLifeTime), TimerDissolve, entity);    }  
   SetSolidFlags(iEntity, iFlags)    {      if(g_iCollision == -1 || g_iSolidFlags == -1) return;      SetEntData(iEntity, g_iCollision + g_iSolidFlags, iFlags, 2, true);    }      
 | 
 
|   | 
 |    |  
| 
BarD
 | 
Дата: Суббота, 15.02.2014, 19:12:16 | Сообщение # 2 |  
  
  |  
Сообщений: 943
 
Репутация: 137 [ +/- ]
 |   
 | 
 Вместо prop_physics используй prop_ragdoll. Он не блочит, нежели prop_physics. 
 | 
 
|   | 
 |    |  
| 
Tokami
 | 
Дата: Суббота, 15.02.2014, 19:25:16 | Сообщение # 3 |  
  
  |  
Сообщений: 238
 
Репутация: 19 [ +/- ]
 |   
 | 
 Не помогло просто сервер вырубило!!!Есть еще варианты??)) 
 | 
 
|   | 
 |    |  
| 
Vor4uN
 | 
Дата: Суббота, 15.02.2014, 20:19:35 | Сообщение # 4 |  
  
  |  
Сообщений: 49
 
Репутация: 3 [ +/- ]
 |   
 | 
 SetEntProp(entity, Prop_Data, "m_CollisionGroup", 0); по экперементируй с колизией пропа 
 
 Сообщение отредактировал Vor4uN - Суббота, 15.02.2014, 20:22:29  | 
 
|   | 
 |    |  
| 
Tokami
 | 
Дата: Суббота, 15.02.2014, 20:36:47 | Сообщение # 5 |  
  
  |  
Сообщений: 238
 
Репутация: 19 [ +/- ]
 |   
 | 
 SetEntProp(entity, Prop_Data, "m_CollisionGroup", 0); сделал не блочит но теперь и не лечит))) 
 | 
 
|   | 
 |    |  
| 
Vor4uN
 | 
Дата: Суббота, 15.02.2014, 23:07:02 | Сообщение # 6 |  
  
  |  
Сообщений: 49
 
Репутация: 3 [ +/- ]
 |   
 | 
 SetEntProp(entity, Prop_Data, "m_CollisionGroup", 2); пробуй ил -1 или 6 
  
 | 
 
|   | 
 |    |  
| 
Tokami
 | 
Дата: Воскресенье, 16.02.2014, 00:36:34 | Сообщение # 7 |  
  
  |  
Сообщений: 238
 
Репутация: 19 [ +/- ]
 |   
 | 
6 пробывал 2 пробывал -1 щяс попробуем) и -1 тоже нет(((Добавлено (16.02.2014, 00:36:34) --------------------------------------------- imode & 32 ? SetEntProp(entity, Prop_Send, "m_CollisionGroup", 4):0; попытался так не помогло(((  
 
 Сообщение отредактировал Tokami - Воскресенье, 16.02.2014, 00:04:21  | 
 
|   | 
 |    |  
| 
Vor4uN
 | 
Дата: Воскресенье, 16.02.2014, 08:31:40 | Сообщение # 8 |  
  
  |  
Сообщений: 49
 
Репутация: 3 [ +/- ]
 |   
 | 
 Скинь sp сюда посмотрю сам попробую, есть идейка одна 
 | 
 
|   | 
 |    |  
| 
Tokami
 | 
Дата: Воскресенье, 16.02.2014, 15:13:45 | Сообщение # 9 |  
  
  |  
Сообщений: 238
 
Репутация: 19 [ +/- ]
 |   
 | 
 Можешь взять код верху а то у меня приватная аптечка не хотел бы ее выкладывать сюда)) 
 | 
 
|   | 
 |    |  
| 
Vor4uN
 | 
Дата: Понедельник, 17.02.2014, 11:18:22 | Сообщение # 10 |  
  
  |  
Сообщений: 49
 
Репутация: 3 [ +/- ]
 |   
 | 
Цитата Tokami (  )  у меня приватная аптечка не хотел бы ее выкладывать сюда     Ну тогда извини , делай сам. 
 | 
 
|   | 
 |    |  
| 
Tokami
 | 
Дата: Пятница, 21.02.2014, 15:23:20 | Сообщение # 11 |  
  
  |  
Сообщений: 238
 
Репутация: 19 [ +/- ]
 |   
 | 
Vor4uN, я же выложил sp считай верху просто это надо в текстовый реадактор перенести и скольпилить!   А файл я не могу прикрепить почему((Добавлено (21.02.2014, 15:23:20) --------------------------------------------- Ребят так чего не кто не в курсе как сделать а то хилка блочит и это бесит:D  
 | 
 
|   | 
 |    |  
| 
ThRunningMan
 | 
Дата: Пятница, 21.02.2014, 22:18:50 | Сообщение # 12 |  
  
  |  
Сообщений: 140
 
Репутация: 12 [ +/- ]
 |   
 | 
попрообуй   CreateEntityByName("prop_physics_override")   SetEntProp(entity, Prop_Data, "m_CollisionGroup", 11);   SetEntProp(entity, Prop_Send, "m_nSolidType", 6);Добавлено (21.02.2014, 22:18:50) --------------------------------------------- Если не получится, то попробуй, игонорируя мои верхние изменения, внести изменения в свой код в виде   SetEntProp(entity, Prop_Data, "m_CollisionGroup", 17);  
 | 
 
|   | 
 |    |  
| 
sssw
 | 
Дата: Суббота, 22.02.2014, 01:54:06 | Сообщение # 13 |  
  
  |  
Сообщений: 123
 
Репутация: 14 [ +/- ]
 |   
 | 
 ... 
 
 Сообщение отредактировал sssw - Суббота, 22.02.2014, 21:48:14  | 
 
|   | 
 |    |  
| 
Tokami
 | 
Дата: Суббота, 22.02.2014, 02:37:24 | Сообщение # 14 |  
  
  |  
Сообщений: 238
 
Репутация: 19 [ +/- ]
 |   
 | 
Нет не помогло :(Добавлено (22.02.2014, 02:37:24) --------------------------------------------- Она не блочит но и не хилит(((  
 | 
 
|   | 
 |    |  
| 
nailllain
 | 
Дата: Суббота, 22.02.2014, 10:15:40 | Сообщение # 15 |  
  
  |  
Сообщений: 14
 
Репутация: 2 [ +/- ]
 |   
 | 
 Сделай вместо касания, проверку на дистанцию от человека к аптечке. Как показано в это теме: "http://world-source.ru/forum/100-2385-1" - #2 пост. 
 | 
 
|   | 
 |    |     
		
		
 
 |