Доступ к готовым решениям

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

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

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

Мануал Работа Шахтёра [new.pwn] №2

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

Merlin

Умник


Автор вырезки: Merlin
Мод: Eliment RolePlay
Ко всем new Добавим

PHP:
new bool:MinerJoins[MAX_PLAYERS], MinerP[2], MinerCP[2][MAX_PLAYERS], MinerPay[MAX_PLAYERS];
new RandomMiner[][1] =
{
	{23},
	{36},
	{31},
	{56},
	{27},
	{39},
	{51},
	{28},
	{45}
};
public OnPlayerPickUpDynamicPickup(playerid, pickupid)
PHP:
playerid	ID игрока, который подобрал пикап.
PHP:
pickupid	ID пикапа, возвращаемый функцией CreatePickup.

PHP:
for(new t=0;t<TOTAL_TELEPORT;t++)//цикл
    {
        if(pickupid == TeleportInfo[t][tPickup])//проверка на пикап который встали
        {
            SetPlayerPos(playerid,TeleportInfo[t][txX],TeleportInfo[t][txY],TeleportInfo[t][txZ]);//тп на координаты
            SetPlayerInterior(playerid, TeleportInfo[t][txIntor]);//устанавливаем инт
            SetPlayerVirtualWorld(playerid, TeleportInfo[t][txVW]);//устанавливаем мир
        }
    }
    if(pickupid == MinerP[0])
	{
	    if(MinerJoins[playerid] == false)
	    {
	    	new string[512];
			format(string, sizeof(string),"{FFFFFF}Здраствуйте...\nВы находитесь на территории карьера по добычи железа\nНаш карьер постовляет железо заводам штата\nНам сейчас нужны люди для работы на заводе\nМы предлогаем тебе немного поработать на Карьере. Ты согласен?\n\n\t{FF9900}Примечание:\n\t-Работать можно сколько угодно\n\t-За каждый кг ты будешь получать 5$");
			ShowPlayerDialog(playerid,160, DIALOG_STYLE_MSGBOX,"{6699FF}Работа | {FFFFFF}Шахтера", string, "Согласен", "Не согласен");
		}
		else ShowPlayerDialog(playerid, 160, DIALOG_STYLE_MSGBOX, "{6699FF}Работа | {FFFFFF}Шахтера", "{FFFFFF}Вы хотите собрать свои честно заработаные деньги?\nВы так же можете продолжать работу", "Заберу", "Продолжу");
	}
	if(pickupid == MinerP[1])
	{
	    new string[520];
	    SetPlayerCameraPos(playerid, 517.1011, 818.7740, -9.1641);
		SetPlayerCameraLookAt(playerid, 517.8467, 819.4469, -9.5541, 1);
        TogglePlayerControllable(playerid, 0);
		format(string, sizeof(string), "{FFFFFF}Добро пожаловать на карьер по добычи железа штата {6699FF}\n{FFFFFF}Тут вы можете заработать денег.\nШахтер одна из важных работ нашего штат.\nБез нашего железа завод не сможет производить продукты\nРаботать шахтером может любой и в любое время суток.\nЦена за 1 кг железа 5$.");
		ShowPlayerDialog(playerid, 17, DIALOG_STYLE_MSGBOX, "{6699FF}Работа | {FFFFFF}Шахтер | Информация", string, "Ок", "");
	}
После переходим в public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
PHP:
playerid	ID игрока, который совершил действие с диалогом
PHP:
dialogid	ID диалога, в котором игрок совершил действие.
PHP:
response	Возвращает 1 - при выборе первой кнопки и 0 при выборе второй кнопки
PHP:
listitem	ID выбранного пункта из списка
PHP:
inputtext[]	Текст, введенный игроком в поле ввода или текст из выбранного пункта списка
PHP:
//=========
		case 160:
		{
			if(response)
			{
				if(MinerJoins[playerid] == false)
				{
					MinerJoins[playerid] = true;
					SetPlayerSkin(playerid, 16);
					ApplyAnimation(playerid, "CARRY", "liftup", 4.1, 0, 0, 0, 0, 0);
					ApplyAnimation(playerid, "SWORD", "sword_4", 4.0, 1, 0, 0, 0, 0);
					ClearAnimations(playerid);
					SetPlayerAttachedObject(playerid, 1, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );
					switch(random(8))
					{
						case 0: MinerCP[0][playerid] = CreateDynamicCP(573.8541,936.7878,-42.1241, 1, 0, 0, playerid, 100);
						case 1: MinerCP[0][playerid] = CreateDynamicCP(569.7633,935.4153,-42.0132, 1, 0, 0, playerid, 100);
						case 2: MinerCP[0][playerid] = CreateDynamicCP(564.0020,933.9018,-42.0097, 1, 0, 0, playerid, 100);
						case 3: MinerCP[0][playerid] = CreateDynamicCP(556.6031,932.1396,-42.0140, 1, 0, 0, playerid, 100);
						case 4: MinerCP[0][playerid] = CreateDynamicCP(532.6036,919.5311,-42.2788, 1, 0, 0, playerid, 100);
						case 5: MinerCP[0][playerid] = CreateDynamicCP(584.7632,940.2222,-42.8882, 1, 0, 0, playerid, 100);
						case 6: MinerCP[0][playerid] = CreateDynamicCP(594.8290,941.3293,-41.1934, 1, 0, 0, playerid, 100);
						case 7: MinerCP[0][playerid] = CreateDynamicCP(601.6733,941.4015,-39.6197, 1, 0, 0, playerid, 100);
					}
				}
				else if(MinerJoins[playerid] == true)
				{
					new string[128];
					SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
					MinerJoins[playerid] = false;
					if(IsPlayerAttachedObjectSlotUsed(playerid, 1)) RemovePlayerAttachedObject(playerid, 1);
					SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
					GivePlayerMoney(playerid, MinerPay[playerid]*5);
					format(string, sizeof(string), "~g~+%d$", MinerPay[playerid]*5);
					GameTextForPlayer(playerid, string, 5000, 1);
					DestroyDynamicCP(MinerCP[0][playerid] || MinerCP[1][playerid]);
					format(string, sizeof(string), "Вы закончили рабочий день.Всего вы пренисли {FFFFFF}%d кг{33AA33} сырья. Ваш заработок {FFFFFF}%d$", MinerPay[playerid], MinerPay[playerid]*5);
					SendClientMessage(playerid, COLOR_GREEN, string);
				}
			}
		}
	case 17: if(response) SetCameraBehindPlayer(playerid),TogglePlayerControllable(playerid, 1);
В конце мода
PHP:
forward Joins(playerid);
public Joins(playerid)
{
    new JoinsTimer[MAX_PLAYERS];
    if(MinerJoins[playerid] == true)
    {
        ApplyAnimation(playerid, "CARRY", "liftup", 4.1, 0, 0, 0, 0, 0);
        SetPlayerAttachedObject(playerid, 1, 2912, 5, -0.0370, 0.1920, -0.1909, 8.09, 15.10, -3.50, 0.57, 0.40, 1.00);
        JoinsTimer[playerid] = SetTimerEx("JoinSklad",1500,false,"i", playerid);
    }
	return true;
}
forward JoinSklad(playerid);
public JoinSklad(playerid)
{
	if(MinerJoins[playerid] == true)
    {
        ClearAnimations(playerid);
	    SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY);
	    MinerCP[1][playerid] = CreateDynamicCP(562.0928,892.8556,-43.1236, 2, 0, 0, playerid, 300);
    }
	return true;
}
После в public OnGameModeInit()//события, когда загружается мод
PHP:
MinerP[0] = CreateDynamicPickup(1275, 23, 601.8524,867.9759,-42.9609, 0, 0, -1, 100);
	MinerP[1] = CreateDynamicPickup(1239, 2, 586.1956,869.9437,-42.4973, 0, 0, -1, 100);
В public OnPlayerEnterCheckpoint(playerid)// Наступление игроком на Чекпоинт
PHP:
new JoinsTimer[MAX_PLAYERS];
if(IsPlayerInRangeOfPoint(playerid, 1,573.8541,936.7878,-42.1241) ||
	IsPlayerInRangeOfPoint(playerid, 1, 569.7633,935.4153,-42.0132) ||
	IsPlayerInRangeOfPoint(playerid, 1, 564.0020,933.9018,-42.0097) ||
	IsPlayerInRangeOfPoint(playerid, 1, 556.6031,932.1396,-42.0140) ||
	IsPlayerInRangeOfPoint(playerid, 1, 532.6036,919.5311,-42.2788) ||
	IsPlayerInRangeOfPoint(playerid, 1, 584.7632,940.2222,-42.8882) ||
	IsPlayerInRangeOfPoint(playerid, 1, 594.8290,941.3293,-41.1934) ||
	IsPlayerInRangeOfPoint(playerid, 1, 601.6733,941.4015,-39.6197))
	{
	    ApplyAnimation(playerid, "SWORD", "sword_4", 4.1, 1, 1, 1, 1, 0);
	    JoinsTimer[playerid] = SetTimerEx("Joins",9800,false,"i",playerid);
	    DestroyDynamicCP(MinerCP[0][playerid]);
	}
	if(IsPlayerInRangeOfPoint(playerid, 2,562.0928,892.8556,-43.1236))
	{
	    new minerkol[MAX_PLAYERS], string[128];
 		SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
	    minerkol[playerid] = RandomMiner[random(sizeof(RandomMiner))][0];
	    MinerPay[playerid] += minerkol[playerid];
		format(string, sizeof(string), "Вы пренисли {FFFFFF}%d кг {33AA33}сырья. Всего вы пренисли {FFFFFF}%d кг {33AA33}сырь.",minerkol[playerid], MinerPay[playerid]);
		SendClientMessage(playerid, COLOR_GREEN, string);
  		SetPlayerAttachedObject(playerid, 1, 18634, 6, 0.078222, 0.000000, 0.110844, 298.897308, 264.126861, 193.350555, 1.000000, 1.000000, 1.000000 );
        DestroyDynamicCP(MinerCP[1][playerid]);
        ApplyAnimation(playerid, "CARRY", "PUTDWN", 4.1, 0, 1, 1, 0, 0, 1);
		switch(random(8))
		{
			case 0: MinerCP[0][playerid] = CreateDynamicCP(573.8541,936.7878,-42.1241, 1, 0, 0, playerid, 100);
			case 1: MinerCP[0][playerid] = CreateDynamicCP(569.7633,935.4153,-42.0132, 1, 0, 0, playerid, 100);
			case 2: MinerCP[0][playerid] = CreateDynamicCP(564.0020,933.9018,-42.0097, 1, 0, 0, playerid, 100);
			case 3: MinerCP[0][playerid] = CreateDynamicCP(556.6031,932.1396,-42.0140, 1, 0, 0, playerid, 100);
			case 4: MinerCP[0][playerid] = CreateDynamicCP(532.6036,919.5311,-42.2788, 1, 0, 0, playerid, 100);
			case 5: MinerCP[0][playerid] = CreateDynamicCP(584.7632,940.2222,-42.8882, 1, 0, 0, playerid, 100);
			case 6: MinerCP[0][playerid] = CreateDynamicCP(594.8290,941.3293,-41.1934, 1, 0, 0, playerid, 100);
			case 7: MinerCP[0][playerid] = CreateDynamicCP(601.6733,941.4015,-39.6197, 1, 0, 0, playerid, 100);
		}
	}
И верху мода добавим ) если есть то не надо
PHP:
enum tTeleport
{
    tID,//ид в базе
    tModel,//модель
    Float:tX,//Координата пикапа
    Float:tY,//Координата пикапа
    Float:tZ,//Координата пикапа
    tVW,//ид мира пикапа
    tIntor,//ид интора пикапа
    Float:txX,//Координата телепорта
    Float:txY,//Координата телепорта
    Float:txZ,//Координата телепорта
    txVW,//ид мира телепорта
    txIntor,//ид мира телепорта
    tPickup//используется для создания пикапа
}
new TeleportInfo[MAX_TELEPORT][tTeleport];
new TOTAL_TELEPORT = 0;
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу