14 posts in this topic

Спойлер

CMD:gmx(playerid, params[])
{
	if(PI[playerid][pAdmin] < 8) return 1; //Проверка на администратора
	else if(AdminLogged[playerid] == false) return SCM(playerid, COLOR_GREY, YouAreNotLoggedInAsAdmin); //Проверка на автразацию адм.
  	{
		SendClientMessageToAll(COLOR_RED, "Внимание! Через 1 минуту произойдет перезапуск игрового сервера!"); //Оповещение всем о рестарте
		SetTimer("ServerRestart", 1000*60, false); //Таймер на паблик с рестартом
    }
	return true;
}

 

Спойлер

forward ServerRestart();
public ServerRestart()
{
    for(new i=0;i<MAX_PLAYERS;i++) // MAX_PLAYERS
    {
        if(IsPlayerConnected(i))
        {
            StopAudioStreamForPlayer(i);
        }
    }
	SaveAcc(); //Сахранение аккаунтов на свое
	SaveWarehouse(); //Сахранение домов на свое
    SendClientMessageToAll(COLOR_RED, "Произведен рестарт сервера, это займёт не более 30 секунд");
    SendClientMessageToAll(COLOR_RED, "Администратор TimePlay RolePlay приносит извинения за неудобства"); //меняете на свое
    GameTextForAll("~r~Pec¦ap¦ cepўepa", 5000, 5); //"Рестарт сервера" по среди экрана
    Log("Others", "Игровой сервер перезагружается!"); //Запесь в логи сервера (server_log)
    GameModeExit(); //Выход
    return 1;
}

 


Автор: Daniil Roslyakov (Я)

Edited by Daniil Roslyakov

Share this post


Link to post
Share on other sites

forward ServerRestart();

public ServerRestart()

Забыли,указать что этот паблик в конец,мода вставлять нужно.

Share this post


Link to post
Share on other sites

Забыл указать playerid
 

SendClientMessageToAll(playerid,COLOR_RED, "Произведен рестарт сервера, это займёт не более 30 секунд");
    SendClientMessageToAll(playerid,COLOR_RED, "Администратор TimePlay RolePlay приносит извинения за неудобства"); //меняете на свое

Share this post


Link to post
Share on other sites

 

@ОБКУРЕННЫЙ-КОТЭ Если бы вы знали, что "SendClientMessageToAll" отображает этот текст всем игрокам, и причем же тут playerid вам?

Edited by Daniil Roslyakov

Share this post


Link to post
Share on other sites
Только что, Daniil Roslyakov сказал:

 

@ОБКУРЕННЫЙ-КОТЭ Если бы вы знали, что "SendClientMessageToAll" отображает этот текст всем игрокам, и причем же тут playerid вам?

Хз, у меня ругается на несовпадение аргументов 

Share this post


Link to post
Share on other sites

@ОБКУРЕННЫЙ-КОТЭ Денис ты эту функцию спутал с SendClientMessage

Share this post


Link to post
Share on other sites

C:\Users\User\Desktop\Amazing RP\gamemodes\amazing_mark_richards.pwn(49795) : error 021: symbol already defined: "pc_cmd_gmx"
Pawn compiler 3.10.8              Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
 

Что делать?

 

Share this post


Link to post
Share on other sites

@Jaroslav_Zhdan команда с таким названием в моде уже есть. Измените ей название на какое-нибудь другое. 

Share this post


Link to post
Share on other sites

C:\Users\User\Desktop\Amazing RP\gamemodes\amazing_mark_richards.pwn(49791) : error 021: symbol already defined: "pc_cmd_gmx"
Pawn compiler 3.10.8              Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
 

А это что?

 

 

Share this post


Link to post
Share on other sites

@Jaroslav_Zhdan сточку или строки нужно сразу с ошибками прикладывать. Я же не могу сквозь расстояние прочитывать код. 

Share this post


Link to post
Share on other sites

Вот

2018-11-08_16-56-40.png

2018-11-08_16-56-19.png

Share this post


Link to post
Share on other sites

@Jaroslav_Zhdan Во-первых, скриншоты если заливаете, то нужно их заливать под спойлер. 

Во-вторых, код необходимо заливать через специальный тег. Подробней - https://pawno-rus.ru/osnova.html/faq/spoiler-and-code 

Если по теме, то зачем вы вообще два раза вставляете эту команду? Вставить нужно один раз. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • MetaLife Online
      By MetaLife Online
      Привествую! писал код. проверил работу, в БД отправилось информация криво 
      потом добавил к P_NICK[MAX_PLAYER_NAME] для того чтобы все было окей. Но после этого данные вообще не отпровляються и не показываеться %s. пару раз удалял и не помогло не чего 
      enum PLAYER_INFO {     P_ID,     P_NICK[MAX_PLAYER_NAME],     P_PASS,     P_GENDER,     P_SKIN,     P_LVL, };  

    • Danny_Marcelo
      By Danny_Marcelo
      Всех приветствую. Сегодня я решил обновить систему мероприятий, т.к. на самом проекте Advance RP уже давно видоизменили систему, добавили нового функционала. Мы не должны стоять на месте и я решил тоже свою систему доработать. Вы можете использовать данную систему как аналог Advance RP или же доработать для своего проекта. Все в ваших руках как говорится.
       
      Что нового?
       
      Итак приступим:
      Находим свои переменные и вставляем:
       
      new settp = 0; // Флаг включения/выключения телепортации new Float:TeleportFloat[3]; // Координаты точки телепортации new TeleportInfo[2]; // Интерьер и виртуальный мир new Float:PlayerLastPos[MAX_PLAYERS][3]; // Последние координаты игрока new PlayerLastInt[MAX_PLAYERS]; // Последний интерьер игрока new PlayerLastVW[MAX_PLAYERS]; // Последний виртуальный мир игрока new PlayerWeapons[MAX_PLAYERS][13][2]; // Оружие игрока (слот и патроны) new PlayerUsedTP[MAX_PLAYERS]; // Флаг для отслеживания использования /tp  
      Далее идём в команды, мой случай на Pawn.CMD, но +/- везде одинаково, разве что меняется шапка
       
      CMD:settp(playerid, params[]) {     if (PlayerInfo[playerid][pAdmin] < 4) return 1;     new string[95];     if (settp == 0)     {         GetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]);         TeleportInfo[0] = GetPlayerInterior(playerid);         TeleportInfo[1] = GetPlayerVirtualWorld(playerid);         settp = 1;         format(string, sizeof(string), "[A] %s[%d] установил точку телепорта для игроков. {00CC00}ТП включен.", PlayerInfo[playerid][pName], playerid);         SendAdminMessage(0x52B2B5FF, string);     }     else     {         format(string, sizeof(string), "[A] %s[%d] удалил точку телепорта для игроков. {FF6600}ТП отключен.", PlayerInfo[playerid][pName], playerid);         SendAdminMessage(0x52B2B5FF, string);         settp = 0;     }     return 1; } CMD:tp(playerid, params[]) {     if (settp == 0) return SendClientMessage(playerid, 0xCECECEFF, !"Функция отключена администратором.");     if (PlayerInfo[playerid][pJailed] >= 1) return SendClientMessage(playerid, 0xCECECEFF, !"Арестованным не разрешено покидать камеру.");     if (PlayerInfo[playerid][pRabota] != 0) return SendClientMessage(playerid, 0xCECECEFF, !"Необходимо завершить все начатые работы и активные действия.");     if (bolkam[playerid] == true) return SendClientMessage(playerid, 0xCECECEFF, !"Необходимо завершить все начатые работы и активные действия.");     GetPlayerPos(playerid, PlayerLastPos[playerid][0], PlayerLastPos[playerid][1], PlayerLastPos[playerid][2]);     PlayerLastInt[playerid] = GetPlayerInterior(playerid);     PlayerLastVW[playerid] = GetPlayerVirtualWorld(playerid);     for (new i = 0; i < 13; i++)     {         GetPlayerWeaponData(playerid, i, PlayerWeapons[playerid][i][0], PlayerWeapons[playerid][i][1]);     }     PlayerUsedTP[playerid] = 1;     ShowPlayerDialog(playerid, 22, DIALOG_STYLE_MSGBOX, !"{6699FF}Телепортация",         !"{FFFFFF}Вы уверены, что хотите попасть на место проведения мероприятия?\n{FFCD00}Ваше оружие будет изъято для хранения и возвращено позже.", !"Да", !"Нет");     return 1; }  
       
      CMD:back(playerid, params[]) {     if (!PlayerUsedTP[playerid])     {         return SendClientMessage(playerid, 0xCECECEFF, !"Эту функцию можно использовать после {FF9933}/tp, /go {CECECE}или по окончании {FF9933}мероприятий");     }     SetPlayerPos(playerid, PlayerLastPos[playerid][0], PlayerLastPos[playerid][1], PlayerLastPos[playerid][2]);     SetPlayerInterior(playerid, PlayerLastInt[playerid]);     SetPlayerVirtualWorld(playerid, PlayerLastVW[playerid]);     ResetPlayerWeapons(playerid);     for (new i = 0; i < 13; i++)     {         if (PlayerWeapons[playerid][i][0] != 0)         {             GivePlayerWeapon(playerid, PlayerWeapons[playerid][i][0], PlayerWeapons[playerid][i][1]);         }     }     PlayerUsedTP[playerid] = 0;     SendClientMessage(playerid, 0x3399FFFF, !"Вы вернулись туда, где были до телепортации");     return 1; } Ну и в OnDialogResponse:
      case 22: // Не забудьте проверить и при надобности изменить id диалога на вашу цифру или ID_NAME         {             if (response)             {                 SetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]);                 SetPlayerInterior(playerid, TeleportInfo[0]);                 SetPlayerVirtualWorld(playerid, TeleportInfo[1]);                 ResetPlayerWeapons(playerid);                 SendClientMessage(playerid, 0x66CCFFFF, "Вы были доставлены на место проведения мероприятия");                 SendClientMessage(playerid, 0x66CCFFFF, "Чтобы вернуться обратно, введите {FF9900}/back");             }         } Скриншоты:
       
      Если игрок сидит в КПЗ и вводит /tp:

       
      При включенном /tp:

       
      При выключенном /tp:

       
      Сообщение администраторам:

       
      Если работаешь или лечишься в больнице:

       
      Текст после телепортации:

       
      При вводе /back 1 и более раз:

       
      P.S. Команду /tp на Advance можно нажимать бесконечно, по этому я не стал сюда пихать аналогичную проверку как в /back.
      Если что, не сложно будет добавить 1 строчку проверки. Просто имейте ввиду, что это не баг. Просто нужно же соответствовать названию темы "На 100% КОПИЯ"))
       
      Автор: Danny_Marcelo
      Размещая на другие порталы, обязательно указать автора