PDA

Просмотр полной версии : [Вопрос] Пикапы



[ForD]
15.03.2015, 20:07
Ранее вроде сталкивался с этим но не помню как решил проблему.
В общем,имеется несколько пикапов,и действие при поднятии пикапа выглядит примерно так:


public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == QFPickap)
{
DestroyPickup(QFPickap);
switch(qstep)
{
case 0:
{
//действие
qstep = 1;
return 1;
}
case 1:
{
//действие
qstep = 2;
return 1;
}
case 2:
{
//действие
qstep = 3;
return 1;
}
case 3:
{
//действие
qstep = 4;
return 1;
}
case 4:
{
//действие
return 1;
}
}
}
if(pickupid == QPickap)
{
if(qstep == 0)//Доп. действие если qstep = 0
DestroyPickup(QPickap);
qstep = 5;
//действие
return 1;
}
return 1;
}

И в итоге когда беру 1 из пикапов начинает выполнятся действие в этом паблике для пикапа который идет 1 по значению,тобеш например сначала стоит if(pickupid == Qpikap) далее действие,и именно этот паблик будет выполнятся,и тоже самое если сначала будет if(pickupid == QFPikap),остальные проверки игнорируются вне значении какой я пикап взял QFPikap или QPikap

$continue$
15.03.2015, 21:33
Ну дак так и код и выглядит, в чем проблема то?

[ForD]
15.03.2015, 21:49
Ну дак так и код и выглядит, в чем проблема то?

Ну я пытался-же сказать,хотя сча в коде покажу ->


//взяли пикап QPikap

//Далее должна идти обработка через этот паблик
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == QFPickap) //Мы взяли пикап QPikap а не QFPikap,но срабатывает именно этот
{
DestroyPickup(QFPickap);
switch(qstep)
{
case 0:
{
//действие
qstep = 1;
return 1;
}
case 1:
{
//действие
qstep = 2;
return 1;
}
case 2:
{
//действие
qstep = 3;
return 1;
}
case 3:
{
//действие
qstep = 4;
return 1;
}
case 4:
{
//действие
return 1;
}
}
}
if(pickupid == QPickap) //А не этот...
{
if(qstep == 0)//Доп. действие если qstep = 0
DestroyPickup(QPickap);
qstep = 5;
//действие
return 1;
}
return 1;
}

$continue$
15.03.2015, 22:32
Не?


else if(pickupid == QPickap) //А не этот...
{
if(qstep == 0)//Доп. действие если qstep = 0
DestroyPickup(QPickap);
qstep = 5;
//действие
return 1;
}

[ForD]
15.03.2015, 22:51
Не?


else if(pickupid == QPickap) //А не этот...
{
if(qstep == 0)//Доп. действие если qstep = 0
DestroyPickup(QPickap);
qstep = 5;
//действие
return 1;
}


в принципе нет,но завтра попробую через switch сделать,сразу об этом не подумал что-то..

[ForD]
16.03.2015, 21:58
;59778']в принципе нет,но завтра попробую через switch сделать,сразу об этом не подумал что-то..

Самое тупое что я мог предположить..

Впрочем если кто знает в чем могла быть проблема отпишитесь