Форум Pawn.Wiki - Воплоти мечту в реальность!: Система мероприятий - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ All ]
Система мероприятий /mp, /back, /setmp, /editmp
Оценка: -----

#1
Пользователь офлайн   Den1444 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Всем привет! Я сделал систему мероприятий с легкой логикой для новичков. В дальнейшем буду обновлять и улучшать структуру системы.


Ко всем инклудам
#include <Pawn.CMD>
#include <sscanf2>


Ко всем переменным
new MPStatus = 0, // 0 - не активно, 1 - активно, 2 - активно без доступа телепорта
	Float:MPPosition[3], // Позиция мероприятия
	bool:MPTP[MAX_PLAYERS] = false; // true - игрок на мероприятии, false - игрок не на мероприятии


Ко всем CMD
CMD:setmp(playerid) // Команда для создания мероприятия
{
	// Тут добавляем проверку на админку у игрока
	if(MPStatus != 0) return SendClientMessage(playerid, -1, "Мероприятие уже идет. Используйте - /editmp, чтобы завершить");
	MPStatus = 1;
	GetPlayerPos(playerid, MPPosition[0], MPPosition[1], MPPosition[2]);
    SendClientMessageToAll(-1, "Администратор открыл точку телепорта на мероприятие. Используйте - /mp");
	return 1;
}

CMD:mp(playerid) // Команда для телепорта на мероприятие
{
    if(MPStatus != 1) return SendClientMessage(playerid, -1, "Точка телепорта на мероприятие не создана");
    SetPlayerPos(playerid, MPPosition[0], MPPosition[1], MPPosition[2]);
    SendClientMessage(playerid, -1, "Вы телепортировались на мероприятие. Используйте - /back чтобы вернуться");
    MPTP[playerid] = true;
    return 1;
}

CMD:back(playerid) // Команда чтобы покинуть мероприятие
{
    if(!MPTP[playerid]) return SendClientMessage(playerid, -1, "Вы не находитесь на мероприятии");
	SpawnPlayer(playerid);
	MPTP[playerid] = false;
	SendClientMessage(playerid, -1, "Вы вернулись с мероприятия");
	return 1;
}

CMD:editmp(playerid, params[]) // Команда чтобы редактировать статус мероприятия
{
    // Тут добавляем проверку на админку у игрока
    if(MPStatus == 0) return SendClientMessage(playerid, -1, "Мероприятие еще не начато");
	new status;
    if(sscanf(params, "d", status)) return SendClientMessage(playerid, COLOR_GREY, !"Используйте: /editmp [Статус мп](0 - закончить мп, 1 - открыть телепорт на мп, 2 - закрыть телепорт на мп)");
	switch(status)
	{
	    case 0:
	    {
	        MPStatus = 0;
	        
	        MPPosition[0] = 0.0;
    		MPPosition[1] = 0.0;
    		MPPosition[2] = 0.0;
    		
			for(new i = 0; i < MAX_PLAYERS; i++)
			{
			    if(IsPlayerConnected(i) && MPTP[i] == true)
			    {
			        SpawnPlayer(i);
			        MPTP[i] = false;
			    }
			}
	        SendClientMessageToAll(-1, "Администратор завершил мероприятие");
	    }
	    case 1:
	    {
	        MPStatus = 1;
	        GetPlayerPos(playerid, MPPosition[0], MPPosition[1], MPPosition[2]);
            SendClientMessageToAll(-1, "Администратор открыл точку телепорта на мероприятие. Используйте - /mp");
	    }
	    case 2:
	    {
	        MPStatus = 2;
            SendClientMessageToAll(-1, "Администратор закрыл точку телепорта на мероприятие");
	    }
	}
	return 1;
}



Инклуды которые я использовал
Pawn.CMD - https://github.com/k...wn.CMD/releases
sscanf2 - https://github.com/Y...sscanf/releases


Автор данной темы: Я

Сообщение отредактировал Den1444: 24 марта 2026 - 11:57

0

#2
Пользователь офлайн   MuthaX 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияDen1444 (24 марта 2026 - 09:16) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


Какой смысл в твоей теме, если есть уже Это? (Ну и что с того, что оно продаётся? - запросто может оказаться, что его произведение окупит те расходны, которые будут потрачены на доработку твоей поделки).
0

#3
Пользователь офлайн   Den1444 

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияMuthaX (24 марта 2026 - 22:20) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


Смысл в том, что я делал упор на доступность для новичков — каждый может разобраться без лишних сложностей. И если сравнивать, то это две совершенно разные системы, даже если суть у них общая.
0

#4
Пользователь офлайн   swlm 

  • Профессионал
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияDen1444 (25 марта 2026 - 10:26) писал:

Смысл в том, что я делал упор на доступность для новичков — каждый может разобраться без лишних сложностей. И если сравнивать, то это две совершенно разные системы, даже если суть у них общая.


плохой пример показываешь новичкам
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика