StormX
Участник
- Сообщения
- 891
- Реакции
- 302
Вырезал поддержку CS:GO. Видимо старый движок определяется как Engine_CSGO (Что странно.. очень)
Все та же самая ошибка...
Вырезал поддержку CS:GO. Видимо старый движок определяется как Engine_CSGO (Что странно.. очень)
Создать 2 объекта и отправить разные объекты разным игрокамЗдрасьте. Хз как сделать, чтобы одному игроку отправило об объекте информацию одно, а другому игроку другую
Один из объектов - сам игрокСоздать 2 объекта и отправить разные объекты разным игрокам
Ну это как то не порядок. Может будут какие то идеи как переправить. Весь плагин пересмотрел но там нету команд...
Может кто написать простой плагин?
Чтобы игрокам показывало в HUD сообщении что остался последний игрок в противоположной команде.
Пример контров 2 а теров 1 показывает контрам, и наоборот, надеюсь понятно написал!
// ** Тип сообщения
#define TYPEMESSAGE 2 // 1 - Чат | 2 - Худ
// ** Показывать ли сообщение еще раз в раунде, если уже когда-то было покзано
#define RESET 0 // 1 - Показывать | Любое другое значение запретит
// ** Продолжительность худ сообщения (сколько секунд показывать худ сообщения игрокам?)
#define TIME 5.0
// ** Координаты худ сообщения, когда остался последний...
#define POSTX 0.005 // Террорист >> вправо|влево
#define POSTY 0.52 // Террорист >> вверх|вниз
#define POSCTX 0.005 // Контр-террорист >> вправо|влево
#define POSCTY 0.48 // Контр-террорист >> вверх|вниз
// ** Цвет (RGB) худ сообщения...
#define COLOR_T_R GetRandomInt(0, 255) // Террорист >> красный (В данный момент рандом)
#define COLOR_T_G GetRandomInt(0, 255) // Террорист >> зеленый (В данный момент рандом)
#define COLOR_T_B GetRandomInt(0, 255) // Террорист >> синий (В данный момент рандом)
#define COLOR_CT_R GetRandomInt(0, 255) // Контр-террорист >> красный (В данный момент рандом)
#define COLOR_CT_G GetRandomInt(0, 255) // Контр-террорист >> зеленый (В данный момент рандом)
#define COLOR_CT_B GetRandomInt(0, 255) // Контр-террорист >> синий (В данный момент рандом)
// ** Текст сообщения, когда остался последний... | * '%N' - ник последнего игрока
#define MESSAGETT "Остался последний террорист: %N" // Террорист
#define MESSAGECT "Остался последний контр-террорист: %N" // Контр-террорист
// =================================================================== CODE ===================================================================
#include <sdktools_gamerules>
public Plugin myinfo =
{
name = "Message - PlayerLast",
author = "Drumanid",
version = "1.0"
}
#define LC(%0) for(int %0 = 1; %0 <= MaxClients; ++%0) if(IsClientInGame(%0))
#define TEAM_T 2
#define TEAM_CT 3
bool g_bUse[2] = false;
EngineVersion g_Game;
public void OnPluginStart()
{
g_Game = GetEngineVersion();
HookEvent("round_start", RoundStart, EventHookMode_PostNoCopy);
HookEvent("player_death", PlayerDeath, EventHookMode_PostNoCopy);
HookEvent("player_spawn", PlayerSpawn);
}
public void RoundStart(Event event, const char[] name, bool dbc)
{
for(int i; i < 2; i++) g_bUse[i] = false;
}
public void PlayerDeath(Event event, const char[] name, bool dbc)
{
if(g_Game == Engine_CSGO) if(GameRules_GetProp("m_bWarmupPeriod")) return;
int iTt, iCt, iClient[2];
LC(i)
{
if(IsPlayerAlive(i))
{
switch(GetClientTeam(i))
{
case TEAM_T: if(++iTt < 2) iClient[0] = i;
case TEAM_CT: if(++iCt < 2) iClient[1] = i;
}
}
}
if(iTt == 1 && !g_bUse[0])
{
SendMessage(iClient[0], TEAM_T);
g_bUse[0] = true;
}
else if(iCt == 1 && !g_bUse[1])
{
SendMessage(iClient[1], TEAM_CT);
g_bUse[1] = true;
}
}
public void PlayerSpawn(Event event, const char[] name, bool dbc)
{
if(RESET == 1 && !g_bUse[0] || !g_bUse[1])
{
switch(GetClientTeam(GetClientOfUserId(event.GetInt("userid"))))
{
case TEAM_T: g_bUse[0] = false;
case TEAM_CT: g_bUse[1] = false;
}
}
}
void SendMessage(int iClient, int iTeam)
{
if(iClient > 0 && IsClientInGame(iClient)/* && IsPlayerAlive(iClient)*/)
{
char sBuffer[128];
switch(iTeam)
{
case TEAM_T: FormatEx(sBuffer, sizeof(sBuffer), MESSAGETT, iClient);
case TEAM_CT: FormatEx(sBuffer, sizeof(sBuffer), MESSAGECT, iClient);
}
switch(TYPEMESSAGE)
{
case 1:
{
LC(i) PrintToChat(i, sBuffer);
}
case 2:
{
switch(iTeam)
{
case TEAM_T: SetHudTextParams(POSTX, POSTY, TIME, COLOR_T_R, COLOR_T_G, COLOR_T_B, 255, 1, 1.0, 1.0, 1.0);
case TEAM_CT: SetHudTextParams(POSCTX, POSCTY, TIME, COLOR_CT_R, COLOR_CT_G, COLOR_CT_B, 255, 1, 1.0, 1.0, 1.0);
}
LC(i) ShowHudText(i, -1, sBuffer);
}
}
}
}
PHP:// ** Координаты худ сообщения #define POSTX 0.005 // Террорист >> вправо|влево #define POSTY 0.52 // Террорист >> вверх|вниз #define POSCTX 0.005 // Контр-террорист >> вправо|влево #define POSCTY 0.48 // Контр-террорист >> вверх|вниз
public void Ability_Use(Event event, const char [] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("userid"));
if (bSuperTanksEnabled)
{
if (client > 0)
{
if (IsClientInGame(client))
{
if (IsTank(client))
{
int index = GetSuperTankByRenderColor(GetEntityRenderColor(client)); // тут ошибка
if (index >= 0 && index <= 16)
{
if (index != 0 || (index == 0 && bDefaultOverride))
{
ResetInfectedAbility(client, flTankThrow[index]);
}
}
}
}
}
}
}
stock GetSuperTankByRenderColor(color)@alexmy, покажите функцию GetSuperTankByRenderColor().
а должно бытьstock GetSuperTankByRenderColor(color)
stock int GetSuperTankByRenderColor(int color)