Danyas
Участник
- Сообщения
- 2,173
- Реакции
- 1,072
Код ниже.
В раунде спавнится 30 игроков за ТТ и 1 за КТ.
Со мной (КТ) - всё в порядке, всё выдается, а вот на нескольких (0-6 игроков) игроков ТТ бывает код не срабатывает.
Это, последняя версия кода, уже 3 часа не могу исправить проблему.
Что делал:
1) Добавлял таймер (стало еще хуже)
2) менял свичи на if и наоборот
3) таскал куски кода туда-обратно
В раунде спавнится 30 игроков за ТТ и 1 за КТ.
Со мной (КТ) - всё в порядке, всё выдается, а вот на нескольких (0-6 игроков) игроков ТТ бывает код не срабатывает.
Это, последняя версия кода, уже 3 часа не могу исправить проблему.
Что делал:
1) Добавлял таймер (стало еще хуже)
2) менял свичи на if и наоборот
3) таскал куски кода туда-обратно
PHP:
public OnPluginStart()
{
HookEvent("player_spawn", Event_PlayerSpawn);
}
...
public Action:Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
new team = GetClientTeam(client);
if (team != 2 && team != 3)
{
return;
}
if(team == 2)
{
new cCount = GetTeamClientCount(3);
new Class;
if(dayseting_Boss[iDay])
{
Class = GetRandomInt(0, iBossesCount);
SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", GetRandomFloat(boss_SpeedMin[Class], boss_SpeedMax[Class]) * dayseting_Speed[iDay]);
SetEntData(client, g_iHealth, RoundToNearest(((GetRandomInt(boss_HealthMin[Class], boss_HealthMax[Class]) + dayseting_HealthBoost[iDay]) + (dayseting_PerPlayerBoost[iDay] == 0 ? 0 : cCount + dayseting_PerPlayerBoost[iDay])) * (dayseting_PerPlayerRatio[iDay] == 0.0 ? 1.0 : dayseting_PerPlayerRatio[iDay] * cCount)));
SetEntityModel(client, boss_Model[Class]);
}
else
{
Class = GetRandomInt(0, iClassCount);
SetEntPropFloat(client, Prop_Send, "m_flLaggedMovementValue", GetRandomFloat(class_SpeedMin[Class], class_SpeedMax[Class]) * dayseting_Speed[iDay]);
SetEntData(client, g_iHealth, RoundToNearest(((GetRandomInt(class_HealthMin[Class],class_HealthMax[Class]) + dayseting_HealthBoost[iDay]) + (dayseting_PerPlayerBoost[iDay] == 0 ? 0 : cCount + dayseting_PerPlayerBoost[iDay])) * (dayseting_PerPlayerRatio[iDay] == 0.0 ? 1.0 : dayseting_PerPlayerRatio[iDay] * cCount)));
SetEntityModel(client, class_Model[Class]);
}
new knife = GetPlayerWeaponSlot(client, 2);
if (knife != -1)
{
SetEntityRenderMode(knife, RENDER_TRANSALPHA);
SetEntityRenderColor(knife, 255, 255, 255, 0);
}
new glock = GetPlayerWeaponSlot(client, 1);
if (glock != -1)
{
RemovePlayerItem(client, glock);
AcceptEntityInput(glock, "Kill");
}
}
else
{
SetEntData(client, g_offsCollisionGroup, 2, 4, true);
if (0 < g_stats[rank][client] <= 15)
{
if (g_stats[rank][client] <= 10)
{
new bool:w[2];
new usp = GetPlayerWeaponSlot(client, 1);
if (usp != -1)
{
new String:sWeapon[32];
GetEdictClassname(usp, sWeapon, sizeof(sWeapon));
if(StrEqual(sWeapon, "weapon_usp") || (Engine_Version == GAME_CSGO && StrEqual(sWeapon, "weapon_p2000")))
{
RemovePlayerItem(client, usp);
AcceptEntityInput(usp, "Kill");
GivePlayerItem(client, "weapon_elite");
w[0] = true;
}
}
if(g_stats[rank][client] <= 5)
{
if(GetPlayerWeaponSlot(client, 0) == -1)
{
GivePlayerItem(client, "weapon_ak47");
w[1] = true;
}
switch(Engine_Version)
{
case GAME_CSS_34: PrintToChat(client, "\x04[\x03TOP5\x03]\x01 Вы получили \x04увеличеный урон\x01 на \x0350%%\x01 %s%s и \x03+100 HP\x01.", w[1] ? ", \x04AK-47\x01" : "", w[0] ? ", \x04двойные берреты\x01 " : "");
case GAME_CSS: PrintToChat(client, "\x05[\x04TOP5\x05]\x01 Вы получили \x03увеличеный урон\x01 на \x0550%%\x01 %s%s и \x05+100 HP\x01.", w[1] ? ", \x04AK-47\x01" : "", w[0] ? ", \x04двойные берреты\x01 " : "");
case GAME_CSGO: PrintToChat(client, "\x0E[\x10TOP5\x0E]\x01 Вы получили \x08увеличеный урон\x01 на \x0450%%\x01 %s%s и \x04+100 HP\x01.", w[1] ? ", \x08AK-47\x01" : "", w[0] ? ", \x08двойные берреты\x01 " : "");
}
SetEntData(client, g_iHealth, 200);
}
else
{
switch(Engine_Version)
{
case GAME_CSS_34: PrintToChat(client, "\x04[\x03TOP10\x03]\x01 Вы получили \x04увеличеный урон\x01 на \x0325%%\x01%s и\x03+50 HP\x01.", w[0] ? ", \x04двойные берреты\x01" : "");
case GAME_CSS: PrintToChat(client, "\x05[\x04TOP10\x05]\x01 Вы получили \x03увеличеный урон\x01 на \x0525%%\x01%s и\x05+50 HP\x01.", w[0] ? ", \x04двойные берреты\x01" : "");
case GAME_CSGO: PrintToChat(client, "\x0E[\x10TOP10\x0E]\x01 Вы получили \x08увеличеный урон\x01 на \x0425%%\x01%s и\x04+50 HP\x01.", w[0] ? ", \x08двойные берреты\x01" : "");
}
SetEntData(client, g_iHealth, 150);
}
}
else
{
if(GetPlayerWeaponSlot(client, 0) == -1)
{
switch(Engine_Version)
{
case GAME_CSS_34: PrintToChat(client, "\x04[\x03TOP15\x03]\x01 Вы получили \x04увеличеный урон\x01 на \x0310%%\x01 и оружие \x04TMP\x01.");
case GAME_CSS: PrintToChat(client, "\x05[\x04TOP15\x05]\x01 Вы получили \x03увеличеный урон\x01 на \x0510%%\x01 и оружие \x04TMP\x01.");
case GAME_CSGO: PrintToChat(client, "\x0E[\x10TOP15\x0E]\x01 Вы получили \x08увеличеный урон\x01 на \x0410%%\x01 и оружие \x08TMP\x01.");
}
GivePlayerItem(client, "weapon_tmp");
}
}
}
}
}