Ссылка: https://drive.google...tpG?usp=sharing
Когда скачали нужно перенести папку plugins в plugins і include в pawn(подтвердить замену)
Теперь нужно подключить плагины(открываем server.cfg и в строку плагины вставляем dc_cmd streamer,если строки нет создайте ее plugins dc_cmd streamer)
Открываем pawn и вставляем в начало мода
#include <streamer> #include <dc_cmd>
Это к define
#define MAX_TIMER 10 #define SCM SendClientMessage #define forwards%0(%1) forward%0(%1); public%0(%1)
Это к enum
enum temp { ARENDA, ARENDATIME } new temp_info[MAX_PLAYERS][temp];
temp_info можно использовать взамен на pvar(быстрее работает)
Это к new
new arendactor[1],arendcar[1],Text3D:botText,PlayerText:ARENDA_PTD[MAX_PLAYERS][1]; new timer[MAX_PLAYERS][MAX_TIMER];
Это в OnGameModeInit
arendactor[0] = CreateActor(179, 1930.1693,1351.7257,9.9688,274.0184);//Поменять на свои координаты //AddPlayerClass(0,1930.1693,1351.7257,9.9688,274.0184,0,0,0,0,0,0);Скин, наши координаты(1930.1693,1351.7257,9.9688,274.0184),нули не нужны
Это в OnPlayerConnect
timer[playerid][0] = SetTimerEx("UpdatePlayer",2000,true,"d",playerid); ARENDA_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 287.9168, 393.7778, "60_sec"); PlayerTextDrawLetterSize(playerid, ARENDA_PTD[playerid][0], 0.4000, 1.6000); PlayerTextDrawAlignment(playerid, ARENDA_PTD[playerid][0], 1); PlayerTextDrawColor(playerid, ARENDA_PTD[playerid][0], -16776961); PlayerTextDrawBackgroundColor(playerid, ARENDA_PTD[playerid][0], 255); PlayerTextDrawFont(playerid, ARENDA_PTD[playerid][0], 2); PlayerTextDrawSetProportional(playerid, ARENDA_PTD[playerid][0], 1); PlayerTextDrawSetShadow(playerid, ARENDA_PTD[playerid][0], 0);
Это в OnPlayerDisconnect
KillTimer(timer[playerid][0]); if(temp_info[playerid][ARENDA] != 0) { KillTimer(timer[playerid][1]); DestroyVehicle(arendcar[0]); temp_info[playerid][ARENDA]=0; temp_info[playerid][ARENDATIME]=0; PlayerTextDrawHide(playerid, ARENDA_PTD[playerid][0]); }
Это в OnPlayerEnterVehicle
new veh = GetPlayerVehicleID(playerid); if(GetVehicleModel(veh) == 581 && temp_info[playerid][ARENDA] != 0) { PlayerTextDrawHide(playerid,ARENDA_PTD[playerid][0]); KillTimer(timer[playerid][1]); temp_info[playerid][ARENDATIME]=0; }
Это в OnPlayerExitVehicle
if(temp_info[playerid][ARENDA] > 0) { timer[playerid][1] = SetTimerEx("UpdatePlayerARENDA",60000,false,"d",playerid); SCM(playerid,-1,"Скутер пропадет через 60 секунд"); temp_info[playerid][ARENDATIME]=60; PlayerTextDrawShow(playerid, ARENDA_PTD[playerid][0]); }
Это в OnPlayerKeyStateChange
if(newkeys == 1024) { if(IsPlayerInRangeOfPoint(playerid,5.0,1930.1693,1351.7257,9.9688)) { if(temp_info[playerid][ARENDA] > 0)return true; arendcar[0] = CreateVehicle(581, 1932.7852,1345.3999,9.9688,266.0400, -1, -1, 600000); PutPlayerInVehicle(playerid, arendcar[0], 0); temp_info[playerid][ARENDA]=1; } }
Это команда
CMD:urnet(playerid)//Команду можно поменять CMD:своя команда(playerid) { if(temp_info[playerid][ARENDA] == 0)return SCM(playerid,-1,"У вас нет арендованного транспорта"); PlayerTextDrawHide(playerid,ARENDA_PTD[playerid][0]); KillTimer(timer[playerid][1]); DestroyVehicle(arendcar[0]); temp_info[playerid][ARENDA]=0; temp_info[playerid][ARENDATIME]=0; SCM(playerid,-1,"Вы отменили аренду скутера"); return true; }
Это в конец мода
forwards UpdatePlayer(playerid) { if(temp_info[playerid][ARENDATIME] != 0) { new string[144]; PlayerTextDrawHide(playerid, ARENDA_PTD[playerid][0]); PlayerTextDrawShow(playerid, ARENDA_PTD[playerid][0]); temp_info[playerid][ARENDATIME]-=2; format(string,sizeof(string),"%d sec",temp_info[playerid][ARENDATIME]); PlayerTextDrawSetString(playerid, ARENDA_PTD[playerid][0], string); } if(IsPlayerInRangeOfPoint(playerid,1.0,1930.1693,1351.7257,9.9688))//Заменить на свои координаты(playerid,5.0,X,Y,Z) { new string[144]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,MAX_PLAYER_NAME); if(temp_info[playerid][ARENDA] == 0)format(string,sizeof(string),"Эй %s,тебе нужен скутер?,тогда подойди ко мне и нажми [ALT]",name); else format(string,sizeof(string),"Эй %s,У тебя уже есть скутер,чтобы остановить аренду(/urnet)",name); botText = Create3DTextLabel(string, 0x00ff00AA, 1930.1693,1351.7257,9.9688, 5.0, -1, 1);//Ставим такие самые координаты как у проверки,только z + 500 } else Delete3DTextLabel(botText); } forwards UpdatePlayerARENDA(playerid) { new vehicleid = GetPlayerVehicleID(playerid); if(GetVehicleModel(vehicleid) != 581) { PlayerTextDrawHide(playerid, ARENDA_PTD[playerid][0]); DestroyVehicle(arendcar[0]); temp_info[playerid][ARENDA]=0; SCM(playerid,-1,"Аренда отменена"); } else temp_info[playerid][ARENDATIME] = 0; }
public и forward можете поменять на forwards