WorcOut-
Дебютант
Добрый день , вот решил выложить основу работы Механик
1) Проверка
2) Транспорт
3) Прицеп
[HR][/HR]
Работа 40% из 100 %
[HR][/HR]
[HR][/HR]
В #define добавим такие как
[HR][/HR]
К переменным добавим
[HR][/HR]
В native добавим !
[HR][/HR]
В enum pInfo добавим
[HR][/HR]
В public OnGameModeInit() добавим
[HR][/HR]
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) добавим
[HR][/HR]
В public OnPlayerPickUpPickup(playerid, pickupid) добавим
[HR][/HR]
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) добавим
[HR][/HR]
В конце мода добавим сток
[HR][/HR]
Автор: -WorcOut-
1) Проверка
2) Транспорт
3) Прицеп
[HR][/HR]
Работа 40% из 100 %
[HR][/HR]
[HR][/HR]
В #define добавим такие как
PHP:
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define send(%0,%1) SendClientMessage(%0, -1, %1)
#define HOLDING(%0) \
((newkeys & (%0)) == (%0))
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define RELEASED(%0) \
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
К переменным добавим
PHP:
new MEH;
new mehcar[2];
new GetJobVehicle[MAX_PLAYERS];
new MEHANIZATOK[MAX_PLAYERS];
В native добавим !
PHP:
native IsValidVehicle(vehicleid);
В enum pInfo добавим
PHP:
pMember,
pSkin,
pChar,
В public OnGameModeInit() добавим
PHP:
MEH = CreatePickup(1275, 23,1654.5427,-1074.7855,23.8984,0);
//==========================================================================
mehcar[0] = CreateVehicle(525, 1649.6682, -1080.3457, 23.6751, 91.2600, 1, 0, 100);
CreateVehicle(525, 1649.6682, -1084.5273, 23.6751, 91.2600, 1, 0, 100);
CreateVehicle(525, 1649.6682, -1089.0726, 23.6751, 91.2600, 1, 0, 100);
CreateVehicle(525, 1649.6682, -1093.4283, 23.6751, 91.2600, 1, 0, 100);
CreateVehicle(525, 1649.6682, -1097.8707, 23.6751, 91.2600, 1, 0, 100);
CreateVehicle(525, 1649.6682, -1102.5413, 23.6751, 91.2600, 1, 0, 100);
CreateVehicle(525, 1649.6682, -1107.2341, 23.6751, 91.2600, 1, 0, 100);
mehcar[1] = CreateVehicle(525, 1649.6682, -1112.1067, 23.6751, 91.2600, 1, 0, 100);
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) добавим
PHP:
new
vehicle = GetPlayerVehicleID(playerid)
;
new
model = GetVehicleModel(vehicle)
;
new
targetVehicle,
Float:targetVehicleDistance,
closestVehicle,
Float:closestVehicleDistance = 7.0,
found = 0
;
new
Float:x_model_car,
Float:y_model_car,
Float:z_model_car
;
if(vehicle >= mehcar[0] && vehicle <= mehcar[1])
{
if ((GetPlayerState(playerid) == PLAYER_STATE_DRIVER) && PRESSED(KEY_ACTION) && (model == 525))
{
while(targetVehicle < MAX_VEHICLES)
{
GetVehiclePos(targetVehicle, x_model_car, y_model_car, z_model_car);
targetVehicleDistance = GetVehicleDistanceFromPoint(vehicle, x_model_car, y_model_car, z_model_car);
if(IsValidVehicle(targetVehicle) && (floatcmp(targetVehicleDistance, 7.0) <= 0) && (targetVehicle != vehicle) && (floatcmp(targetVehicleDistance, closestVehicleDistance) <= 0))
{
found = 1;
closestVehicle = targetVehicle;
closestVehicleDistance = targetVehicleDistance;
}
targetVehicle++;
}
if(found)
{
if (IsTrailerAttachedToVehicle(vehicle))
{
DetachTrailerFromVehicle(vehicle);
}
AttachTrailerToVehicle(closestVehicle, vehicle);
}
}
if(MEHANIZATOK[playerid] == 0)
{
send(playerid, "You do not got a job");
RemoveFromVehicle(playerid);
}
else
{
GetJobVehicle[playerid] = GetPlayerVehicleID(playerid);
}
}
В public OnPlayerPickUpPickup(playerid, pickupid) добавим
PHP:
if(pickupid == MEH)
{
if(MEHANIZATOK[playerid] == 1) ShowPlayerDialog(playerid,61,0,"JOB \"The Mechanic\"","Do you really want to quit your job?","Yes","No");
else ShowPlayerDialog(playerid,60,0,"JOB \"The Mechanic\"","You're going to get Mechanic\n","Yes","No");
}
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) добавим
PHP:
case 60:
{
if(response)
{
if(MEHANIZATOK[playerid] == 1) return send(playerid, "Error! You are already working here.");
MEHANIZATOK[playerid] = 1;
SetPlayerSkin(playerid, 16);
SendClientMessage(playerid, COLOR_GREEN, "{e49b0f}The working day started.");
}
}
case 61:
{
if(response)
{
if(MEHANIZATOK[playerid] == 0) return SendClientMessage(playerid, COLOR_GREY, "Error! You still do not work.");
MEHANIZATOK[playerid] = 0;
if(PlayerInfo[playerid][pMember] >= 1) SetPlayerSkin(playerid,PlayerInfo[playerid][pSkin]);
if(PlayerInfo[playerid][pMember] == 0) SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);
SendClientMessage(playerid, COLOR_GREEN, "{e49b0f}The working day is over.");
SetPVarInt(playerid,"job",0);
}
}
}
В конце мода добавим сток
PHP:
stock RemoveFromVehicle(playerid)
{
if(GetPlayerState(playerid) == 2)
{
SetVehicleVelocity(GetPlayerVehicleID(playerid), 0.0, 0.0, 0.0);
SetPVarInt(playerid, "RemoveCar", GetPlayerVehicleID(playerid));
RemovePlayerFromVehicle(playerid);
SetTimerEx("@__check_player", 3200, false, "i", playerid); //
}
return true;
}
@__check_player(playerid);
@__check_player(playerid)
{
if(IsPlayerInVehicle(playerid, GetPVarInt(playerid, "RemoveCar")))
{
if(PlayerInfo[playerid][pAdmin] == 0) send(playerid,""C1"Вы кикнуты по подозрению в читерстве. | код: #006c (sobeit)"),Kick(playerid);
}
}
Автор: -WorcOut-
