PHP код:
public OnGameModeInit()
{
new STREAMER_TYPE_AREA area = CreateDynamicSphere(310.4742, 2055.8142, 17.6, 2.0);
SetAreaFunction(area, GoodArea:test);
}
// - Первый вариант
AreaResponse:test(playerid, response, key)
{
switch(response)
{
case GA_RESPONSE_ENTER:
{
SendClientMessage(playerid, -1, "Вы вошли зону");
}
case GA_RESPONSE_LEAVE:
{
SendClientMessage(playerid, -1, "Вы вышли из зоны");
}
case GA_RESPONSE_PRESS_KEY:
{
if(key & KEY_WALK) SendClientMessage(playerid, -1, "Вы нажали на ALT в зоне");
else if(key == KEY_JUMP) SendClientMessage(playerid, -1, "Вы нажали на прыжок в зоне");
else SendClientMessage(playerid, -1, "Вы нажали на кнопку в зоне");
}
}
return 1;
}
// - Второй вариант
goodarea test(playerid, response, key)
{
switch(response)
{
case GA_RESPONSE_ENTER:
{
SendClientMessage(playerid, -1, "Вы вошли зону");
}
case GA_RESPONSE_LEAVE:
{
SendClientMessage(playerid, -1, "Вы вышли из зоны");
}
case GA_RESPONSE_PRESS_KEY:
{
if(key & KEY_WALK) SendClientMessage(playerid, -1, "Вы нажали на ALT в зоне");
else if(key == KEY_JUMP) SendClientMessage(playerid, -1, "Вы нажали на прыжок в зоне");
else SendClientMessage(playerid, -1, "Вы нажали на кнопку в зоне");
}
}
return 1;
}
Группы:
PHP код:
public OnGameModeInit()
{
new group1 = CreateGroupGoodAreas(GoodArea:test);
new STREAMER_TAG_AREA:area = CreateDynamicSphere(310.4742, 2055.8142, 17.6, 2.0);
CreateDynamicCP(310.4742, 2055.8142, 17.6, 2.0);
AddGroupGoodAreas(group1, area, 1);
area = CreateDynamicSphere(310.4742, 2050.0, 17.6, 2.0);
CreateDynamicCP(310.4742, 2050.0, 17.6, 2.0);
AddGroupGoodAreas(group1, area, 2);
return 1;
}
// - Первый вариант
GAResponse:test(playerid, response, key, index)
{
new string[144];
switch(response)
{
case GA_RESPONSE_ENTER:
{
format(string, sizeof string, "Вы вошли зону с индексом %d", index);
SendClientMessage(playerid, -1, string);
}
case GA_RESPONSE_LEAVE:
{
format(string, sizeof string, "Вы вышли из зоны с индексом %d", index);
SendClientMessage(playerid, -1, string);
}
case GA_RESPONSE_PRESS_KEY:
{
if(key & KEY_WALK)
{
format(string, sizeof string, "Вы нажали на ALT в зоне с индексом %d", index);
SendClientMessage(playerid, -1, string);
}
else if(key == KEY_JUMP)
{
format(string, sizeof string, "Вы нажали на прыжок в зоне с индексом %d", index);
SendClientMessage(playerid, -1, string);
}
else
{
format(string, sizeof string, "Вы нажали на кнопку в зоне с индексом %d", index);
SendClientMessage(playerid, -1, string);
}
}
}
return 1;
}
// - Второй вариант
goodgarea test(playerid, response, key, index)
{
new string[144];
switch(response)
{
case GA_RESPONSE_ENTER:
{
format(string, sizeof string, "Вы вошли зону с индексом %d", index);
SendClientMessage(playerid, -1, string);
}
case GA_RESPONSE_LEAVE:
{
format(string, sizeof string, "Вы вышли из зоны с индексом %d", index);
SendClientMessage(playerid, -1, string);
}
case GA_RESPONSE_PRESS_KEY:
{
if(key & KEY_WALK)
{
format(string, sizeof string, "Вы нажали на ALT в зоне с индексом %d", index);
SendClientMessage(playerid, -1, string);
}
else if(key == KEY_JUMP)
{
format(string, sizeof string, "Вы нажали на прыжок в зоне с индексом %d", index);
SendClientMessage(playerid, -1, string);
}
else
{
format(string, sizeof string, "Вы нажали на кнопку в зоне с индексом %d", index);
SendClientMessage(playerid, -1, string);
}
}
}
return 1;
}