Question

DreamHarakiri
React разработчик

Команда:

 

Спойлер

CMD:kick(playerid,params[])
{
    if(antiflood[playerid] > 0) return SendClientMessage(playerid, COLOR_WHITE,"Не флуди!");
    antiflood[playerid]++;
    if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WHITE,"Вы не авторизованы на сервере!");
    if(PLAYER_DATA[playerid][data_ADMLVL] < 2) return true;
	if(sscanf(params,"us[100]",params[0],params[1])) return SendClientMessage(playerid,COLOR_WHITE,"Используйте: /kick [ид] [причина]");
	if(!IsPlayerConnected(params[0]))return  SendClientMessage(playerid,COLOR_WHITE,"Данного ID нет на сервере!");
    //if(playerid == params[0]) return SendClientMessage(playerid,COLOR_WHITE,"Нельзя применить на себе!");
    if(PLAYER_DATA[params[0]][data_ADMLVL] > PLAYER_DATA[playerid][data_ADMLVL]) return SendClientMessage(playerid, COLOR_WHITE, "Нельзя применить к старшей администрации!");
    for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(!IsPlayerConnected(i)) continue;
		if(GetPVarInt(i,"gPlayerAaction") == 0)
	    {
	        new string[145];
			format(string, sizeof(string), "Администратор %s кикнул %s. Причина: %s",PLAYER_DATA[playerid][data_NAME],PLAYER_DATA[params[0]][data_NAME],params[1]);
			SendClientMessage(i,COLOR_BLUE,string);
		}
	}
	ShowPlayerDialog(playerid, dialog_OK, DIALOG_STYLE_MSGBOX, "{00BFFF}Уведомление", "{FFFFFF}Вы были {00BFFF}кикнуты {FFFFFF}по решению администрации.\nЕсли произошла ошибка вы можете написать в тех. поддержку\nГруппа: {00BFFF}vk.com/revin.helps", "Выход", "");
	{
		Kick(params[0]);
	}
	return true;
}

 

При кике игроку должен будет вылезать диалог

Share this post


Link to post

12 answers to this question

  • 0
LilPokemon
Гуру форума
2 минуты назад, Remmi_Feed сказал:

Команда:

 

  команда (закрыть спойлер)


CMD:kick(playerid,params[])
{
    if(antiflood[playerid] > 0) return SendClientMessage(playerid, COLOR_WHITE,"Не флуди!");
    antiflood[playerid]++;
    if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WHITE,"Вы не авторизованы на сервере!");
    if(PLAYER_DATA[playerid][data_ADMLVL] < 2) return true;
	if(sscanf(params,"us[100]",params[0],params[1])) return SendClientMessage(playerid,COLOR_WHITE,"Используйте: /kick [ид] [причина]");
	if(!IsPlayerConnected(params[0]))return  SendClientMessage(playerid,COLOR_WHITE,"Данного ID нет на сервере!");
    //if(playerid == params[0]) return SendClientMessage(playerid,COLOR_WHITE,"Нельзя применить на себе!");
    if(PLAYER_DATA[params[0]][data_ADMLVL] > PLAYER_DATA[playerid][data_ADMLVL]) return SendClientMessage(playerid, COLOR_WHITE, "Нельзя применить к старшей администрации!");
    for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(!IsPlayerConnected(i)) continue;
		if(GetPVarInt(i,"gPlayerAaction") == 0)
	    {
	        new string[145];
			format(string, sizeof(string), "Администратор %s кикнул %s. Причина: %s",PLAYER_DATA[playerid][data_NAME],PLAYER_DATA[params[0]][data_NAME],params[1]);
			SendClientMessage(i,COLOR_BLUE,string);
		}
	}
	ShowPlayerDialog(playerid, dialog_OK, DIALOG_STYLE_MSGBOX, "{00BFFF}Уведомление", "{FFFFFF}Вы были {00BFFF}кикнуты {FFFFFF}по решению администрации.\nЕсли произошла ошибка вы можете написать в тех. поддержку\nГруппа: {00BFFF}vk.com/revin.helps", "Выход", "");
	{
		Kick(params[0]);
	}
	return true;
}

 

При кике игроку должен будет вылезать диалог

Пробуй так:

Спойлер

CMD:kick(playerid,params[])
{
    if(antiflood[playerid] > 0) return SendClientMessage(playerid, COLOR_WHITE,"Не флуди!");
    antiflood[playerid]++;
    if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WHITE,"Вы не авторизованы на сервере!");
    if(PLAYER_DATA[playerid][data_ADMLVL] < 2) return true;
    if(sscanf(params,"us[100]",params[0],params[1])) return SendClientMessage(playerid,COLOR_WHITE,"Используйте: /kick [ид] [причина]");
    if(!IsPlayerConnected(params[0]))return  SendClientMessage(playerid,COLOR_WHITE,"Данного ID нет на сервере!");
    //if(playerid == params[0]) return SendClientMessage(playerid,COLOR_WHITE,"Нельзя применить на себе!");
    if(PLAYER_DATA[params[0]][data_ADMLVL] > PLAYER_DATA[playerid][data_ADMLVL]) return SendClientMessage(playerid, COLOR_WHITE, "Нельзя применить к старшей администрации!");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i)) continue;
        if(GetPVarInt(i,"gPlayerAaction") == 0)
        {
            new string[145];
            format(string, sizeof(string), "Администратор %s кикнул %s. Причина: %s",PLAYER_DATA[playerid][data_NAME],PLAYER_DATA[params[0]][data_NAME],params[1]);
            SendClientMessage(i,COLOR_BLUE,string);
            ShowPlayerDialog(params[0], dialog_OK, DIALOG_STYLE_MSGBOX, "{00BFFF}Уведомление", "{FFFFFF}Вы были {00BFFF}кикнуты {FFFFFF}по решению администрации.\nЕсли произошла ошибка вы можете написать в тех. поддержку\nГруппа: {00BFFF}vk.com/revin.helps", "Выход", "");
            Kick(params[0]);
        }
    }
    return true;
}

 

Share this post


Link to post
  • 0
LilPokemon
Гуру форума
10 минут назад, Remmi_Feed сказал:

@Покемон все равно не вылезает

Пишет вообще что администратор кикнул ? 
И ещё вопрос зачем вот это ? 
if(GetPVarInt(i,"gPlayerAaction") == 0)

Share this post


Link to post
  • 0
LilPokemon
Гуру форума
2 минуты назад, Remmi_Feed сказал:

@Покемон просто пишет "Сервер закрыл соединение".

По пробуй так:
 

Спойлер

CMD:kick(playerid,params[])
{
    new string[145];
    if(antiflood[playerid] > 0) return SendClientMessage(playerid, COLOR_WHITE,"Не флуди!");
    antiflood[playerid]++;
    if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WHITE,"Вы не авторизованы на сервере!");
    if(PLAYER_DATA[playerid][data_ADMLVL] < 2) return true;
    if(sscanf(params,"us[100]",params[0],params[1])) return SendClientMessage(playerid,COLOR_WHITE,"Используйте: /kick [ид] [причина]");
    if(!IsPlayerConnected(params[0]))return  SendClientMessage(playerid,COLOR_WHITE,"Данного ID нет на сервере!");
    //if(playerid == params[0]) return SendClientMessage(playerid,COLOR_WHITE,"Нельзя применить на себе!");
    if(PLAYER_DATA[params[0]][data_ADMLVL] > PLAYER_DATA[playerid][data_ADMLVL]) return SendClientMessage(playerid, COLOR_WHITE, "Нельзя применить к старшей администрации!");
    format(string, sizeof(string), "Администратор %s кикнул %s. Причина: %s",PLAYER_DATA[playerid][data_NAME],PLAYER_DATA[params[0]][data_NAME],params[1]);
    SendClientMessageToAll(COLOR_BLUE,string);
    ShowPlayerDialog(params[0], dialog_OK, DIALOG_STYLE_MSGBOX, "{00BFFF}Уведомление", "{FFFFFF}Вы были {00BFFF}кикнуты {FFFFFF}по решению администрации.\nЕсли произошла ошибка вы можете написать в тех. поддержку\nГруппа: {00BFFF}vk.com/revin.helps", "Выход", "");
    Kick(params[0]);
    return 1;
}

 

Share this post


Link to post
  • 0
LilPokemon
Гуру форума
3 минуты назад, Remmi_Feed сказал:

@Покемон к сожалению нет

Странно почему жее не чего не пишет . .... 

 По пробуй string сделать больше 

Edited by Покемон

Share this post


Link to post
  • 0
DreamHarakiri
React разработчик

@DEST Да, однако ранее был тест на человеке, так же ничего не писало

Share this post


Link to post
  • 0
MuhammadPawn
Великий Гуру

Хакай функцию kick и делай вызов ей через 1-2 сек что-бы вся инфа успела вывестися

Share this post


Link to post
  • 0
vusalteam
Новичок

Не успевает вылезти диалог,а ты сервер кикает. Выше тебе написали как
Если не можешь посмотри на других модах реализацию 

Share this post


Link to post
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

    • ВасилийСталин
      By ВасилийСталин
      VERDICT PROJECT - V:ACE
       
      Соревновательный проект на платформе SA-MP, вдохновлённый духом Counter-Strike: тактические перестрелки, честный рейтинг и ванильное PVP.
      В разработке, не используются ресурсы, из открытых источников. Всё строится с нуля, собственный игровой мод, полностью кастомный интерфейс и игровой лаунчер.
      Что мы разрабатываем:
       
      - Рейтинговый режим с подбором по ELO. Равные соперники, честные матчи, путь от новичка до вершины таблицы.
      - Полностью кастомный интерфейс (CEF): меню, лобби, магазин и статистика такого уровня, какого на SA-MP почти не встретишь.
      - Легионеры - уникальные оперативники с индивидуальным дизайном и редкостью, открываются через боевой пропуск или чёрные ячейки (кейсы).
      - Скины на оружие и кейсы - коллекционная система в духе CS. -> В активной разработке
      - Киберспортивные команды: теги, ростеры, матчи команда против команды.
      - Тренировка аима, система рангов, ежедневные награды и не только.
       
      Продуманный баланс и внимание к деталям ванильного сражения - то, ради чего мы за это взялись.
      Проект уже на серьёзной стадии разработки. Мы открываем сообщество раньше официального анонса, чтобы первые скриншоты, новости и дата старта достались тем, кто был с нами с самого начала. Мы всегда рады открытой критике, или советам - сделаем игру лучше для всех!
      Подписывайтесь, чтобы не пропустить официальное заявление о запуске и первые материалы проекта.
       
      Группа VK: https://vk.ru/verdictcs
      Официальная почта: verdictproject@mail.ru
    • Kevin_McCarthy
      By Kevin_McCarthy
      🔒 ОТКРЫТИЕ НАБОРА НА ЗАКРЫТОЕ БЕТА-ТЕСТИРОВАНИЕ (ЗБТ)!
      Друзья! Мы выходим на самый ответственный этап разработки Brilliant RP. Проект уже практически готов к полноценному запуску, но перед тем как открыть двери для всех игроков, нам нужно тщательно проверить каждую систему, каждую работу и каждую строчку кода.
      Именно поэтому мы объявляем о старте Закрытого Бета-Тестирования!
      🏆 ТОП-3 ТЕСТЕРА ПОЛУЧАТ КРУТЫЕ ПРИЗЫ!
      Мы высоко ценим время и вклад каждого участника. Тестеры, которые проявят наибольшую активность, найдут больше всего уникальных багов и подробно опишут их в нашей Google-форме, получат ценные награды:
      🥇 1 МЕСТО: 3000 рублей на кошелек, 100.000$ игровой валюты, и Diamond VIP на 30 дней
      🥈 2 МЕСТО: 2000 рублей на кошелек, 75.000$ игровой валюты, и Diamond VIP на 30 дней
      🥉 3 МЕСТО: 1000 рублей на кошелек, 50.000$ игровой валюты, и Diamond VIP на 30 дней
      📝 Как стать участником ЗБТ?
      Заполни заявку на участие: 👉 https://vk.ru/gtasamp_brilliantrp
      Дождись одобрения.
    • OOLOAIS
      By OOLOAIS
      Ищу скрипт для самп/crmp который может скопировать акссесуары с аризоны/родины пж помогите