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

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

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

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

Spawn in hospital.

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

sKeLeT

Изучающий
Регистрация
11 Июн 2011
Сообщения
421
Лучшие ответы
0
Репутация
102
Spawn in hospital | Спавн в больнице

- Добрый день пользователи Pawno-info.Ru.
- Сейчас я Вам расскажу, как сделать спавн, после смерти/убийства в госпитале/больнице.
- Не забывайте, это для GF.(вырезка SA)

1. Убираем:
PHP:
new MedicTime[MAX_PLAYERS];
new NeedMedicTime[MAX_PLAYERS];
- И в onplayerconnect'е убираем:
PHP:
MedicTime[playerid] = 0; NeedMedicTime[playerid] = 0;
2. Ко всем new, добавляем:
PHP:
new Hospital[MAX_PLAYERS];
3. В OnPlayerConnect добавляем:
PHP:
    Hospital[playerid] = 0;
4. Ищем public/stock SetPlayerSpawn и видим там:
PHP:
		if(MedicBill[playerid] == 1 && PlayerInfo[playerid][pJailed] == 0 && PlayerPaintballing[playerid] == 0)
		{
		    new string[256];
		    new cut = deathcost; //PlayerInfo[playerid][pLevel]*deathcost;
			GivePlayerMoney(playerid, -cut);
			format(string, sizeof(string), "DOC: Счёт за ваше медицинское обслуживание равен $%d, Приятного дня.", cut);
			SendClientMessage(playerid, TEAM_CYAN_COLOR, string);
			MedicBill[playerid] = 0;
			MedicTime[playerid] = 0;
			NeedMedicTime[playerid] = 0;
			PlayerInfo[playerid][pDeaths] += 1;
			SetPlayerHealth(playerid, 25.0);
		    /*SetPlayerInterior(playerid, 5);
	        rand = random(sizeof(gMedicSpawns));
			SetPlayerPos(playerid, gMedicSpawns[rand][0], gMedicSpawns[rand][1], gMedicSpawns[rand][2]); // Warp the player
			SetPlayerFacingAngle(playerid, 270.0);
	        TogglePlayerControllable(playerid, 0);
	        GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~y~You are recovering from your ~r~wounds~y~...", 35000, 3);
	        MedicTime[playerid] = 1;
	        if(PlayerInfo[playerid][pDonateRank] > 0)
	        {
	            NeedMedicTime[playerid] = 30;
	        }
	        else
	        {
	        	NeedMedicTime[playerid] = 60;
			}
	        PlayerPlaySound(playerid, 1062, 0.0, 0.0, 0.0);
		    return 1;*/
		}
- Выше написанное, заменяем этим:
PHP:
if(Hospital[playerid] == 1 || PlayerInfo[playerid][pNeedTime] > 0 && PlayerInfo[playerid][pJailed] == 0)
 		{
 		    ResetPlayerWeapons(playerid);
			MedicBill[playerid] = 0;
			Hospital[playerid] = 2;
   			PlayerInfo[playerid][pMedicTime] = 0;
			PlayerInfo[playerid][pNeedTime] = 0;
		 	SetPlayerPos(playerid, 1157.5624,-1317.6317,15.0851 ); // координаты Ваши
		 	SetPlayerFacingAngle(playerid, 180.0);
	        GameTextForPlayer(playerid, FixText("~n~~n~~n~~n~~n~~n~~n~~y~вы были положены в больницу~n~ожидайте выздоровления..."), 15000, 3);
	        PlayerInfo[playerid][pMedicTime] = 1;
	        if(PlayerInfo[playerid][pDonateRank] > 0)
	        {
	            PlayerInfo[playerid][pNeedTime] = 60;
	            SendClientMessage(playerid, COLOR_LIGHTRED, "Доктор: Вам повезло, уважаемый. Думаю вы тут ненадолго.");
	        }
	        else
	        {
	        	PlayerInfo[playerid][pNeedTime] = 120;
	        	SendClientMessage(playerid, COLOR_LIGHTRED, "Доктор: Как вас так угораздило! Ну что ж, приступим к процедурам!");
			}
	        PlayerPlaySound(playerid, 1062, 0.0, 0.0, 0.0);
	        return 1;
   		}
5. Находим if(newstate == PLAYER_STATE_WASTED) и сразу после этого:
PHP:
			if(count == 1)
			{
				GivePlayerMoney(playerid, - price);
				PlayerInfo[playerid][pWantedDeaths] += 1;
				PlayerInfo[playerid][pJailed] = 1;
			    PlayerInfo[playerid][pJailTime] = (WantedLevel[playerid])*(600);
			    format(string, sizeof(string), "* Вы находитесь в Тюрьме %d Секунды и теряете $%d и из-за побега можете быть застреленным Офицером.", PlayerInfo[playerid][pJailTime], price);
			    SendClientMessage(playerid, COLOR_LIGHTRED, string);
			    WantedPoints[playerid] = 0;
				WantedLevel[playerid] = 0;
			}
		}
- Вставляем:
PHP:
		new randdeath = random(10);
  		if(randdeath > 0 && randdeath < 3)
    	{
    	  //  PlayerInfo[playerid][pRPD] = 1;
			EmptyMessages(playerid, 50);
			SendClientMessage(playerid, COLOR_LIGHTRED, "Вы находитесь в критическом состоянии...");
			EmptyMessages(playerid, 5);
            Hospital[playerid] = 1;
		}
		else
		{
			EmptyMessages(playerid, 50);
			SendClientMessage(playerid, COLOR_LIGHTRED, "Вам повезло и вы остались в живых...");
			EmptyMessages(playerid, 5);
			Hospital[playerid] = 1;
		}
6. Затем добавляем ко всем forward's:
PHP:
forward EmptyMessages(playerid, count);
- И сразу добавляем public:
PHP:
public EmptyMessages(playerid, count){
    for (new i = 0; i < count; i++){SendClientMessage(playerid, 0, "\n");}
}
7. Добавляем к enum pInfo:
PHP:
	pMedicTime,
	pNeedTime,
- Далее идет смотря какая у Вас рега(на Dini или mxINI).
- В OnPlayerConnect добавляем:
PHP:
	PlayerInfo[playerid][pMedicTime] = 0;
	PlayerInfo[playerid][pNeedTime] = 0;
- В OnPlayerRegister добавляем:
PHP:
				format(var, 32, "MedicTime=%d\n",PlayerInfo[playerid][pMedicTime]);fwrite(hFile, var);
				format(var, 32, "NeedTime=%d\n",PlayerInfo[playerid][pNeedTime]);fwrite(hFile, var);
- В OnPlayerUpdate добавляем:
PHP:
				format(var, 32, "MedicTime=%d\n",PlayerInfo[playerid][pMedicTime]);fwrite(hFile, var);
				format(var, 32, "NeedTime=%d\n",PlayerInfo[playerid][pNeedTime]);fwrite(hFile, var);
- В OnPlayerLogin добавляем:
PHP:
		            if( strcmp( key , "MedicTime" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pMedicTime] = strval( val ); }
			        if( strcmp( key , "NeedTime" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pNeedTime] = strval( val ); }
8. В паблике OtherTimer ищите это:
PHP:
			if(MedicTime[i] > 0)
			{
			    if(MedicTime[i] == 3)
			    {
			        SetPlayerInterior(i, 5);
			        new Float:X, Float:Y, Float:Z;
			        GetPlayerPos(i, X,Y,Z);
			        SetPlayerCameraPos(i, X + 3, Y, Z);
			        SetPlayerCameraLookAt(i,X,Y,Z);
			    }
			    MedicTime[i] ++;
			    if(MedicTime[i] >= NeedMedicTime[i])
			    {
					new cut = deathcost; //PlayerInfo[playerid][pLevel]*deathcost;
					GivePlayerMoney(i, -cut);
					format(string, sizeof(string), "DOC: Твой врач забрал чаевые  в размере: $%d, Приятного дня.", cut);
					SendClientMessage(i, TEAM_CYAN_COLOR, string);
					TogglePlayerControllable(i, 1);
			        MedicBill[i] = 0;
			        MedicTime[i] = 0;
			        NeedMedicTime[i] = 0;
			        PlayerInfo[i][pDeaths] += 1;
			        PlayerFixRadio(i);
			        SpawnPlayer(i);
			    }
			}
- И заменяйте этим:
PHP:
			if(PlayerInfo[i][pMedicTime] > 0)
			{
			    PlayerInfo[i][pMedicTime] ++;
			    if(PlayerInfo[i][pMedicTime] >= PlayerInfo[i][pNeedTime])
			    {
					new cut = PlayerInfo[i][pLevel]*deathcost;
					GivePlayerMoney(i, -cut);
					format(string, sizeof(string), "* Ваше лечение обошлось вам в %d$. Будте осторожны!", cut);
					SendClientMessage(i, COLOR_LIGHTRED, string );
					PlayerPlayMusic(i);
					Hospital[i] = 0;
			        MedicBill[i] = 0;
			        PlayerInfo[i][pNeedTime] = 0;
			        PlayerInfo[i][pMedicTime] = 0;
			        PlayerInfo[i][pDeaths] += 1;
			        PlayerFixRadio(i);
			        SetPlayerToTeamColor(i);
			    }
			}
9. Добавляем stock:
PHP:
stock FixText(string[]) {
     new result[256];
     for(new i=0; i < 256; i++) {
          switch(string[i]) {
               case 'а':result[i] = 'a';
               case 'А':result[i] = 'A';
               case 'б':result[i] = '—';
               case 'Б':result[i] = 'Ђ';
               case 'в':result[i] = 'ў';
               case 'В':result[i] = '‹';
               case 'г':result[i] = '™';
               case 'Г':result[i] = '‚';
               case 'д':result[i] = 'љ';
               case 'Д':result[i] = 'ѓ';
               case 'е':result[i] = 'e';
               case 'Е':result[i] = 'E';
               case 'ё':result[i] = 'e';
               case 'Ё':result[i] = 'E';
               case 'ж':result[i] = '›';
               case 'Ж':result[i] = '„';
               case 'з':result[i] = 'џ';
               case 'З':result[i] = '€';
               case 'и':result[i] = 'њ';
               case 'И':result[i] = '…';
               case 'й':result[i] = 'њ';
               case 'Й':result[i] = '…';
               case 'к':result[i] = 'k';
               case 'К':result[i] = 'K';
               case 'л':result[i] = 'ћ';
               case 'Л':result[i] = '‡';
               case 'м':result[i] = 'Ї';
               case 'М':result[i] = 'M';
               case 'н':result[i] = '®';
               case 'Н':result[i] = '*';
               case 'о':result[i] = 'o';
               case 'О':result[i] = 'O';
               case 'п':result[i] = 'Ј';
               case 'П':result[i] = 'Њ';
               case 'р':result[i] = 'p';
               case 'Р':result[i] = 'P';
               case 'с':result[i] = 'c';
               case 'С':result[i] = 'C';
               case 'т':result[i] = '¦';
               case 'Т':result[i] = 'Џ';
               case 'у':result[i] = 'y';
               case 'У':result[i] = 'Y';
               case 'ф':result[i] = '˜';
               case 'Ф':result[i] = 'Ѓ';
               case 'х':result[i] = 'x';
               case 'Х':result[i] = 'X';
               case 'ц':result[i] = '*';
               case 'Ц':result[i] = '‰';
               case 'ч':result[i] = '¤';
               case 'Ч':result[i] = 'Ќ';
               case 'ш':result[i] = 'Ґ';
               case 'Ш':result[i] = 'Ћ';
               case 'щ':result[i] = 'Ў';
               case 'Щ':result[i] = 'Љ';
               case 'ь':result[i] = '©';
               case 'Ь':result[i] = '’';
               case 'ъ':result[i] = 'ђ';
               case 'Ъ':result[i] = '§';
               case 'ы':result[i] = 'Ё';
               case 'Ы':result[i] = '‘';
               case 'э':result[i] = 'Є';
               case 'Э':result[i] = '“';
               case 'ю':result[i] = '«';
               case 'Ю':result[i] = '”';
               case 'я':result[i] = '¬';
               case 'Я':result[i] = '•';
               default:result[i]=string[i];
          }
     }
     return result;
}
- Спасибо за внимание.
- Будут ошибки пишите, но я проверял и все вроде работает.
- Не забывайте указывать свои координаты.
- Мой скайп: lucky_drug.
- Кому не жалко +?
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу