- Регистрация
- 6 Апр 2016
- Сообщения
- 38
- Лучшие ответы
- 0
- Репутация
- 3
Доброго времени суток,ребята, прошу помощи,т.к. в интернете не нашел путей реализации.
Делаю систему квеста, задание заключается в том, чтобы убить продавца одежды и забрать вещи.
Заходим в интерьер - наводим ствол на продавца, выбираем "убить", забираем,уходим.
Все ровно работает,но! Если следующий попробует то же самое, то ничего происходить не будет при прицеле на актера., хотя я удаляю актера при убийстве, а добавлю при входе по пикапу(разумеется, ограничил кол-во входов до 1) Возможно, проблема в "new playerTargetActor", но как быть - не знаю.
Вопрос: как сделать,чтобы данный квест выполнять могли все? Я сделал, вышел, заходит и делает следующий.( убрал воду из кода,чтобы было видно )
Пикапы
public OnPlayerUpdate:
Диалог убийства:
Делаю систему квеста, задание заключается в том, чтобы убить продавца одежды и забрать вещи.
Заходим в интерьер - наводим ствол на продавца, выбираем "убить", забираем,уходим.
Все ровно работает,но! Если следующий попробует то же самое, то ничего происходить не будет при прицеле на актера., хотя я удаляю актера при убийстве, а добавлю при входе по пикапу(разумеется, ограничил кол-во входов до 1) Возможно, проблема в "new playerTargetActor", но как быть - не знаю.
Вопрос: как сделать,чтобы данный квест выполнять могли все? Я сделал, вышел, заходит и делает следующий.( убрал воду из кода,чтобы было видно )
Пикапы
PHP:
if(pickupid == PickupQuestb1[0])// в 1 квест
{
if(pInfo[playerid][pQuest] == 1)
{
if(massq1 == 1) return SendClientMessage(playerid,COLOR_ORANGE, "[Система оповещения]: Двери заблокированы, ожидайте выхода человека");
SetPlayerPos(playerid, 1388.4418,-19.1036,1001.4044);
SetPlayerVirtualWorld(playerid, 0);
TogglePlayerControllable(playerid, 0);
AnActors[0] = CreateActor(23, 1388.5270,-28.4839,1001.4044,2.6426);
SetTimerEx("Ice",3000,false, "i", playerid);
SetPVarInt(playerid, "OnQuestPeople", 1);
massq1 = 1;
}
else
{
SendClientMessage(playerid,COLOR_ORANGE, "[Система оповещения]: Убирайся,или я снесу тебе башку");
}
}
if(pickupid == PickupQuestb1[1])// из 1 квеста
{
SetPlayerPos(playerid, 2244.1360,-1663.6471,15.4766);
SetPlayerVirtualWorld(playerid, 0);
TogglePlayerControllable(playerid, 0);
SetTimerEx("Ice",3000,false, "i", playerid);
if(GetPVarInt(playerid, "Quest1") == 1)
{
DeletePVar(playerid, "OnQuestPeople");
massq1 = 0;
}
return 1;
}
PHP:
new playerTargetActor = GetPlayerCameraTargetActor(playerid);
// If they ARE looking at ANY actor
if(playerTargetActor != INVALID_ACTOR_ID)
{
new playerWeapon = GetPlayerWeapon(playerid);
new keys, updown, leftright;
GetPlayerKeys(playerid, keys, updown, leftright);
if(!ActorHandsup[playerTargetActor] && playerWeapon >= 22 && playerWeapon <= 42 && keys & KEY_AIM)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,1388.5270,-28.4839,1001.4044))
{
if(pInfo[playerid][pQuest] == 1)
{
ApplyActorAnimation(playerTargetActor, "SHOP", "SHP_HandsUp_Scr",4.1,0,0,10000,1,0);
ActorHandsup[playerTargetActor] = true;
SetActorChatBubble(playerTargetActor, "Не убивай пожалуйста, я все сделаю", 0xCDC673FF, 10.0, 3);
SetTimerEx("DeathAnimation", 1000*15, false, "i", playerTargetActor);
ShowPlayerDialog(playerid,12287,DIALOG_STYLE_LIST,"Выберите действие","Убить продавца","Кнопка 1","Кнопка 2");
}
}
}
}
PHP:
if(dialogid == 12287)
{
if(response)
{
if(listitem == 0)
{
SendClientMessage(playerid,0x88AA88AA,"Ты застрелил продавца");
DestroyActor(AnActors[0]);
}
}
else
{
SendClientMessage(playerid,0x88AA88AA,"Ты случайно застрелил продавца");
DestroyActor(AnActors[0]);
return 1;
}
}