Alex_Lincoln
Компетентный
Система актера на сервер суть актера будет подсказывать игрокам что да и как
Автор Олежка
Обязателен include a_actor
Добавим к инклудам:
В начало мода:
В public OnGameModeInit
ВНИМАНИЕ!!! Вместо данных координатов укажите свои координаты и угол поворота актёра! И скин свой выберите!!
Сама функция:
В public OnPlayerConnect
В public OnDialogResponse
• если у вас стоит switch(dialogid), то
• если у вас перечисление (типа if(dialogid == ..), то
Функция: в конец мода
Далее в конце мода создаём паблик:
У кого есть foreach, то вместо паблика выше - паблик ниже:
Автор Олежка
Обязателен include a_actor
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Добавим к инклудам:
PHP:
#include a_actor
PHP:
new bool: bot[MAX_PLAYERS];
new boty[MAX_PLAYERS];
PHP:
SetTimer("SecTimer", 1000, 1);
CreateActor(60, 1953.7014,1340.8524,15.3746,302.5011);
Сама функция:
PHP:
CreateActor(скин, координата Х, координата У, координата Z, угол поворота);
PHP:
bot[playerid] = false;
boty[playerid] = 0;
• если у вас стоит switch(dialogid), то
PHP:
case 1521:
{
if(!response)
{
bot[playerid] = false;
boty[playerid] = 10;
return 1;
}
bot[playerid] = true;
switch(listitem)
{
case 0: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "Мне зовут Oliver. Моя фамилия Green. Я живу не подолёку.", "Ясно", "");
case 1: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "Иди в мэрию. Там тебе всё покажут и расскажут.", "Ясно", "");
case 2: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "Возле Глен-Парка есть ночлежка. Таксист отвезёт.", "Ясно", "");
case 3: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "В мэрии. Там всё показано. Иди да прочитай.", "Ясно", "");
case 4: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "Нет, а вот лесопилка без работяг. Дуй туда!", "Ясно", "");
case 5: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "Меня кстате Oliver зовут.", "Ясно", "");
}
}
case 1522:
{
bot[playerid] = false;
boty[playerid] = 10;
return 1;
}
PHP:
if(dialogid == 1521)
{
if(!response)
{
bot[playerid] = false;
boty[playerid] = 10;
return 1;
}
bot[playerid] = true;
switch(listitem)
{
case 0: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "Мне зовут Oliver. Моя фамилия Green. Я живу не подолёку.", "Ясно", "");
case 1: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "Иди в мэрию. Там тебе всё покажут и расскажут.", "Ясно", "");
case 2: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "Возле Глен-Парка есть ночлежка. Таксист отвезёт.", "Ясно", "");
case 3: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "В мэрии. Там всё показано. Иди да прочитай.", "Ясно", "");
case 4: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "Нет, а вот лесопилка без работяг. Дуй туда!", "Ясно", "");
case 5: ShowPlayerDialog(playerid, 1522, DIALOG_STYLE_MSGBOX, "Разговор с ботом:", "Меня кстате Oliver зовут.", "Ясно", "");
}
}
else if(dialogid == 1522)
{
bot[playerid] = false;
boty[playerid] = 10;
return 1;
}
PHP:
stock PlayerToActor(Float:radi, playerid, actorid)
{
if(IsPlayerConnected(playerid))
{
new Float:pos[3],Float:actpos[3],Float:temppos[3];
GetPlayerPos(playerid, actpos[0], actpos[1], actpos[2]);
GetActorPos(actorid, pos[0], pos[1], pos[2]);
temppos[0] = (actpos[0] -pos[0]); temppos[1] = (actpos[1] -pos[1]); temppos[2] = (actpos[2] -pos[2]);
if (((temppos[0] < radi) && (temppos[0] > -radi)) && ((temppos[1] < radi) && (temppos[1] > -radi)) && ((temppos[2] < radi) && (temppos[2] > -radi))) return true;
}
return false;
}
PHP:
forward SecTimer();
public SecTimer()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerToActor(1.2, i, 0))
{
if(bot[i] == true) return 1;
if(boty[i] > 0) return 1;
ShowPlayerDialog(i, 1521, DIALOG_STYLE_LIST, "Oliver: - Что-то хотел?","Кто ты?\nЯ только прилетел, где тут можно оформить документы?\nГде мне можно переночевать?\nКак мне устроиться на работу?\nУ тебя нет для меня работы?\nНет-нет. Нечего не хотел.", "Выбрать", "Отмена");
bot[i] = true;
}
boty[i] --;
}
return 1;
}
PHP:
forward SecTimer();
public SecTimer()
{
foreach(Player, i)
{
if(PlayerToActor(1.2, i, 0))
{
if(bot[i] == true) return 1;
if(boty[i] > 0) return 1;
ShowPlayerDialog(i, 1521, DIALOG_STYLE_LIST, "Oliver: - Что-то хотел?","Кто ты?\nЯ только прилетел, где тут можно оформить документы?\nГде мне можно переночевать?\nКак мне устроиться на работу?\nУ тебя нет для меня работы?\nНет-нет. Нечего не хотел.", "Выбрать", "Отмена");
bot[i] = true;
}
boty[i] --;
}
return 1;
}
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Последнее редактирование модератором:
