Advertisement
Guest User

emi.pwn

a guest
Aug 19th, 2015
348
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.97 KB | None | 0 0
  1. //=========================================================================
  2. //     Электро-магнитный импульс из NFS v0.3. For Pawno.Su by Y@riK      //
  3. //=========================================================================
  4. #include <a_samp>
  5. #define GREY 0xAFAFAFFF//Цвет
  6. new _str[256],Float:pos[3],Timer[MAX_PLAYERS],Sekas[MAX_PLAYERS];//Блэкджек
  7. public OnFilterScriptInit()print("> ЭМИ v0.3 by Y@riK loaded...");
  8. public OnPlayerCommandText(playerid,cmdtext[])
  9. {
  10.     new idx;
  11.     _str = strtok(cmdtext,idx);
  12.     if(strcmp(_str,"/emi",true)==0)//Когда игрок вводит /emi
  13.     {
  14.         if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid,GREY,"Вы должны быть за рулём!");//Проверяем ли за рулём игрок
  15.         _str = strtok(cmdtext,idx);
  16.         if(!strlen(_str))return SendClientMessage(playerid,GREY,"Используйте: /emi [id]");//Если игрок не ввёл ид, то просим его ввести
  17.         new emi = strval(_str);
  18.         if(!IsPlayerConnected(emi))return SendClientMessage(playerid,GREY,"Игрок не найден");//Если игрок не в игре то пишем что его нет
  19.         if(GetPlayerState(emi) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid,GREY,"Нарушитель должен быть за рулём!");//Проверяем ли за рулём он
  20.         GetPlayerPos(emi,pos[0],pos[1],pos[2]);//Получаем его коорды в pos
  21.         if(!IsPlayerInRangeOfPoint(playerid,30.0,pos[0],pos[1],pos[2]))return SendClientMessage(playerid,GREY,"Вы должны находится в радиусе 30-ти метров от нарушителя!");//Не буду объяснять, всё и так понятно
  22.         SendClientMessage(playerid,-1,"[ЭМИ] Пожалуйста, оставайтесь с нарушителем в радиусе 30 метров в течении 10 секунд!");
  23.         Sekas[playerid] = 0;//Обнуляем нафик
  24.         Timer[playerid] = SetTimerEx("_EMI",1000,true,"dd",playerid,emi);//Ждём 10 сек и переходим в _EMI
  25.         return 1;
  26.     }
  27.     return 0;
  28. }
  29. forward _EMI(playerid,emi);
  30. public _EMI(playerid,emi)//_EMI
  31. {
  32.     if(!IsPlayerConnected(emi))
  33.     {
  34.         SendClientMessage(playerid,GREY,"Этот лох свалил!");
  35.         KillTimer(Timer[playerid]);
  36.         return 1;
  37.     }
  38.     GetPlayerPos(emi,pos[0],pos[1],pos[2]);//Получаем его коорды в pos
  39.     if(!IsPlayerInRangeOfPoint(playerid,30.0,pos[0],pos[1],pos[2]))
  40.     {
  41.         SendClientMessage(playerid,0xFF0000FF,"Вы отстали. Идите нафиг.");//Не буду объяснять, всё и так понятно
  42.         KillTimer(Timer[playerid]);
  43.         return 1;
  44.     }
  45.     Sekas[playerid]++;
  46.     if(Sekas[playerid] >= 10)
  47.     {
  48.         GetPlayerPos(emi,pos[0],pos[1],pos[2]);//Получаем его коорды в pos
  49.         if(!IsPlayerInRangeOfPoint(playerid,30.0,pos[0],pos[1],pos[2]))return SendClientMessage(playerid,0xFF0000FF,"Вы должны находится в радиусе 30-ти метров от нарушителя!");//Не буду объяснять, всё и так понятно
  50.         SendClientMessage(emi,0xFFFF00FF,"[ЭМИ] Вы получили удар электро-магнитным импульсом!");
  51.         CreateExplosion(pos[0],pos[1],pos[2]-9.0,8,15.0);
  52.         new Float:hp;
  53.         GetVehicleHealth(GetPlayerVehicleID(emi),hp);
  54.         SetVehicleHealth(GetPlayerVehicleID(emi),hp-123.0);
  55.         UpdateVehicleDamageStatus(GetPlayerVehicleID(emi),17825808,197122,4,0);
  56.         KillTimer(Timer[playerid]);
  57.     }
  58.     return 1;
  59. }
  60. stock strtok(const strin[], &index)
  61. {
  62.     new length = strlen(strin);
  63.     while ((index < length) && (strin[index] <= ' '))
  64.     {
  65.         index++;
  66.     }
  67.     new offset = index;
  68.     new result[20];
  69.     while ((index < length) && (strin[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  70.     {
  71.         result[index - offset] = strin[index];
  72.         index++;
  73.     }
  74.     result[index - offset] = EOS;
  75.     return result;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement