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

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

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

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

Пикап для одного.

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

Qwerty +

Новичок
Здравствуйте еще раз ув. пользователи p-i.ru

Сегодня, доработал работу мусорщика.
Принцип ошибки таков:

2 игрока начали работу. Первый подъехав к мусорному баку видит появившиеся пикап в заде авто. Подъезжает второй игрок, у второго игрока тоже появляется пикап в заде авто.
Все как должно быть. но!
Когда первый игрок взял мусорный пакет из бака и подбежал к своему пикапу, то никакого действия не происходит. Действие происходит у второго пикапа, то есть как второй игрок подъехал, так и получается что второй пикап на двоих.

Вывод: первый пикап первого игрока никому не нужен.

Помогите исправить этот баг. То есть надо чтобы каждый пикап был привязан к своему хозяину(тот кто начал маршрут).

Код: создания пикапа:
PHP:
if(GetPVarInt(playerid, "marmus1") == 1) // проверка на маршрут
{
if(mAmmount[playerid] == 1) // если начал маршрут, то выдается значение - 1. таким образом идет проверка
{
if(GetVehicleModel(carid) == 408) {
DisablePlayerCheckpoint(playerid);
SetVehicleVelocity(carid, 0.0, 0.0, 0.0); // останавливает авто
GetVehiclePos(carid, X,Y,Z);
pmarmus1 = CreatePickup(19197, 23, X-5.1, Y, Z+0.1); // создается пикап
SendClientMessage(playerid, COLOR_WHITE, "Соберите мусор в помоичном баке.");
SetPlayerCheckpoint(playerid, 1862.9639,-1925.3470,13.5469,3.0); }
}
if(mAmmount[playerid] == 1 && IsPlayerInRangeOfPoint(playerid,3.0,1862.9639,-1925.3470,13.5469) || mAmmount[playerid] == 2 && IsPlayerInRangeOfPoint(playerid,3.0,1862.9639,-1925.3470,13.5469)) // проверка на наличие переменной и где стоит игрок
{
if(!IsPlayerInAnyVehicle(playerid)) {
DisablePlayerCheckpoint(playerid); mAmmount[playerid] ++;
SetPlayerAttachedObject(playerid, 1, 1264, 1,0.20,0.36,0.0,0.0,90.0, 0.0, 0.4, 0.3, 0.6);
ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,1,0,0,1,1,1); }
}
Код: проверка: стоит ли игрок на пикапе:
PHP:
if(pickupid == pmarmus1)
{
if(GetPVarInt(playerid, "marmus1") == 1) // проверка на маршрут
{
new mchek = random(3);
if(mAmmount[playerid] == 2)
{
ApplyAnimation(playerid, "WEAPONS", "SHP_1H_RET",4.0,0,0,0,0,0,1);
if(IsPlayerAttachedObjectSlotUsed(playerid,1)) RemovePlayerAttachedObject(playerid,1);// забрали тачку
SetPlayerCheckpoint(playerid, 1862.9639,-1925.3470,13.5469,3.0);
}
if(mAmmount[playerid] == 3)
{
ApplyAnimation(playerid, "WEAPONS", "SHP_1H_RET",4.0,0,0,0,0,0,1);
if(IsPlayerAttachedObjectSlotUsed(playerid,1)) RemovePlayerAttachedObject(playerid,1);// забрали объект
DestroyPickup(pmarmus1); // удаляет старый пикап, а создается только тогда когда игрок достиг новой точки
mAmmount[playerid] ++;
switch(mchek)
{
case 0: SetPlayerCheckpoint(playerid, 1815.9630,-1673.6151,13.5469,3.0);
case 1: SetPlayerCheckpoint(playerid, 1827.2689,-1683.6366,13.5469,3.0);
case 2: SetPlayerCheckpoint(playerid, 1815.7969,-1693.1442,13.5469,3.0);
}
}
P.S. Выписал только начало работы, а то слишком уж большой код будет :3
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу