PDA

Просмотр полной версии : [FS] Stingers



AbyssMorgan
17.08.2021, 20:56
Здравствуйте, я хотел бы представить вам скрипт "Stingers" (Полицейские и грабители).

видео:
https://www.youtube.com/watch?v=nslVT5RC3J0

Скачать:
Stingers.inc (https://adm.ct8.pl/cloud/Libs/Stingers/Stingers.inc)
3DTryg.inc (https://adm.ct8.pl/cloud/Libs/3DTryg/3DTryg.inc)

Установка:


#include <3DTryg>
#include <Stingers>


Функции:


CreateDynamicStinger(type,Float:x,Float:y,Float:z,Float:rx,Float:ty,Float:rz,worldid=-1,interiorid=-1,playerid=-1,Float:streamdistance=100.0,teamid=ANY_TEAM,byplayerid=INVALID_PLAYER_ID);
DestroyDynamicStinger(mobid);

bool:IsDynamicStingerActive(mobid);
GetDynamicStingerObjectID(mobid);
GetDynamicStingerTeam(mobid);
SetDynamicStingerTeam(mobid,teamid);
GetDynamicStingerPlayerID(mobid);
SetDynamicStingerPlayerID(mobid,byplayerid);
GetPlayerActiveDynamicStinger(playerid);
ToggleDynamicStingerDamage(mobid,bool:toggle);


Обратные вызовы:


//called on vehicle damage updated by stinger
OnVehicleDamageByStinger(playerid,killerid,mobid,old_tires,new_tires);


Определения:


STINGER_TYPE_SMALL //Object: 2899
STINGER_TYPE_BIG //Object: 2892


Пример кода:


public OnVehicleDamageByStinger(playerid,killerid,mobid,old_tires,new_tires){
if(killerid != INVALID_PLAYER_ID){
new p_name[MAX_PLAYER_NAME],string[144];
GetPlayerName(killerid,p_name,sizeof(p_name));
format(string,sizeof(string),"{00AAFF}Your vehicle has been damaged by {00FF00}%s {00AAFF}stinger.",p_name);
SendClientMessage(playerid,-1,string);
}
return 1;
}

new StingerObj[MAX_PLAYERS];

public OnPlayerDisconnect(playerid,reason){
if(StingerObj[playerid] != 0){
DestroyDynamicStinger(StingerObj[playerid]);
StingerObj[playerid] = 0;
}
return 1;
}

CMD:stinger(playerid,params[]){
if(!strcmp(params,"destroy",true)){
DestroyDynamicStinger(StingerObj[playerid]);
StingerObj[playerid] = 0;
return SendClientMessage(playerid,-1,"Stinger Destroyed");
}
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,-1,"First get out of the vehicle");
if(GetPlayerActiveDynamicStinger(playerid)) return SendClientMessage(playerid,-1,"You are near another stinger");
new type;
if(!strcmp(params,"big",true)){
type = STINGER_TYPE_BIG;
} else if(!strcmp(params,"small",true)){
type = STINGER_TYPE_SMALL;
} else {
if(!IsGM(playerid)){
return SendClientMessage(playerid,-1,"Usage /stinger <big/small/destroy>");
} else {
return SendClientMessage(playerid,-1,"Usage /stinger <big/small/destroy>");
}
}

new Float:x,Float:y,Float:z,Float:z_angle;
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,z_angle);
DestroyDynamicStinger(StingerObj[playerid]);
StingerObj[playerid] = CreateDynamicStinger(type,x,y,z-0.9,0.0,0.0,CompRotationFloat(z_angle+90.0),-1,-1,-1,100.0,ANY_TEAM,playerid);
return SendClientMessage(playerid,-1,"Stinger added");
}


Проблемы:
- Стингер не может находиться рядом с другим жалом

Уведомление:
Скрипт фильтров не существует, потому что скрипты фильтров имеют ограничения.
Он был заменен на include, имеющий автоматическую установку , эффективный GameMode / FilterScript.

Эта тема переведена, автор не может полностью помочь на русском языке.