Профиль
Информация Управление
Здравствуйте, уважаемый посетитель. К сожалению, Вы не были распознаны форумом, как зарегистрированный пользователь. Для полноценного использования возможностей нашего форума вам необходимо зарегистрироваться. Если вы уже зарегистрированы на форуме, то вам необходимо пройти авторизацию, используя Ваш логин и пароль. Зарегистрированные пользователи получают возможность возможность общения на нашем форуме.


[Новые сообщения · Правила форума · RSS ]
  • Страница 1 из 1
  • 1
[Tutorial] Зона, где нельзя использовать оружие и драться
Bloodcat Дата: Суббота, 17.09.2011, 12:09 | Сообщение # 1
Рядовой
Группа: Пользователи
Зарегистрирован: 16.09.2011
Сообщений: 1
Репутация: 0
Статус: Offline
Думаю, хороший урок для РП серверов.

Итак, вариант №1. Чтобы вообще нельзя было драться нигде.

Ко всем дефайнам:
Code
#define KEY_AIM 128


Ко всем форвардам:
Code
forward UnfreezePlayer(playerid);


Ищем:
Code
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)


Вставляем:
Code
    if( (newkeys & KEY_FIRE) || ( (newkeys & KEY_AIM) && (oldkeys & KEY_AIM) && (newkeys & KEY_SECONDARY_ATTACK) ) )
     {
         SendClientMessage(playerid, 0xFFFFFFAA, "Не деритесь!");
         TogglePlayerControllable(playerid, false);
         SetTimerEx("UnfreezePlayer", 3000, false, "i", playerid);
         return 1;
     }
     return 1;
}


В конце мода создаем public:
Code
public UnfreezePlayer(playerid)
return TogglePlayerControllable(playerid, true);


Вариант №2. В определенной зоне запрещаем ДМ.

Ко всем дефайнам:
Code
#define KEY_AIM 128  


Ко всем форвардам:
Code
forward UnfreezePlayer(playerid);  


Ищем:
Code
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)  


Вставляем:
Code
if( (newkeys & KEY_FIRE) || ( (newkeys & KEY_AIM) && (oldkeys & KEY_AIM) && (newkeys & KEY_SECONDARY_ATTACK) ) )
     {
     if(PlayerToPoint(20.0,playerid,703.7961,-1479.8300,5.4688))//ЗАМЕНИТЬ НА СВОИ КООРДИНАТЫ.
     {
         SendClientMessage(playerid, 0xFFFFFFAA, "Не деритесь!");
         TogglePlayerControllable(playerid, false);
         SetTimerEx("UnfreezePlayer", 3000, false, "i", playerid);
         }
         return 1;
     }  


В конце мода создаем public:
Code
public UnfreezePlayer(playerid)
return TogglePlayerControllable(playerid, true);  





 
  • Страница 1 из 1
  • 1
Поиск:

Сайт управляется системой uCoz