AlexPa1
Участник
- Сообщения
- 292
- Реакции
- 54
А можно убрать окрашивание при защите а то у меня раскраска скинов стоит и уберается@alex123pavlov, проверяйте.
А можно убрать окрашивание при защите а то у меня раскраска скинов стоит и уберается@alex123pavlov, проверяйте.
@alex123pavlov, вроде убрал.
такое и в сурсе есть, но только в ксго индекс может быть -1Я так и не понял, как это возможно в CS:GO, что инвалидный игрок как-то пишет в чат.
Блин проскакивает баг, пропадает оружие и игрок полностью невидимый =)@alex123pavlov, компилятор по факту умный. Он и сам исправил эту ошибку, просто оповестил о том, что она есть. Но вот, если мозолит глаза.
А можно как то сделать,типо он написал !medic и только через 5 секунд команда активировалась,ну и естественно отсчет в чате что бы был?@BossKotoriiNeSmok, ОффтопСколько попыток сделать банальный плагин :biggrin::clapp:PHP:bool bUsed[MAXPLAYERS+1]; int iHP, g_iMaxHealth; public Plugin myinfo = { name = "Medic", author = "Grey83", description = "Лечение единожды за раунд игрока, написавшего команду", version = "1.0", url = "https://steamcommunity.com/groups/grey83ds" }; public void OnPluginStart() { ConVar CVar; (CVar = CreateConVar("sm_medic_addhp", "50", "На какое значение увеличивать здоровье (0 - отключить плагин)", _, true)).AddChangeHook(CVarChanged_AddHP); iHP = CVar.IntValue; (CVar = CreateConVar("sm_medic_maxhp", "100", "Максимальное значение HP", _, true, 1.0)).AddChangeHook(CVarChanged_MaxHP); g_iMaxHealth = CVar.IntValue; HookEvent("round_start", Event_NewRound); RegConsoleCmd("sm_medic", Cmd_Medic); RegConsoleCmd("sm_med", Cmd_Medic); AutoExecConfig(true, "medic"); } public void CVarChanged_MaxHP(ConVar CVar, const char[] oldVal, const char[] newVal) { g_iMaxHealth = CVar.IntValue; } public void CVarChanged_AddHP(ConVar CVar, const char[] oldVal, const char[] newVal) { iHP = CVar.IntValue; } public void Event_NewRound(Event event, char[] name, bool dontBroadcast) { for(int i; i <= MaxClients; i++) bUsed[i] = false; } public Action Cmd_Medic(int client, int args) { if(!client || !iHP || !IsPlayerAlive(client)) return Plugin_Handled; if(bUsed[client]) { PrintToChat(client, "Вы можете использовать эту команду только 1 раз за раунд!"); return Plugin_Handled; } int HP; if((HP = GetClientHealth(client) + iHP) <= g_iMaxHealth) { PrintToChat(client, "Ваше здоровье восполнено"); SetEntityHealth(client, HP); bUsed[client] = true; } return Plugin_Handled; }
L 07/19/2018 - 12:05:02: Info (map "de_dust2") (file "errors_20180719.log")
L 07/19/2018 - 12:05:02: [SM] Exception reported: Array index out-of-bounds (index 8, limit 8)
L 07/19/2018 - 12:05:02: [SM] Blaming: rankme.smx
L 07/19/2018 - 12:05:02: [SM] Call stack trace:
L 07/19/2018 - 12:05:02: [SM] [1] Line 1520, H:\VEC\CSGO\sourcemod-1.5.0-hg3756-windows\addons\sourcemod\scripting\rankme.sp::EventPlayerHurt
И можно еще добавить,когда у человек больше,чем 50 хп,что бы ему писало,оту такое чувство,что плагин не работает:D@BossKotoriiNeSmok, ОффтопСколько попыток сделать банальный плагин :biggrin::clapp:PHP:bool bUsed[MAXPLAYERS+1]; int iHP, g_iMaxHealth; public Plugin myinfo = { name = "Medic", author = "Grey83", description = "Лечение единожды за раунд игрока, написавшего команду", version = "1.0", url = "https://steamcommunity.com/groups/grey83ds" }; public void OnPluginStart() { ConVar CVar; (CVar = CreateConVar("sm_medic_addhp", "50", "На какое значение увеличивать здоровье (0 - отключить плагин)", _, true)).AddChangeHook(CVarChanged_AddHP); iHP = CVar.IntValue; (CVar = CreateConVar("sm_medic_maxhp", "100", "Максимальное значение HP", _, true, 1.0)).AddChangeHook(CVarChanged_MaxHP); g_iMaxHealth = CVar.IntValue; HookEvent("round_start", Event_NewRound); RegConsoleCmd("sm_medic", Cmd_Medic); RegConsoleCmd("sm_med", Cmd_Medic); AutoExecConfig(true, "medic"); } public void CVarChanged_MaxHP(ConVar CVar, const char[] oldVal, const char[] newVal) { g_iMaxHealth = CVar.IntValue; } public void CVarChanged_AddHP(ConVar CVar, const char[] oldVal, const char[] newVal) { iHP = CVar.IntValue; } public void Event_NewRound(Event event, char[] name, bool dontBroadcast) { for(int i; i <= MaxClients; i++) bUsed[i] = false; } public Action Cmd_Medic(int client, int args) { if(!client || !iHP || !IsPlayerAlive(client)) return Plugin_Handled; if(bUsed[client]) { PrintToChat(client, "Вы можете использовать эту команду только 1 раз за раунд!"); return Plugin_Handled; } int HP; if((HP = GetClientHealth(client) + iHP) <= g_iMaxHealth) { PrintToChat(client, "Ваше здоровье восполнено"); SetEntityHealth(client, HP); bUsed[client] = true; } return Plugin_Handled; }
Level Ranks - полностью рабочий аналог с главным отличием, он поддерживается автором.C-подобный:L 07/19/2018 - 12:05:02: Info (map "de_dust2") (file "errors_20180719.log") L 07/19/2018 - 12:05:02: [SM] Exception reported: Array index out-of-bounds (index 8, limit 8) L 07/19/2018 - 12:05:02: [SM] Blaming: rankme.smx L 07/19/2018 - 12:05:02: [SM] Call stack trace: L 07/19/2018 - 12:05:02: [SM] [1] Line 1520, H:\VEC\CSGO\sourcemod-1.5.0-hg3756-windows\addons\sourcemod\scripting\rankme.sp::EventPlayerHurt
if (hitgroup == 0) // Player was hit by knife, he, flashbang, or smokegrenade.
return;
if(hitgroup == 8) hitgroup = 1; //Приравниваем шею к голове
Должно получится так?@BossKotoriiNeSmok, это из-за шеи
строка 1516, сделай так
PHP:if (hitgroup == 0) // Player was hit by knife, he, flashbang, or smokegrenade. return; if(hitgroup == 8) hitgroup = 1; //Приравниваем шею к голове
{
if(!g_bEnabled || !g_bGatherStats)
return;
new victim = GetClientOfUserId(GetEventInt(event,"userid"));
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
if(!g_bRankBots && (attacker == 0 || IsFakeClient(victim) || IsFakeClient(attacker)))
return;
if(victim != attacker && attacker >0 && attacker <MAXPLAYERS){
new hitgroup = GetEventInt(event,"hitgroup");
if (hitgroup == 0) // Player was hit by knife, he, flashbang, or smokegrenade.
return;
if(hitgroup == 8) hitgroup = 1; //Приравниваем шею к голове
return;
g_aStats[attacker][HITS]++;
g_aSession[attacker][HITS]++;
g_aHitBox[attacker][hitgroup]++;
//PrintToChat(attacker, "Hitgroup %i: %i hits", hitgroup, g_aHitBox[attacker][hitgroup]);
//PrintToServer("Stats Hits: %i\nSession Hits: %i\nHitBox %i -> %i",g_aStats[attacker][HITS],g_aSession[attacker][HITS],hitgroup,g_aHitBox[attacker][hitgroup]);
}
}
Да,вот только там нет,топ хедшотов,топ оружий и т.п.Level Ranks - полностью рабочий аналог с главным отличием, он поддерживается автором.
Это да, но только при режиме статистики ELO у игроков с высоким званием снимается по 30+ очков за смерть, что ни очень приятно :ab:Level Ranks - полностью рабочий аналог с главным отличием, он поддерживается автором.
ОффтопДолжно получится так?
{
if(!g_bEnabled || !g_bGatherStats)
return;
new victim = GetClientOfUserId(GetEventInt(event,"userid"));
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
if(!g_bRankBots && (attacker == 0 || IsFakeClient(victim) || IsFakeClient(attacker)))
return;
if(victim != attacker && attacker >0 && attacker <MAXPLAYERS){
new hitgroup = GetEventInt(event,"hitgroup");
if (hitgroup == 0) // Player was hit by knife, he, flashbang, or smokegrenade.
return;
if(hitgroup == 8) hitgroup = 1; //Приравниваем шею к голове
return;
g_aStats[attacker][HITS]++;
g_aSession[attacker][HITS]++;
g_aHitBox[attacker][hitgroup]++;
//PrintToChat(attacker, "Hitgroup %i: %i hits", hitgroup, g_aHitBox[attacker][hitgroup]);
//PrintToServer("Stats Hits: %i\nSession Hits: %i\nHitBox %i -> %i",g_aStats[attacker][HITS],g_aSession[attacker][HITS],hitgroup,g_aHitBox[attacker][hitgroup]);
}
}
{
if(!g_bEnabled || !g_bGatherStats)
return;
new victim = GetClientOfUserId(GetEventInt(event,"userid"));
new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));
if(!g_bRankBots && (attacker == 0 || IsFakeClient(victim) || IsFakeClient(attacker)))
return;
if(victim != attacker && attacker >0 && attacker <MAXPLAYERS){
new hitgroup = GetEventInt(event,"hitgroup");
if (hitgroup == 0) // Player was hit by knife, he, flashbang, or smokegrenade.
return;
if(hitgroup == 8) hitgroup = 1; //Приравниваем шею к голове
g_aStats[attacker][HITS]++;
g_aSession[attacker][HITS]++;
g_aHitBox[attacker][hitgroup]++;
//PrintToChat(attacker, "Hitgroup %i: %i hits", hitgroup, g_aHitBox[attacker][hitgroup]);
//PrintToServer("Stats Hits: %i\nSession Hits: %i\nHitBox %i -> %i",g_aStats[attacker][HITS],g_aSession[attacker][HITS],hitgroup,g_aHitBox[attacker][hitgroup]);
}
}
да без разницы. такое встречается в основном при смене карты, если игроки попадают в нужный тайминг отправки команды.Последняя Стимовская или v34?