Вопросы

Кидаю игрока в тюрьму и человека кикает за "Побег"

Спойлер

image.php?di=LZIH

Помогите пожалуйста

Поделиться сообщением


Ссылка на сообщение

7 ответов на этот вопрос

  • 0
1 час назад, Timur_Top сказал:

if(PosX < 220 || PosX > 227 || PosY < 105 || PosY > 114 || PosZ < 997 || PosZ > 1001)

вот здесь координаты поменять на координаты текущей тюрьмы. Советую вообще сделать вот так: 
if(!IsPlayerInRangeOfPoint(playerid, 100.0, координаты_спавна_в_тюрьме)) 

Поделиться сообщением


Ссылка на сообщение
  • 0

@MuhammadPawn Больше не нашел: 

			if(swper != 0)//если указатель НЕ равен 0, то:
			{
				switch(swper)
				{
					case 1: format(string, sizeof(string), "* Игрок %s [%d] был кикнут - не заспавнился в течение трёх минут !", playnam333, i);
					case 2: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за смену ника ( f. %s ) !", playnam333, i, RealName[i]);
					case 5: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за побег из тюрьмы (или из-под стражи) !", playnam333, i);
					case 6: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за спам в чате (или в командах) !", playnam333, i);
					case 7: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за чит флуда функций !", playnam333, i);
					case 8: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за чит флуда диалогов !", playnam333, i);
					case 9: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за чит вызова админ-меню !", playnam333, i);
				}
				print(string);
				SendClientMessageToAll(COLOR_RED, string);
				SetTimerEx("PlayKick", 300, 0, "i", i);
			}

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Timur_Top где он находиться, киньте больше кода, а не огрызок из 10 строк.

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST Вот весь паблик с киком 

Спойлер

forward OneSecOnd();
public OneSecOnd()
{
    gettime(timedata[0], timedata[1]);
    new PlayVeh;
    new swper;//античит
    new play333weap[13], play333ammo[13], dopper333;//контроль запаса патров
    new Float:PosX, Float:PosY, Float:PosZ;//проверка игрока в X-зоне
    new playnam333[MAX_PLAYER_NAME];
    new string[256];
    {
        
    }
    if(nucexplos == 1)//если на сервере ядерный взрыв, то:
    {
        SetWeather(19);
        SetWorldTime(0);
    }
    for(new i = 0; i < MAX_PLAYERS; i++)//цикл для всех игроков
    {
        if(IsPlayerConnected(i))//дальнейшее выполняем если игрок в коннекте
        {
            if(nucexplos == 1)//если на сервере ядерный взрыв, то:
            {
                if(SnowONOFF == 1)
                {
                    new Float:hp;
                    SetPlayerArmour(i, 0);
                    GetPlayerHealth(i, hp);
                    SetPlayerHealth(i, hp-10);
                    GetPlayerCameraPos(i, PosX, PosY, PosZ);
                    MovePlayerObject(i, snowobj, PosX, PosY, PosZ-5, 9999.0);
                }
            }
            PlayVeh = GetPlayerVehicleID(admper1);
            if(admper1 != 600)//если игрок - админ ведущий наблюдение, то:
            {
                if(PlayVeh != 0 && admper5 == 0)//если игрок в транспорте,
                {//И мы наблюдали за игроком, то:
                    PlayerSpectateVehicle(i, PlayVeh, SPECTATE_MODE_NORMAL);
                    admper5 = 1;//наблюдаем за транспортом
                }
                if(PlayVeh == 0 && admper5 == 1)//если игрок НЕ в транспорте,
                {//И мы наблюдали за транспортом, то:
                    PlayerSpectatePlayer(i, admper1, SPECTATE_MODE_NORMAL);
                    admper5 = 0;//наблюдаем за игроком
                }
                if(admper5 == 3)//если устанавлен второй цикл переключение наблюдения, то:
                {
                    PlayerSpectateVehicle(i, PlayVeh, SPECTATE_MODE_NORMAL);
                    admper5 = 1;//наблюдаем за транспортом
                }
                if(admper5 == 2)//если устанавленно переключение наблюдения, то:
                {
                    PlayerSpectatePlayer(i, admper1, SPECTATE_MODE_NORMAL);//наблюдаем за игроком
                    admper5 = 3;//устанавливаем второй цикл переключения наблюдения
                }
                if(admper6 == 2)//если переключение наблюдения состоялось, то:
                {
                    admper6 = 0;//обнуляем отметку о переключении наблюдения
                }
                if(admper6 == 1)//если отметка о переключении наблюдения активна, то:
                {
                    SetPlayerInterior(i, GetPlayerInterior(admper1));//установить интерьер админу
                    SetPlayerVirtualWorld(i, GetPlayerVirtualWorld(admper1));//установить мир админу
                    if(PlayVeh != 0)//если игрок в транспорте, то:
                    {
                        PlayerSpectateVehicle(i, PlayVeh, SPECTATE_MODE_NORMAL);
                        admper5 = 1;//наблюдаем за транспортом
                    }
                    else
                    {
                        PlayerSpectatePlayer(i, admper1, SPECTATE_MODE_NORMAL);//включить наблюдение
                        admper5 = 0;//наблюдаем за игроком
                    }
                    admper6 = 2;//делаем отметку о переключении наблюдения
                }
                if(((GetPlayerInterior(i) != GetPlayerInterior(admper1)) ||
                (GetPlayerVirtualWorld(i) != GetPlayerVirtualWorld(admper1))) && admper6 == 0)
                {//если у игрока (за кем наблюдает админ) изменился интерьер ИЛИ виртуальный мир, И отметка о переключении наблюдения НЕ активна, то:
                    admper6 = 1;//активируем отметку о переключении наблюдения
                }
            }
            if(PlayerInfo[pMutedsec] > 0)//если игрок заткнут, то:
            {
                PlayerInfo[pMutedsec]--;
                if(PlayerInfo[pMutedsec] <= 0)
                {
                    PlayerInfo[pMutedsec] = 0;
                    format(string, sizeof(string), "* Игрок %s [%d] разоткнут.", RealName, i);
                    print(string);
                    SendClientMessageToAll(COLOR_GREEN, string);
                }
            }
            if(PlayerInfo[pPrisonsec] > 0)//если игрок в тюрьме, то:
            {
                PlayerInfo[pPrisonsec]--;
                if(PlayerInfo[pPrisonsec] <= 0)
                {
                    PlayerInfo[pPrisonsec] = 0;
                    format(string, sizeof(string), "* Игрок %s [%d] освобождён.", RealName, i);
                    print(string);
                    SendClientMessageToAll(COLOR_GREEN, string);
                    weapstatplay = 0;
                    OnPlayerSpawn(i);
                }
            }
            if(countdown>0)//если игрок запустил обратный отсчёт, то:
            {
                countdown-=1;
                GameTextForPlayer(i,str,950,4);
                PlayerPlaySound(i,1056,0.0,0.0,0.0);
                if(countdown<4)TogglePlayerControllable(i,0);
            }
            if(countdown==0)
            {
                TogglePlayerControllable(i,1);
                GameTextForPlayer(i,"~b~GO GO GO !",700,4);
                PlayerPlaySound(i,1057,0.0,0.0,0.0);
                countdown=-1;
            }
            swper = 0;//античит
            if(playspa == 0)
            {//если игрок не заспавнился, то:
                oneminkick++;
                if(oneminkick >= 380)
                {
                    swper = 1;//не заспавнился в течение трёх минут
                    oneminkick = 0;
                }
            }
            else//иначе
            {
                oneminkick = 0;//обнуляем переменную
            }
            GetPlayerName(i, playnam333, sizeof(playnam333));
            if(strcmp(playnam333, RealName, false) != 0)
            {
                swper = 2;//чит на смену ника
            }
            GetPlayerPos(i, PosX, PosY, PosZ);
            if(playspa == 1 && PlayerInfo[pPrisonsec] > 0)
            {//проверка игрока в тюрьме
                if(prisoncount == 3)
                {
                    if(PosX < 220 || PosX > 227 || PosY < 105 || PosY > 114 || PosZ < 997 || PosZ > 1001)
                    {//если игрок САМ вышел из тюрьмы, то:
                        swper = 5;//побег из тюрьмы
                    }
                }
                else
                {
                    prisoncount++;
                }
            }
            if(PlayerInfo[pPrisonsec] == 0 && prisoncount != 0)
            {//обнуление задержки контроля игрока в тюрьме, если она НЕ равна нулю
                prisoncount = 0;
            }
            if((chatcon > 1 || GetPVarInt(i, "CComAc0") > 1 || GetPVarInt(i, "CComAc1") > 1 ||
            GetPVarInt(i, "CComAc2") > 1 || GetPVarInt(i, "CComAc3") > 1 || GetPVarInt(i, "CComAc4") > 1 ||
            GetPVarInt(i, "CComAc5") > 1 || GetPVarInt(i, "CComAc6") > 1 || GetPVarInt(i, "CComAc7") > 1 ||
            GetPVarInt(i, "CComAc8") > 1 || GetPVarInt(i, "CComAc9") > 1 || GetPVarInt(i, "CComAc10") > 1 ||
            GetPVarInt(i, "CComAc11") > 1 || GetPVarInt(i, "CComAc12") > 1 || GetPVarInt(i, "CComAc13") > 1 ||
            GetPVarInt(i, "CComAc14") > 1 || GetPVarInt(i, "CComAc15") > 1) &&
            PlayerInfo[pAdmin] == 0)//если игрок написал более 1-й строки за 1 секунду,
            {//и если игрок НЕ админ, то:
                swper = 6;//спам в чате (или в командах)
            }
            chatcon = 0;//обнуляем контрольную переменную чата
            SetPVarInt(i, "CComAc0", 0);
            SetPVarInt(i, "CComAc1", 0);
            SetPVarInt(i, "CComAc2", 0);
            SetPVarInt(i, "CComAc3", 0);
            SetPVarInt(i, "CComAc4", 0);
            SetPVarInt(i, "CComAc5", 0);
            SetPVarInt(i, "CComAc6", 0);
            SetPVarInt(i, "CComAc7", 0);
            SetPVarInt(i, "CComAc8", 0);
            SetPVarInt(i, "CComAc9", 0);
            SetPVarInt(i, "CComAc10", 0);
            SetPVarInt(i, "CComAc11", 0);
            SetPVarInt(i, "CComAc12", 0);
            SetPVarInt(i, "CComAc13", 0);
            SetPVarInt(i, "CComAc14", 0);
            SetPVarInt(i, "CComAc15", 0);
            if(functioncon > 5)//если игрок вызвал функции более 5-и раз за 1 секунду, то:
            {
                swper = 7;//чит вызова функций
                functioncon = 0;//обнуляем контрольную переменную функций
            }
            else//иначе
            {
                functioncon = 0;//обнуляем контрольную переменную функций
            }
            if(dialogcon > 15)//если игрок вызвал диалоги более 15-и раз за 1 секунду, то:
            {
                swper = 8;//чит вызова диалогов
                dialogcon = 0;//обнуляем контрольную переменную диалогов
            }
            else//иначе
            {
                dialogcon = 0;//обнуляем контрольную переменную диалогов
            }
            if(dialogadm == 1)//если игрок вызвал админ-меню, то:
            {
                swper = 9;//чит вызова админ-меню
                dialogadm = 0;//обнуляем контрольную переменную админ-меню
            }
            dopper333 = 0;//контроль запаса патров и удаление чит-слотов
            for(new j = 0; j < 13; j++)//читаем все слоты
            {
                GetPlayerWeaponData(i, j, play333weap[j], play333ammo[j]);
            }
            if(play333ammo[0] > 1) { play333ammo[0] = 1; dopper333 = 1; }//выравнивание запаса патронов
            if(play333ammo[1] > 1) { play333ammo[1] = 1; dopper333 = 1; }
            if(play333ammo[2] > 400) { play333ammo[2] = 400; dopper333 = 1; }
            if(play333ammo[3] > 400) { play333ammo[3] = 400; dopper333 = 1; }
            if(play333ammo[4] > 1200) { play333ammo[4] = 1200; dopper333 = 1; }
            if(play333ammo[5] > 1200) { play333ammo[5] = 1200; dopper333 = 1; }
            if(play333ammo[6] > 400) { play333ammo[6] = 400; dopper333 = 1; }
            if((play333weap[7] == 35 || play333weap[7] == 36) && play333ammo[7] > 400) { play333ammo[7] = 400; dopper333 = 1; }
            if((play333weap[7] == 37 || play333weap[7] == 38) && play333ammo[7] > 2000) { play333ammo[7] = 2000; dopper333 = 1; }
            if(play333ammo[8] > 400) { play333ammo[8] = 400; dopper333 = 1; }
            if(play333ammo[9] > 2000) { play333ammo[9] = 2000; dopper333 = 1; }
            if(play333weap[10] >= 10 && play333weap[10] <= 13) { play333weap[10] = 0; play333ammo[10] = 0; dopper333 = 1; }//удаление ВООБЩЕ ЗАПРЕЩЁННЫХ предметов
            if(play333ammo[10] > 1) { play333ammo[10] = 1; dopper333 = 1; }
            if((play333weap[11] == 44 || play333weap[11] == 45) && PlayerInfo[pAdmin] == 0) { play333weap[11] = 0; play333ammo[11] = 0; dopper333 = 1; }
            if(play333ammo[11] > 1) { play333ammo[11] = 1; dopper333 = 1; }
            if(dopper333 == 1)
            {
                ResetPlayerWeapons(i);//отбираем оружие и предметы
                for(new j = 0; j < 13; j++)//сохраняем все слоты
                {
                    GivePlayerWeapon(i, play333weap[j], play333ammo[j]);
                }
            }
            if(swper != 0)//если указатель НЕ равен 0, то:
            {
                switch(swper)
                {
                    case 1: format(string, sizeof(string), "* Игрок %s [%d] был кикнут - не заспавнился в течение трёх минут !", playnam333, i);
                    case 2: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за смену ника ( f. %s ) !", playnam333, i, RealName);
                    case 5: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за побег из тюрьмы (или из-под стражи) !", playnam333, i);
                    case 6: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за спам в чате (или в командах) !", playnam333, i);
                    case 7: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за чит флуда функций !", playnam333, i);
                    case 8: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за чит флуда диалогов !", playnam333, i);
                    case 9: format(string, sizeof(string), "* Игрок %s [%d] был кикнут за чит вызова админ-меню !", playnam333, i);
                }
                print(string);
                SendClientMessageToAll(COLOR_RED, string);
                SetTimerEx("PlayKick", 300, 0, "i", i);
            }
            if(i >= Wind1SA && i < Wind2SA)//если ИД игрока "попадает" в "окно" автосохранения аккаунтов, то:
            {//делаем автосохранение этого аккаунта
                for(new j = 0; j < 13; j++)
                {
                    if(PlayerInfo[pPrisonsec] > 0)//если игрок в тюрьме,
                    {//то: сохраняем в файле слоты оружия из вспомогательных переменных
                        playweap[j] = play2weap[j];
                        playammo[j] = play2ammo[j];
                    }
                    else
                    {
                        GetPlayerWeaponData(i, j, playweap[j], playammo[j]);//если игрок НЕ в тюрьме, и НЕ на территории X-зоны,
                    }//и НЕ в зоне дерби, то: то сохраняем в файле его текущие слоты оружия
                }
                PlayerInfo[pCordX] = PosX;
                PlayerInfo[pCordY] = PosY;
                PlayerInfo[pCordZ] = PosZ;
                new Float:Angle;
                GetPlayerFacingAngle(i, Angle);
                PlayerInfo[pAngle] = Angle;
                OnPlayerSaveA(i);
                if(idgangsave > 0)
                {
                    GangSave(idgangsave);//запись ID банды в файл
                }
            }
        }
    }
    if(Wind2SA < (MAX_PLAYERS - 1))//если конец "окна" автосохранения аккаунтов меньше числа слотов сервера, то:
    {//сдвигаем "окно" в сторону увеличения ИД игроков
        Wind1SA = Wind1SA + WWindSA;
        Wind2SA = Wind2SA + WWindSA;
    }
    else//иначе:
    {
        Wind1SA = 0;//обнуляем начало "окна" автосохранения аккаунтов
        Wind2SA = WWindSA;//задаём конец "окна" автосохранения аккаунтов
    }
    return 1;
}
 

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST Ошибка:

C:\Users\Gazeta\Desktop\Server\gamemodes\2.pwn(23681) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

 

Поделиться сообщением


Ссылка на сообщение
  • 0

Исправил ошибку, вместо:

playerid

Поставил свою: 

if(!IsPlayerInRangeOfPoint(i, 100.0, 624.24, 2483.03, -96.03))

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };