Добро пожаловать на Pawno-Info.Ru - Портал о программировании №1

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям и ответы на все интересующие Вас вопросы. После регистрации Вы сможете создавать темы, публиковать ответы, влиять на репутацию пользователей форума, обмениваться личными сообщениями и многое другое. Это быстро и совершенно бесплатно, так чего же Вы ждете?
Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Скачивать файлы
Создавать темы
Быть полноправным участником форума
Доступ к архиву Pawno-Info
Нормальное копирование кода

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками - то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Модификации SA

Хотите разнообразить свою игру в San Andreas? Смелее в наш раздел. Отличный сборник готовых решений. Играйте с удовольствием

Статус
В этой теме нельзя размещать новые ответы.

tryp

Изучающий
Пользователь
Регистрация
17 Авг 2011
Сообщения
483
Лучшие ответы
0
Репутация
161
Адрес
Тольятти
Доброе всем время суток.На всех рп серверах есть МП(конкурсы ивенты итд), чтоб тп на МП , восновном все люди пишут в репорт свой ид но я сделал иначе!
для начало содаем enum для тп
PHP:
enum IMPEnum
{
    IMPID,
    IMPType,    	// тип ивента,если 0 то ивент отключен
    IMPRW,     		// конфисковывать ли оружие?
    IMPFreeze,     	// замораживать ли игроков?
    IMPGunID,		// оружие
    IMPAmmo,		// патроны  к оружию
    IMPCar,			// модель машины если 0  = ент
    Float:IMPPosX,  // позиция X
    Float:IMPPosY,  // позиция  Y
    Float:IMPPosZ,  // позиция Z
    IMPInt,  		// интерьер
   	IMPObjInt,  	// интерьер обьектов
    IMPPosR     	// радиус по XY
}
new IMP[IMPEnum];
затем создаем команду чтоб открыть/закрыть телепорт у нас будет /ivent
идем в Public OnPlayerCommandText
PHP:
if(strcmp(cmd, "/ivent", true) == 0 || strcmp(cmd, ".шмуте", true) == 0)
	{
		if (PlayerInfo[playerid][pAdmin] == 2 || PlayerInfo[playerid][pAdmin] >= 3)
		{
			new type,radius,wr,stype[64];
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD1, " Использование: /ivent [тип ивента не более 10] [радиус телепорта] (конф оружие 1/0) (заморозка 1/0)");
				return 1;
			}
			type = strval(tmp);
			if(type>10 || type<0)
			{
				SendClientMessage(playerid, COLOR_GRAD1, " Недопустимое значение.");
				return 1;
			}
			if(type==0)
			{
				if(IMP[IMPType]==0)
				{
					SendClientMessage(playerid, COLOR_GRAD1, " Ивент не был начат!");
					return 1;
				}
				IMP[IMPType]=0;
				GetPlayerName(playerid, sendername, sizeof(sendername));
				format(string, sizeof(string), " Объявление: ТП завершен! Контракт: [%d]%s Номер: %d ",  playerid,sendername,PlayerInfo[playerid][pPnumber]);
				BroadCast(TEAM_GROVE_COLOR,string);
				return 1;
			}
			IMP[IMPType]=type;
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				radius = 4;
			}
			else radius = strval(tmp);
			if(radius>10 || radius<0) return SendClientMessage(playerid, COLOR_GRAD1, " Недопустимое значение.");
            IMP[IMPPosR]=radius;
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				wr=0;
			}
			else wr = strval(tmp);
			if(wr<0 || wr >1)return SendClientMessage(playerid, COLOR_GRAD1, " Недопустимое значение.");
            IMP[IMPRW]=wr;
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				wr=0;
			}
			else wr = strval(tmp);
			if(wr<0 || wr >1)return SendClientMessage(playerid, COLOR_GRAD1, " Недопустимое значение.");
            IMP[IMPFreeze]=wr;
			GetPlayerPos(playerid,IMP[IMPPosX],IMP[IMPPosY],IMP[IMPPosZ]);IMP[IMPInt]=GetPlayerInterior(playerid);
			switch(type)// причина
			{
				case 1: format(stype,64, "Ивент:  ДМ , после ТП сразу в линию!");
	    		case 2: format(stype,64, "Ивент:  Гонка , после ТП сразу по машинам и в Линию!");
                case 3: format(stype,64, "Ивент:  Дерби , после ТП сразу по машинам!");
				case 4: format(stype,64, "Телепорт: к Мерии ");
				case 5: format(stype,64, "Ивент:  ТДМ, Террористы против Ментов!");
				case 6: format(stype,64, "Телепорт: Осмотр местности для ТДМ, после ТП в Линию!");
				case 7: format(stype,64, "Ивент: Гонка на Гидрах(В разрабоке) ");
				case 8: format(stype,64, "Ивент: Скриптовый ДМ, после ТП сразу в Линию! ");
				case 9: format(stype,64, "Ивент: Скриптовая гонка, после ТП сразу по машинам и в Линию! ");
				case 10: format(stype,64, "Ивент: Скриптовый Дерби, после ТП сразу в Линию! ");
				default: return 1;
			}
//			format(string, sizeof(string), " Администратор %s: [%s] Ипспользуйте: /toivent для телепорта.", sendername,stype);
			GetPlayerName(playerid, sendername, sizeof(sendername));
			format(string, sizeof(string), " Объявление: %s,пишем ИД! Контракт: [%d]%s Номер: %d ",  stype,playerid,sendername,PlayerInfo[playerid][pPnumber]);
			BroadCast(TEAM_GROVE_COLOR,string);
		}
	}
	if (!strcmp("/toivent", cmd,true))
	{
		ToIvent(playerid);
		return 1;
	}
чтоб открыть тп надо написать так: /ivent [тип ивента от 1 до 10][радиус от 1 до 10][дать оружие1/0][зароморить1/0] .
чтоб закрыть тп пишем /ivent 0 0 0 0!
____________________________________
Дальше суем это в конец мода!
PHP:
 ToIvent(playerid)
{
    new carid;
	if(PlayerInfo[playerid][pJailed]>0) SendClientMessage(playerid, COLOR_GREY, " Недопустимая комманда для заключенных.");
     else
	{
		if(IMP[IMPType]>0)
		{
			if(IMP[IMPType]==4)//телепорт к мерии
			{
				SetPlayerPos(playerid,1498.0271,-1744.0148,13.5469);
				SetPlayerFacingAngle(playerid,0);
				SetPlayerInterior(playerid,0);
			}
			if(IMP[IMPType]==7) //телепорт на гидрах
			{
				SetPlayerPos(playerid,1214.2761,-903.8991,42.6997);
				PutPlayerInVehicle(playerid,520,1);
				LockCar(carid);
				Gas[carid] = GasMax;
				SetPlayerHealth(playerid,100);
				SetPlayerVirtualWorld(playerid, 1);
				}
			if(IMP[IMPType]==9) //телепорт на гидрах
			{
				SetPlayerPos(playerid,PlayMission[kCP1][0],PlayMission[kCP1][1],PlayMission[kCP1][2]);
				//PutPlayerInVehicle(playerid,520,1);
				SetPlayerHealth(playerid,100);
				SetPlayerVirtualWorld(playerid, 1);
				}
            else
			{
				SetPlayerPos(playerid,IMP[IMPPosX]+RandomEx(-IMP[IMPPosR],IMP[IMPPosR]),IMP[IMPPosY]+RandomEx(-IMP[IMPPosR],IMP[IMPPosR]),IMP[IMPPosZ]);
				SetPlayerInterior(playerid,IMP[IMPInt]);
			}
			SetPlayerHealth(playerid,100);
			if(IMP[IMPRW]) ResetPlayerWeapons(playerid);
			if(IMP[IMPFreeze]) TogglePlayerControllable(playerid,0);
			SendClientMessage(playerid, COLOR_GREY, " Тебя телепортировали на ивент.");
		}
		else SendClientMessage(playerid, COLOR_GRAD1, " Ивент отключен.");
	}
}
RandomEx(min, max)
{
	return random(max - min) + min;
}
и теперь идем в public OnPlayerText (это нужно чтоб если ты написал в чат свой ид то ты будешь тп!)
PHP:
if(IMP[IMPType]!=0)
	{
	    new id=ReturnUser(text);
	    if(id==playerid)
		ToIvent(playerid);
		return 0;
	}
чтоб тп надо писать свой ид не в ooc чат а в обычный (глобальный)
автор: хз
от + не откажусь)
 
Последнее редактирование:

7Zip

Эксперт
Пользователь
Регистрация
25 Сен 2011
Сообщения
1,370
Лучшие ответы
0
Репутация
253
Вырезка с Spark Anti-P =)
 

tryp

Изучающий
Пользователь
Регистрация
17 Авг 2011
Сообщения
483
Лучшие ответы
0
Репутация
161
Адрес
Тольятти

kyller

Эксперт
Пользователь
Регистрация
5 Ноя 2011
Сообщения
1,665
Лучшие ответы
0
Репутация
398
Адрес
Pawno-Info.ru
Пригодится. Спасибо)
 

tryp

Изучающий
Пользователь
Регистрация
17 Авг 2011
Сообщения
483
Лучшие ответы
0
Репутация
161
Адрес
Тольятти

vlad_step

Заблокирован
Регистрация
6 Фев 2011
Сообщения
639
Лучшие ответы
0
Репутация
213
Адрес
Казань
Во спасибо долго искал)
это веть как на MG?
 

tryp

Изучающий
Пользователь
Регистрация
17 Авг 2011
Сообщения
483
Лучшие ответы
0
Репутация
161
Адрес
Тольятти
я на MG не играл но вырезал со sparka anti-p))
 

Denis_Step

Изучающий
Пользователь
Регистрация
31 Окт 2011
Сообщения
230
Лучшие ответы
0
Репутация
19
Возраст
26
Адрес
Пенза
Спасибо,как раз то что нужно
Пригодится
 

tryp

Изучающий
Пользователь
Регистрация
17 Авг 2011
Сообщения
483
Лучшие ответы
0
Репутация
161
Адрес
Тольятти

tryp

Изучающий
Пользователь
Регистрация
17 Авг 2011
Сообщения
483
Лучшие ответы
0
Репутация
161
Адрес
Тольятти
up(акктуально)
 

rafael

Эксперт
Пользователь
Регистрация
3 Сен 2011
Сообщения
1,366
Лучшие ответы
0
Репутация
399
пойдет
 

Jetix

Нуль
Пользователь
Регистрация
29 Фев 2012
Сообщения
6
Лучшие ответы
0
Репутация
0
норм команда
 

Alex_Demix

Начинающий
Пользователь
Регистрация
7 Июн 2011
Сообщения
74
Лучшие ответы
0
Репутация
8
Адрес
Россия, Ниж.обл. Дзержинск
системка нормальная, автор если не ошибаюсь Zevs, подписывать чужую работу под свою плохо.. а за то что норм вырезал +
 
Статус
В этой теме нельзя размещать новые ответы.
shape1
shape2
shape3
shape4
shape7
shape8
Сверху Снизу