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

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

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

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

Система Респектов [SAMP RL] [GM:RLS]

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

#define

Компетентный
Делать было нечего, дело было вечером.
Думаю мало кто знает эту систему, так что расскажу.

Это автоматическая система повышения себя в должности до 3 ранга.
Чтобы получить второй ранг будучи армейцом, нужно:

1. Развозить маты на склады.
2. Убивать бандитов на территории военной базы.

Чтобы получить второй ранг будучи бандитом, нужно:

1. Развозить маты на склад банды.
2. Грабить дома
3. Убить полицейского/армейца на территории гетто (забрать ключи, форму)

Проверить респекты можно командой /respect
​


Приступим.

в pinfo:
PHP:
pRespect,
в OnPlayerConnect:
PHP:
PlayerInfo[playerid][pRespect] = 0;
в OnPlayerRegister:
PHP:
ini_setInteger(File,"Respect",PlayerInfo[playerid][pRespect]);
в OnPlayerUpdateRL:
PHP:
ini_setInteger(File,"Respect",PlayerInfo[playerid][pRespect]);
в OnPlayerLogin:
PHP:
ini_getInteger(File,"Respect",PlayerInfo[playerid][pRespect]);
к командам:
PHP:
    else if(strcmp(cmd, "/respect", true) == 0)
        {
         if(PlayerInfo[playerid][pRank] == 1)
         {
    format(string, sizeof(string), "Ваш уровень респектов: %d из 10", PlayerInfo[playerid][pRespect]);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
       }
    else if(PlayerInfo[playerid][pRank] == 2)
    {
        format(string, sizeof(string), "Ваш уровень респектов: %d из 20", PlayerInfo[playerid][pRespect]);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    }
    else if(PlayerInfo[playerid][pRank] > 2)
    {
        format(string, sizeof(string), "Ошибка: Ваш ранг выше второго!");
                        SendClientMessage(playerid, COLOR_WHITE, string);
    }
    return 1;
}
Ищим:
PHP:
Вы потеряли армейскую форму

И полностью заменяем от:
new sendername[MAX_PLAYER_NAME];
new killer[MAX_PLAYER_NAME];
на:
PHP:
				new sendername[MAX_PLAYER_NAME];
				new killer[MAX_PLAYER_NAME];
				GetPlayerName(playerid, sendername, sizeof(sendername));
				GetPlayerName(killerid, killer, sizeof(killer));
                if(IsAGang(killerid))
                {
                if(PlayerInfo[playerid][pMember] == 19 || PlayerInfo[playerid][pLeader] == 19 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
                {
                for(new i =0;i<sizeof(GZInfo);i++)
            	{
				if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
       			{
                forma[killerid] = 1;
                PlayerInfo[playerid][pModel] =252;
               	SendClientMessage(playerid,  COLOR_YELLOW, "Вы потеряли армейскую форму");
                SendClientMessage(killerid,  COLOR_YELLOW2, "Вы cняли с армейца форму, введите /armforma, чтобы переодеться");
                PlayerInfo[killerid][pZakonp] -= 2;
                PlayerInfo[playerid][pRespect] += 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
				format(string, sizeof(string), "%s потерял армейскую форму", sendername);
				SendFamilyMessage(19,COLOR_YELLOW2, string);
                SpawnPlayer(playerid);
				if(PlayerInfo[playerid][pMember] == 3)
                {
                forma[killerid] = 1;
                PlayerInfo[playerid][pModel] =252;
               	SendClientMessage(playerid,  COLOR_YELLOW, "Вы потеряли армейскую форму");
                SendClientMessage(killerid,  COLOR_YELLOW2, "Вы cняли с армейца форму, введите /armforma, чтобы переодеться");
                PlayerInfo[playerid][pRespect] += 1;
                PlayerInfo[killerid][pZakonp] -= 2;
                }
                }
                }
				}
                }
                if(IsAGang(killerid))
                {
                if(IsACop(playerid))
                {
                for(new i =0;i<sizeof(GZInfo);i++)
            	{
				if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
       			{
                keys[killerid] += 1;
               	SendClientMessage(playerid,  COLOR_YELLOW, "Вы потеряли ключи от камеры!");
               	SendClientMessage(killerid,  COLOR_YELLOW, "Вы забрали у полицейского ключи от камеры!");
                PlayerInfo[killerid][pZakonp] -= 2;
                PlayerInfo[playerid][pRespect] += 1;
                GetPlayerName(playerid, sendername, sizeof(sendername));
				format(string, sizeof(string), "Полицейский %s потерял ключи от камеры", sendername);
				SendFamilyMessage(1,COLOR_YELLOW2, string);
				SendFamilyMessage(10,COLOR_YELLOW2, string);
				SendFamilyMessage(21,COLOR_YELLOW2, string);
                }
                }
				}
    }
Ищим:
PHP:
else if(MatsArmyCar[playerid]==20)
И все заменяем на:
PHP:
		else if(MatsArmyCar[playerid]==20)
		{
 		if(MatHaul[tmpcar-gunscar[0]][mLoad] >= 5000 || armmatbi <= 1000)
		{
            format(string, sizeof(string), "Склад пуст или грузовик полон!");
			SendClientMessage(playerid, COLOR_GREY, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] += 5000;
		format(string, sizeof(string), "Материалы успешно загружены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		armmatbi -= 5000;
		DisablePlayerCheckpoint(playerid);
        format(string, sizeof(string), "На складе Зоны 51: %d/100000", armmatbi);
        format(string, sizeof(string), "Используйте: /carm, чтобы начать развозку материалов");
		SendClientMessage(playerid, COLOR_WHITE, string);
        SaveMaterials();
		}
		else if(MatsArmyCar[playerid]==35)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || sfpdmats >= 49999)
		{
            format(string, sizeof(string), "Склад SFPD заполнен, либо грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		sfpdmats += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Маты успешно доставлены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад SFPD: %d/50000", sfpdmats);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		CP[playerid] = 0;
		SaveMaterials();
		}
		else if(MatsArmyCar[playerid]==150)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || lvpdmats >= 49999)
		{
            format(string, sizeof(string), "Склад LVPD заполнен, либо грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		lvpdmats += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Маты успешно доставлены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад LVPD: %d/50000", lvpdmats);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		SaveMaterials();
		}
		else if(MatsArmyCar[playerid]==151)
    	{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || lsamatbi >= 29999)
        {
            format(string, sizeof(string), "Склад LSA заполнен, либо грузовик пуст!");
            SendClientMessage(playerid, COLOR_WHITE, string);
            DisablePlayerCheckpoint(playerid);
            return 1;
        }
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
        lsamatbi += 5000;
		DisablePlayerCheckpoint(playerid);
		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Маты успешно доставлены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
        format(string, sizeof(string), "Склад LSA: %d/50000", lsamatbi);
        SendClientMessage(playerid, COLOR_WHITE, string);
        PlayerInfo[playerid][pRespect] += 1;
        SaveMaterials();
    }
		//========================= Склады банд ========================================
 		else if(MatsArmyCar[playerid]==100)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || ballasmatbi >= 49999)
		{
            format(string, sizeof(string), "Склад The Ballas заполнен, либо грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		ballasmatbi += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Маты успешно доставлены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад The Ballas: %d/50000", ballasmatbi);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		SaveMaterials();
		}
		else if(MatsArmyCar[playerid]==101)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || vagosmatbi >= 49999)
		{
            format(string, sizeof(string), "Склад The Vagos заполнен, либо грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		vagosmatbi += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Маты успешно доставлены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад The Vagos: %d/50000", vagosmatbi);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		SaveMaterials();
		}
		else if(MatsArmyCar[playerid]==102)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || groovmatbi >= 49999)
		{
            format(string, sizeof(string), "Склад The Grove заполнен, либо грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		groovmatbi += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Маты успешно доставлены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад The Grove: %d/50000", groovmatbi);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		SaveMaterials();
		}
			else if(MatsArmyCar[playerid]==103)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || aztekmatbi >= 49999)
		{
            format(string, sizeof(string), "Склад The Aztek заполнен, либо грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		aztekmatbi += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Маты успешно доставлены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад The Aztek: %d/50000", aztekmatbi);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		SaveMaterials();
		}
				else if(MatsArmyCar[playerid]==104)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || rifamatbi >= 49999)
		{
            format(string, sizeof(string), "Склад The Rifa заполнен, либо грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		rifamatbi += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Маты успешно доставлены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад The Rifa: %d/50000", rifamatbi);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		SaveMaterials();
		}
		else if(MatsArmyCar[playerid]==31)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || lspdmatbi >= 49999)
		{
            format(string, sizeof(string), "Склад LSPD заполнен, либо грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		lspdmatbi += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Маты успешно доставлены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад LSPD: %d/50000", lspdmatbi);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		SaveMaterials();
		}
		else if(MatsArmyCar[playerid]==24)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || fbimats >= 49999)
		{
            format(string, sizeof(string), "Склад FBI заполнен либо грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		fbimats += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Маты успешно доставлены! Компоненты материалов: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад FBI: %d/50000", fbimats);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		SaveMaterials();
		}
 		else if(MatsArmyCar[playerid]==21)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || armmatbi >= 49999)
		{
            format(string, sizeof(string), "Cклад Армии SF заполнен, или грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		armmatsf += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Оружие успешно доставлено! Оружие: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад Армии SF: %d/50000", armmatsf);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		SaveMaterials();
		}
		else if(MatsArmyCar[playerid]==25)
		{
		if(MatHaul[tmpcar-gunscar[0]][mLoad] == 0 || armmatsf >= 49999)
		{
            format(string, sizeof(string), "Склад армии San Fiero заполнен, либо грузовик пуст!");
			SendClientMessage(playerid, COLOR_WHITE, string);
			DisablePlayerCheckpoint(playerid);
			return 1;
		}
		MatHaul[tmpcar-gunscar[0]][mLoad] -= 5000;
		armmatsf += 5000;
  		DisablePlayerCheckpoint(playerid);
  		MatsArmyCar[playerid]=0;
    	format(string, sizeof(string), "Оружие успешно доставлено! Оружие: %d/5000", MatHaul[tmpcar-gunscar[0]][mLoad]);
		SendClientMessage(playerid, TEAM_GROVE_COLOR, string);
		format(string, sizeof(string), "Склад Армии SF: %d/50000", armmatsf);
		SendClientMessage(playerid, COLOR_WHITE, string);
		PlayerInfo[playerid][pRespect] += 1;
		SaveMaterials();
		}
в OnPlayerUpdate:
PHP:
	if(PlayerInfo[playerid][pRank] == 1 && PlayerInfo[playerid][pRespect] > 10)
    {
        SendClientMessage(playerid, COLOR_WHITE, "Вы достигли максимального уровня респектов и были повышены до 2 ранга!");
        PlayerInfo[playerid][pRank] = 2;
        PlayerInfo[playerid][pRespect] = 0;
    }
    if(PlayerInfo[playerid][pRank] == 2 && PlayerInfo[playerid][pRespect] > 20)
    {
        SendClientMessage(playerid, COLOR_WHITE, "Вы достигли максимального уровня респектов и были повышены до 3 ранга!");
        PlayerInfo[playerid][pRank] = 3;
        PlayerInfo[playerid][pRespect] = 0;
    }
заменяем команду /robhouse:
PHP:
else if(strcmp(cmd,"/robhouse",true)==0)
	{
 		for(new h = 0; h < sizeof(HouseInfo); h++)
		{
      		if(IsAGang(playerid))
			{
			for(new i =0;i<sizeof(GZInfo);i++)
            {
			if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3])&&IsInAllowed(playerid))
       		{
			   if (PlayerToPoint(8.0, playerid, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
			    {
			    if (robhouse[playerid] !=0) return	SendClientMessage(playerid, COLOR_WHITE, "Вы уже грабили дом в этом часу");
				if(HouseInfo[h][hOwned] == 0) return SendClientMessage(playerid, COLOR_WHITE, "У дома нет владельца");
			    SendClientMessage(playerid, COLOR_GREEN, "Вы ограбили дом, на сумму 500 вирт!");
    		 	GetPlayerName(playerid, sendername, sizeof(sendername));
			    format(string, sizeof(string), "Рация: Cообщает: Неизвестный. Преступление: Ограбление. Подозреваемый: %s",sendername);
				SendClientMessage(playerid, 0xFEBC41AA, string);
   				WantedPoints[playerid]++;
   				PlayerInfo[playerid][pZvezdi]+=1;
				SetPlayerWantedLevel(playerid,WantedLevel[playerid] += 1);
				PlayerInfo[playerid][pZakonp] -= 1;
				PlayerInfo[playerid][pRespect] += 1;
				PlayerInfo[playerid][pCrimes] += 1;
				PlayerInfo[playerid][pCash] += 500;
				format(string, sizeof(string), "Рация: Cообщает: Неизвестный. Преступление: Ограбление. Подозреваемый: %s",sendername);
				SendCopsMessage(playerid, 0xFEBC41AA, string);
			    robhouse[playerid] =1;
		    	HouseInfo[h][hTakings] -=50;
	   				}
	   			}
   			}
   			}
   		}
    return 1;
	}
ко всем new:
PHP:
new Army;
в OnGameModeInit:
PHP:
Army = GangZoneCreate(-49.979476, 1695.982177, 414.020507, 2175.982177);
в OnPlayerLogin:
PHP:
GangZoneShowForPlayer(playerid, Army, 0xE2C800AA);
в public OnPlayerDeath:
PHP:
if(IsAArm(killerid))
    {
        if(IsAGang(playerid) || IsABiker(playerid))
        {
            if(PlayerToPoint(100.0, killerid, 2746.1118,-2444.9143,13.6484) || PlayerToPoint(150.0, killerid, 204.4098,1912.7648,17.6406) || PlayerToPoint(150.0, killerid, -1409.8993,401.5589,7.1875))
            {
                if(PlayerToPoint(100.0, playerid, 2746.1118,-2444.9143,13.6484) || PlayerToPoint(150.0, playerid, 204.4098,1912.7648,17.6406) || PlayerToPoint(150.0, playerid, -1409.8993,401.5589,7.1875))
                {
                    PlayerInfo[killerid][pRespect] += 1;
                }
            }
        }
Вот и всё ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу