Рекомендованные сообщения



8 posts in this topic

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

Спойлер

image.php?di=LZIH

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

Share this post


Link to post
Share on other sites

код где кикает 

Share this post


Link to post
Share on other sites

@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);
			}

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

@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;
}
 

 

Share this post


Link to post
Share on other sites
1 час назад, Timur_Top сказал:

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

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

Share this post


Link to post
Share on other sites

@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.

 

Share this post


Link to post
Share on other sites

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

playerid

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

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

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • GhostWill
      By GhostWill
      Список доработок:
      Система квестов.
      Система инвентаря(не готова).
      Донат меню на текстдравах.
      И много мелких доработок!
    • GhostWill
      By GhostWill


      Просмотр файла SELL | Доработка мода SOCIAL RP
      Список доработок:
      Система квестов.
      Система инвентаря(не готова).
      Донат меню на текстдравах.
      И много мелких доработок!
      Добавил GhostWill Добавлено 24.11.2020 Категория Моды Автор ghostdev  
    • glvde.
      By glvde.
      Хранение данных (версия MySQL): R41-4.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 44006.
      Анти-чит: Nexius-AC.
      Автор данного мода: -.

      Скриншоты: 
       
       
       
       
       

      На данный момент, мод продаётся за 3699₽ на соседнем борде Pawno-Info (не реклама, скрины взял из темы с продажей).

      Не исключаю того, что в моде имеются баги.
      По поводу дальнейшей доработки узнать можно будет в моей группе - vk.com/way_dev
    • glvde.
      By glvde.
      Smart RolePlay | Новый слив с продажи
      Просмотр файла Хранение данных (версия MySQL): R41-4.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 44006.
      Анти-чит: Nexius-AC.
      Автор данного мода: -.

      Скриншоты: 
       
       
       
       
       

      На данный момент, мод продаётся за 3699₽ на соседнем борде Pawno-Info (не реклама, скрины взял из темы с продажей).

      Не исключаю того, что в моде имеются баги.
      По поводу дальнейшей доработки узнать можно будет в моей группе - vk.com/way_dev
      Добавил glvde. Добавлено 21.01.2021 Категория Моды Автор -  
    • Ekaterina
      By Ekaterina
      Помогите, не могу решить проблему, Основа мода Rayon Rp , подключаю ботов , заходит максимум 3 и их сразу банит, помогите!