Блок
| |
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 пост.
|
|
| |
|