Перейти к содержанию
Авторизация  
Na'Vi

Система Мероприятий

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

Na'Vi

Система мероприятий

 

Начнём!

 

Создаём переменные

new Teleport = 0;
new Float:TeleportFloat[3];
new TeleportInfo[2];
new stringmp[144];

В #define добавляем:

#define SCM SendClientMessage
#define SCMTA SendClientMessageToAll
#define PINFO PlayerInfo
#define COLOR_ORANGE            0xFFA500AA // Цвета можно заменить
#define COLOR_WHITE             0xFFFFFFAA
#define COLOR_GREY              0xAFAFAFFF
#define COLOR_GOLD              0xFFD700FF

Создаём команду /mp

if(strcmp(cmd, "/mp", true) == 0)
{
if(PINFO[playerid][pAdminLVL] < 4) return SendClientMessage(playerid, COLOR_GREY, "У вас нет прав!");
ShowPlayerDialog(playerid, 5343, DIALOG_STYLE_LIST, "{FF6F00}Меню создания мероприятия", "{FFFFFF}1. Создать/удалить телепорт\n2. Раздать оружие (в радиусе 50)\n3. Раздать жизни (в радиусе 50)\n4. Обезаружить всех (в радиусе 50)", "Выбрать", "Закрыть");
return true;
}

Создаём команду /tpmp

 

if(strcmp(cmd, "/tpmp", true) == 0)
{
if(Teleport == 0) return 1;
else ShowPlayerDialog(playerid, 3333, DIALOG_STYLE_MSGBOX, "{FF6F00}Телепортация", "{FFFFFF}Вы уверены, что хотите попасть в место проведения мероприятия?", "Да", "Нет");
return 1;
}

 

Созадём дело

case 5343:
                {
                        if(!response) return 1;
                        switch(listitem)
                        {
                                case 0:
                                {
                                        if(Teleport == 0)
                                    {
                                        GetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]);
                                        TeleportInfo[0] = GetPlayerInterior(playerid);
                                        TeleportInfo[1] = GetPlayerVirtualWorld(playerid);
                                        Teleport = 1;
                                        format(stringmp, sizeof(stringmp), "Администратор %s[%d] открыл телепорт для игроков. Чтобы телепортироваться введите: {0abf12}/tpmp", GN(playerid), playerid);
                                        SCMTA(COLOR_GOLD, stringmp, 1);
                                    }
                                    else
                                    {
                                        Teleport = 0;
                                        format(stringmp, sizeof(stringmp), "Администратор %s[%d] закрыл телепорт для игроков. Телепортирование {CC0000}запрещено", GN(playerid), playerid);
                                        SCMTA(COLOR_GOLD, stringmp, 1);
                                    }
                                }
                                case 1: return ShowPlayerDialog(playerid, 5346, DIALOG_STYLE_INPUT, "{0CB4D6}Выдача оружия", "{FFFFFF}Введите ID оружия и патроны\nНапример: 31,500\nГде 31 - m4, а 500 патроны", "Выдать", "Назад");
                                case 2:
                                {
                                        foreach (new i : Player)
                                        {
                                                if(GetDistanceBetweenPlayers(playerid, i) > 50) continue;
                                                SetPlayerHealthAC(i, 100.0);
                                                SCM(i, COLOR_WHITE, "{CC0000}[Информация] {FFFFFF}Администратор выдал Вам жизни для участия мероприятии!");
                                        }
                                }
                                case 3:
                                {
                                        foreach (new i : Player)
                                        {
                                                if(GetDistanceBetweenPlayers(playerid,i) > 50) continue;
                                                ResetPlayerWeapons(i);
                                                SCM(i, COLOR_WHITE, "{CC0000}[Информация] {FFFFFF}Администратор забрал у Вас оружие на время мероприятия!");
                                        }
                                }
                        }
                        ShowPlayerDialog(playerid, 5343, DIALOG_STYLE_LIST, "{0CB4D6}Меню создания мероприятия", "{FFFFFF}1. Создать/удалить телепорт\n2. Раздать оружие (в радиусе 50)\n3. Раздать жизни (в радиусе 50)\n4. Обезаружить всех (в радиусе 50)", "Выбрать", "Закрыть");
                        return 1;
                }

Создаём дело 2

case 5346:
                {
                        if(!response) return ShowPlayerDialog(playerid, 5343, DIALOG_STYLE_LIST, "{0CB4D6}Меню создания мероприятия", "{FFFFFF}1. Создать/удалить телепорт\n2. Раздать оружие (в радиусе 50)\n3. Раздать жизни (в радиусе 50)\n4. Обезаружить всех (в радиусе 50)", "Выбрать", "Закрыть");
                        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 5346, DIALOG_STYLE_INPUT, "{0CB4D6}Выдача оружия", "{FFFFFF}Введите id оружия и патроны\nПример: 31,500\nГде 31 m4 а 500 патроны", "Выдать", "Назад");
                        else if(strfind(inputtext,",", true) != -1)
                        {
                                new razdel[2][24];
                                split(inputtext, razdel, ',');
                                foreach (new i : Player)
                                {
                                        if(GetDistanceBetweenPlayers(playerid, i) > 50) continue;
                                        GivePlayerWeaponAC(i, strval(razdel[0]), strval(razdel[1]));
                                        SCM(i, COLOR_WHITE, "{CC0000}[Информация] {FFFFFF}Администратор выдал Вам оружие для мероприятия. В случае DM - Варн!");
                                }
                        }
                        return 1;
                }

Создаём дело 3

case 3333:
        {
            if(!response) return 1;
            SetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1]+2, TeleportFloat[2]);
            SetPlayerInterior(playerid, TeleportInfo[0]);
            SetPlayerVirtualWorld(playerid, TeleportInfo[1]);
            SCM(playerid, COLOR_ORANGE, "Вы были {0abf12}успешно {FFA500}телепортированы на мероприятие");
            return 1;
        }

case/GN(playerid)/playerid/pAdminLVL - заменять на свое значение

 

Скриншёты

 

f8930bd09cc47ba6b10ecff385155082b2a6ba25
 

e87c666873df0a2a5dfe63cceb5135adb2a6ba25

 

 e3d6572705fbee6ef3e2db3611c6e44ab2a6ba25

 

Готово!

  • Like 1

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


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

Возьму себе. Авто укажи.

Изменено пользователем Дмитрий Кнороз

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


Ссылка на сообщение
Поделиться на другие сайты
Na'Vi

Прошу прощения я просто первый день на форуме Автор:narkk3

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


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

Крашит Pawn. В чём дело? Код пересмотрел. Изменил на своё.

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


Ссылка на сообщение
Поделиться на другие сайты
Daniil_Gold

Помогите исправить ПРОШУ

 


D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(11458) : error 014: invalid statement; not in switch
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(11458) : warning 215: expression has no effect
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(11458) : error 001: expected token: ";", but found ":"
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(11458) : error 029: invalid expression, assumed zero
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(11458) : fatal error 107: too many error messages on one line


Compilation aborted.Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase




4 Errors.

 

 

Строка 11458

case 5343:
Изменено пользователем Daniil_Gold

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


Ссылка на сообщение
Поделиться на другие сайты
#GOBLIN

@Daniil_Gold, У тебя все диалоги на " case " ?  или есть" if(dialogid == ) " ?

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


Ссылка на сообщение
Поделиться на другие сайты
RaMzEsS

Выше смотри этой строки 

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


Ссылка на сообщение
Поделиться на другие сайты
Na'Vi

Подгоните под свой мод если у вас диалоги на case то оставляйте как есть, если же if(dialogid == ) то подгоняйте под эту систему, всё просто

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


Ссылка на сообщение
Поделиться на другие сайты
Daniil_Gold
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(15525) : error 017: undefined symbol "GN"
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(15526) : warning 202: number of arguments does not match definition
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(15531) : error 017: undefined symbol "GN"
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(15532) : warning 202: number of arguments does not match definition
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(15538) : error 017: undefined symbol "foreach"
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(15538) : error 029: invalid expression, assumed zero
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(15538) : error 017: undefined symbol "i"
D:\Profile\Desktop\???\??? Emerald RolePlay\gamemodes\new.pwn(15538) : fatal error 107: too many error messages on one line


Compilation aborted.Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase




6 Errors.

 

Строка 15525

format(stringmp, sizeof(stringmp), "Администратор %s[%d] открыл телепорт для игроков. Чтобы телепортироваться введите: {0abf12}/tpmp", GN(playerid), playerid);

Строка 15526

SCMTA(COLOR_GOLD, stringmp, 1);

Строка 15531

format(stringmp, sizeof(stringmp), "Администратор %s[%d] закрыл телепорт для игроков. Телепортирование {CC0000}запрещено", GN(playerid), playerid);

Строка 15532

SCMTA(COLOR_GOLD, stringmp, 1);

Строка 15538

foreach (new i : Player)

P.S РЕБЯТ ПОМОГИТЕ!!

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
BaseMussel29

@Daniil_Gold,пользователь... Для этого существует тема "Вопросы по программированию pawn" 

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


Ссылка на сообщение
Поделиться на другие сайты
Daniil_Gold

@BaseMussel29,А я типо не знал? 

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


Ссылка на сообщение
Поделиться на другие сайты
Red_Devils

Юзаешь Foreach а указать что нужно подключить его в начале мода не написал. Лол

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.