Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //=========================================================================
- // Электро-магнитный импульс из NFS v0.3. For Pawno.Su by Y@riK //
- //=========================================================================
- #include <a_samp>
- #define GREY 0xAFAFAFFF//Цвет
- new _str[256],Float:pos[3],Timer[MAX_PLAYERS],Sekas[MAX_PLAYERS];//Блэкджек
- public OnFilterScriptInit()print("> ЭМИ v0.3 by Y@riK loaded...");
- public OnPlayerCommandText(playerid,cmdtext[])
- {
- new idx;
- _str = strtok(cmdtext,idx);
- if(strcmp(_str,"/emi",true)==0)//Когда игрок вводит /emi
- {
- if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid,GREY,"Вы должны быть за рулём!");//Проверяем ли за рулём игрок
- _str = strtok(cmdtext,idx);
- if(!strlen(_str))return SendClientMessage(playerid,GREY,"Используйте: /emi [id]");//Если игрок не ввёл ид, то просим его ввести
- new emi = strval(_str);
- if(!IsPlayerConnected(emi))return SendClientMessage(playerid,GREY,"Игрок не найден");//Если игрок не в игре то пишем что его нет
- if(GetPlayerState(emi) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid,GREY,"Нарушитель должен быть за рулём!");//Проверяем ли за рулём он
- GetPlayerPos(emi,pos[0],pos[1],pos[2]);//Получаем его коорды в pos
- if(!IsPlayerInRangeOfPoint(playerid,30.0,pos[0],pos[1],pos[2]))return SendClientMessage(playerid,GREY,"Вы должны находится в радиусе 30-ти метров от нарушителя!");//Не буду объяснять, всё и так понятно
- SendClientMessage(playerid,-1,"[ЭМИ] Пожалуйста, оставайтесь с нарушителем в радиусе 30 метров в течении 10 секунд!");
- Sekas[playerid] = 0;//Обнуляем нафик
- Timer[playerid] = SetTimerEx("_EMI",1000,true,"dd",playerid,emi);//Ждём 10 сек и переходим в _EMI
- return 1;
- }
- return 0;
- }
- forward _EMI(playerid,emi);
- public _EMI(playerid,emi)//_EMI
- {
- if(!IsPlayerConnected(emi))
- {
- SendClientMessage(playerid,GREY,"Этот лох свалил!");
- KillTimer(Timer[playerid]);
- return 1;
- }
- GetPlayerPos(emi,pos[0],pos[1],pos[2]);//Получаем его коорды в pos
- if(!IsPlayerInRangeOfPoint(playerid,30.0,pos[0],pos[1],pos[2]))
- {
- SendClientMessage(playerid,0xFF0000FF,"Вы отстали. Идите нафиг.");//Не буду объяснять, всё и так понятно
- KillTimer(Timer[playerid]);
- return 1;
- }
- Sekas[playerid]++;
- if(Sekas[playerid] >= 10)
- {
- GetPlayerPos(emi,pos[0],pos[1],pos[2]);//Получаем его коорды в pos
- if(!IsPlayerInRangeOfPoint(playerid,30.0,pos[0],pos[1],pos[2]))return SendClientMessage(playerid,0xFF0000FF,"Вы должны находится в радиусе 30-ти метров от нарушителя!");//Не буду объяснять, всё и так понятно
- SendClientMessage(emi,0xFFFF00FF,"[ЭМИ] Вы получили удар электро-магнитным импульсом!");
- CreateExplosion(pos[0],pos[1],pos[2]-9.0,8,15.0);
- new Float:hp;
- GetVehicleHealth(GetPlayerVehicleID(emi),hp);
- SetVehicleHealth(GetPlayerVehicleID(emi),hp-123.0);
- UpdateVehicleDamageStatus(GetPlayerVehicleID(emi),17825808,197122,4,0);
- KillTimer(Timer[playerid]);
- }
- return 1;
- }
- stock strtok(const strin[], &index)
- {
- new length = strlen(strin);
- while ((index < length) && (strin[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (strin[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = strin[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement