Доступ к архиву

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

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

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

[Мануал] Cистема тренеровок

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

tryp

Умник
[Мануал] Cистема тренировок

Добрый день павно-инфо, играл на сервах(в бандах) там всегда лидеры собирали нас на трени но тренироваться приходилось на улице и нас всегда убивали. Чтоб такого небыло я сделал Тренировачную систему!
И так приступим 1.создаем переменую
PHP:
new treni[MAX_PLAYERS];//для 1 тренировки
new  treni2[MAX_PLAYERS];//для 2 тренировки
new  treni3[MAX_PLAYERS];//для 3 тренировки
Идем в public onplayerconnect и добовляем это
PHP:
treni[playerid] = 0;
	treni2[playerid] = 0;
	treni3[playerid] = 0;
Идем в public onplayercommandtext
PHP:
if(strcmp(cmd,"/ter",true)==0)
    {
        if(IsPlayerConnected(playerid))
        {
			if(!PlayerToPoint(3.0,playerid,1380.8158,-1088.7686,27.3844))return SMG(playerid, COLOR_GREY, "Вы не у тренеровок!");
		  SPD(playerid, 7182, DIALOG_STYLE_LIST, "коробки для тренеровок", "1 коробка\n2 коробка\n 3 коробка","Выбрать","Отмена");
        }
        return true;
    }
 if(strcmp(cmd,"/treni",true)==0)
    {
        if(IsPlayerConnected(playerid))
        {
	      if (treni[playerid] == 0)return SMG(playerid, COLOR_GREY, "Вы не на тренировках!");
		  SPD(playerid, 7183, DIALOG_STYLE_LIST, "Команды пвп", "Дать хп\nДать броню\nДать ИГЛ\nДать снапу\nДать ак_47\nДать MP5\nЗабрать оружие\nВыйти из тренировки","Выбрать","Отмена");
        }
        return true;
    }
if(strcmp(cmd,"/treni2",true)==0)
    {
        if(IsPlayerConnected(playerid))
        {
	      if (treni2[playerid] == 0)return SMG(playerid, COLOR_GREY, "Вы не на тренировках!");
		  SPD(playerid, 7184, DIALOG_STYLE_LIST, "Команды пвп", "Дать хп\nДать броню\nДать ИГЛ\nДать снапу\nДать ак_47\nДать MP5\nЗабрать оружие\nВыйти из тренировки","Выбрать","Отмена");
        }
        return true;
    }
if(strcmp(cmd,"/treni3",true)==0)
    {
        if(IsPlayerConnected(playerid))
        {
	      if (treni3[playerid] == 0)return SMG(playerid, COLOR_GREY, "Вы не на тренировках!");
		  SPD(playerid, 7185, DIALOG_STYLE_LIST, "Команды пвп", "Дать хп\nДать броню\nДать ИГЛ\nДать снапу\nДать ак_47\nДать MP5\nЗабрать оружие\nВыйти из тренировки","Выбрать","Отмена");
        }
        return true;
    }
Далее идем в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
PHP:
case 7185:
		{
		if(response)
		{
		new sPlayerName[MAX_PLAYER_NAME];
		GetPlayerName(playerid, sPlayerName, sizeof(sPlayerName));
		if(listitem == 0)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni3[i] == 1)
		{
			SetPlayerHealthAC(i, 100);
			format(string,sizeof(string),"%s пополнил всем здоровье.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 1)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni3[i] == 1)
		{
			SetPlayerArmourAC(i, 100);
			format(string,sizeof(string),"%s пополнил всем броню.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 2)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni3[i] == 1)
		{
			GetWeaponPla(i, 24 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 3)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni3[i] == 1)
		{
			GetWeaponPla(i, 34 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 4)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni3[i] == 1)
		{
			GetWeaponPla(i, 30 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 5)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni3[i] == 1)
		{
			GetWeaponPla(i, 29 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 6)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni3[i] == 1)
		{
		ResetPlayerWeapons(i);
		format(string,sizeof(string),"%s Забрал оружие.",sPlayerName);
		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 7)
		{
		if(treni3[playerid] == 1)
		{
		treni3[playerid] = 0;
		format(string,sizeof(string),"%s Вышел из тренировки.",sPlayerName);
		SetPlayerPos(playerid, 1380.8158,-1088.7686,27.3844);
		SetPlayerInterior(playerid,0);
		SMG(playerid, COLOR_RED,string);
		ResetPlayerWeapons(playerid);
		}
		}
	}
}
case 7184:
		{
		if(response)
		{
		new sPlayerName[MAX_PLAYER_NAME];
		GetPlayerName(playerid, sPlayerName, sizeof(sPlayerName));
		if(listitem == 0)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni2[i] == 1)
		{
			SetPlayerHealthAC(i, 100);
			format(string,sizeof(string),"%s пополнил всем здоровье.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 1)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni2[i] == 1)
		{
			SetPlayerArmourAC(i, 100);
			format(string,sizeof(string),"%s пополнил всем броню.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 2)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni2[i] == 1)
		{
			GetWeaponPla(i, 24 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 3)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni2[i] == 1)
		{
			GetWeaponPla(i, 34 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 4)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni2[i] == 1)
		{
			GetWeaponPla(i, 30 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 5)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni2[i] == 1)
		{
			GetWeaponPla(i, 29 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 6)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni2[i] == 1)
		{
		ResetPlayerWeapons(i);
		format(string,sizeof(string),"%s Забрал оружие.",sPlayerName);
		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 7)
		{
		if(treni2[playerid] == 1)
		{
		treni2[playerid] = 0;
		format(string,sizeof(string),"%s Вышел из тренировки.",sPlayerName);
		SetPlayerPos(playerid, 1380.8158,-1088.7686,27.3844);
		SetPlayerInterior(playerid,0);
		SMG(playerid, COLOR_RED,string);
		ResetPlayerWeapons(playerid);
		}
		}
	}
}
case 7183:
		{
		if(response)
		{
		new sPlayerName[MAX_PLAYER_NAME];
		GetPlayerName(playerid, sPlayerName, sizeof(sPlayerName));
		if(listitem == 0)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni[i] == 1)
		{
			SetPlayerHealthAC(i, 100);
			format(string,sizeof(string),"%s пополнил всем здоровье.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 1)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni[i] == 1)
		{
			SetPlayerArmourAC(i, 100);
			format(string,sizeof(string),"%s пополнил всем броню.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 2)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni[i] == 1)
		{
			GetWeaponPla(i, 24 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 3)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni[i] == 1)
		{
			GetWeaponPla(i, 34 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 4)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni[i] == 1)
		{
			GetWeaponPla(i, 30 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 5)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni[i] == 1)
		{
			GetWeaponPla(i, 29 ,500);
			format(string,sizeof(string),"%s дал оружие.",sPlayerName);
     		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 6)
		{
		for(new i = 0; i < GetMaxPlayers(); i++)
		if(treni[i] == 1)
		{
		ResetPlayerWeapons(i);
		format(string,sizeof(string),"%s Забрал оружие.",sPlayerName);
		SMG(i, COLOR_RED,string);
		}
		}
		if(listitem == 7)
		{
		if(treni[playerid] == 1)
		{
		treni[playerid] = 0;
		format(string,sizeof(string),"%s Вышел из тренировки.",sPlayerName);
		SetPlayerPos(playerid, 1380.8158,-1088.7686,27.3844);
		SetPlayerInterior(playerid,0);
		SMG(playerid, COLOR_RED,string);
		ResetPlayerWeapons(playerid);
		}
		}
	}
}
//==================
		case 7182:
		{
		if(response)
		{
			new message[256+1];
           if(listitem == 0)
			{
			    format(message, 256, " Вы телепотрнулись в ПвП коробку используйте /treni", listitem);
			    SMG(playerid, 0xFFFFFFFF, message);
			    treni[playerid] = 1;
			    SetPlayerPos(playerid, 1416.107000,0.268620,1000.926000);
			    SetPlayerInterior(playerid,1);
			}
			if(listitem == 1)
			     {
			    format(message, 256, " Вы телепотрнулись в ПвП коробку используйте /treni2!", listitem);
			    SMG(playerid, 0xFFFFFFFF, message);
			    treni2[playerid] = 1;
       SetPlayerPos(playerid,-1401.830000,107.051300,1032.273000);
       SetPlayerInterior(playerid,1);
          }
        if(listitem == 2)
			{
			    format(message, 256, " Вы телепотрнулись в ПвП коробку используйте /treni3!", listitem);
			    SMG(playerid, 0xFFFFFFFF, message);
			    treni3[playerid] = 1;
        SetPlayerPos(playerid,1302.519897,-1.787510,1000.931946);
        SetPlayerInterior(playerid,18);
       }
		}
	  }
Дальше идем в public OnPlayerDeath(playerid, killerid, reason) и добовляем убийства(пригодиться для лидеров!)
PHP:
for(new i=0; i < GetMaxPlayers(); i++)
		{
			if(treni[i] == 1)
			{
				SetPlayerWantedLevel(playerid, 0);
				format(string, sizeof(string), "[%d]%s Убил [%d]%s",killerid,Name(killerid),playerid,Name(playerid));
				SMG(i,COLOR_LIGHTGREEN, string);
			}
		}
		for(new i=0; i < GetMaxPlayers(); i++)
		{
			if(treni2[i] == 1)
			{
				SetPlayerWantedLevel(playerid, 0);
				format(string, sizeof(string), "[%d]%s Убил [%d]%s",killerid,Name(killerid),playerid,Name(playerid));
				SMG(i,COLOR_LIGHTGREEN, string);
			}
		}
		for(new i=0; i < GetMaxPlayers(); i++)
		{
			if(treni3[i] == 1)
			{
				SetPlayerWantedLevel(playerid, 0);
				format(string, sizeof(string), "[%d]%s Убил [%d]%s",killerid,Name(killerid),playerid,Name(playerid));
				SMG(i,COLOR_LIGHTGREEN, string);
			}
		}
затем идем в public setplayerspawn и добовляем это если нас убили на пвп но мы не хотим ещё выходить
PHP:
if(treni[playerid] == 1)
		{
			SMG(playerid, COLOR_YELLOW, "Если вы хотите выйти введите команду /treni -> Выйти");
		  	SetPlayerInterior(playerid, 1);
			SetPlayerPos(playerid, 1416.107000,0.268620,1000.926000);
			//SetPlayerFacingAngle(playerid, 270.0);
	  		SetPlayerArmourAC(playerid, 100);//Броня
	  		SetPlayerHealthAC(playerid, 100);
			return true;
		}
	else if(treni2[playerid] == 1)
        {
       SMG(playerid, COLOR_YELLOW, "Если вы хотите выйти введите команду /treni2 -> Выйти");
       SetPlayerPos(playerid,-1401.830000,107.051300,1032.273000);
       SetPlayerInterior(playerid,1);
       SetPlayerArmourAC(playerid, 100);//Броня
       SetPlayerHealthAC(playerid, 100);
       return true;
        }
       else if(treni3[playerid] == 1)
			{
        SMG(playerid, COLOR_YELLOW, "Если вы хотите выйти введите команду /treni3 -> Выйти");
        SetPlayerPos(playerid,1302.519897,-1.787510,1000.931946);
        SetPlayerInterior(playerid,18);
        return true;
         }
ну и добавим 3д текст идем в public ongamemodeinit
PHP:
Create3DTextLabel("~~~~~~~~~~~~~~~\nПвп тренеровки\nДля тп используйте команду /ter\n~~~~~~~~~~~~~~~",COLOR_GREENYELLOW,1380.8158,-1088.7686,27.3844,80.0,0,0);
и ещё тренеровки находяться около винвуда( кто играл на обычных рп он находиться там где можно играть в /mission)

у кого errors заменяем
PHP:
#define SMG(%0,%1,%2); SendClientMessage(%0,%1,%2);
#define SMGAll(%0,%1); SendClientMessageToAll(%0,%1);
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу