Не долго думая,решил выложить еще один урок.
Поскольку такого урока на форуме еще не встречалось.
Итак.
Автор урока: Mr.Dave
Вот он и сделал этот прекрасный,детальный урок.
Наслаждайтесь:
ко всем new
PHP код:
new PlayerSlivaet[MAX_PLAYERS];// сливаем ли бензин
new PlayerSlivaetID[MAX_PLAYERS];//id тачки у которой сливаем бензин
ко всем forward
PHP код:
forward SendActionMessage(playerid,Float:radius,message[]);
в public OnPlayerConnect
PHP код:
PlayerSlivaet[playerid] = 0;
PlayerSlivaetID[playerid] = 0;
в enum pInfo
в public SetPlayerUnJail
PHP код:
if(PlayerSlivaet[i] > 0)
{
new Float:vX, Float:vY, Float:vZ;
GetVehiclePos(PlayerSlivaetID[i],vX,vY,vZ);
new carid = PlayerSlivaetID[i];
if (PlayerToPoint(15,i,vX,vY,vZ))
{
PlayerSlivaet[i] -=1;
Gas[carid] -=1;
PlayerInfo[i][pFuel] += 1;
}
else
{
SendClientMessage(i, COLOR_GRAD2, " Машина, с которой ты сливал бензин нет рядом с тобой!");
PlayerSlivaet[i] = 0;
TogglePlayerControllable(i,1);
ClearAnimations(i);
return 1;
}
if(Gas[carid] == 0)
{
SendClientMessage(i,COLOR_WHITE," Ты слил весь бензин с машины!");
TogglePlayerControllable(i,1);
PlayerSlivaet[i] = 0;
PlayerSlivaetID[i] = 0;
ClearAnimations(i);
return 1;
}
if(PlayerSlivaet[i] == 1)
{
SendClientMessage(i,COLOR_WHITE," Ты слил бензин с машины!");
TogglePlayerControllable(i,1);
PlayerSlivaet[i] = 0;
PlayerSlivaetID[i] = 0;
ClearAnimations(i);
return 1;
}
}
в public OnPlayerComamndText
PHP код:
if(strcmp(cmd, "/mergefuel", false) == 0)// слить бензин
{
if(IsPlayerConnected(playerid))
{
if (PlayerSlivaet[playerid] != 0)
{
SendClientMessage(playerid, COLOR_GRAD2, " Ты уже сливаешь где то бензин!");
return 1;
}
if (PlayerInfo[playerid][pKanistra] != 1)
{
SendClientMessage(playerid, COLOR_GRAD2, " Тебе не куда слить бензин!");
return 1;
}
if(PlayerInfo[playerid][pFuel] >= 80)
{
SendClientMessage(playerid,COLOR_GREY,"В канистре много бензина,освободите чутка!");
return 1;
}
if (IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,COLOR_GREY," Ты должен быть на ногах!");
return 1;
}
new Float:vX, Float:vY, Float:vZ;
new towcar = 0;
new il = 1;
new found = 0;
for (; il <= CAR_AMOUNT; il++)
{
GetVehiclePos(il,vX,vY,vZ);
if (PlayerToPoint(10,playerid,vX,vY,vZ))
{
towcar = il;
found = 1;
}
}
if(found == 0)
{
SendClientMessage(playerid, COLOR_GRAD2, " Рядом с тобой нет машины!");
return 1;
}
if(Gas[towcar] == 0)
{
SendClientMessage(playerid,COLOR_GREY,"В этой машине нет бензина!");
return 1;
}
GetPlayerName(playerid,sendername,sizeof(sendername));
PlayerSlivaet[playerid] = 60;
SendClientMessage(playerid,COLOR_WHITE," Ты сливаешь бензин у этого автомобиля!");
ApplyAnimation(playerid,"ROB_BANK","CAT_Safe_Rob",4.1,1,0,0,0,0);
SendActionMessage(playerid,30.0,"сливает бензин у автомобиля...");
TogglePlayerControllable(playerid,0);
PlayerSlivaetID[playerid] = towcar;
}
return 1;
}
ищем команду "/give"
и в неё вставляем
PHP код:
else if(strcmp(x_nr,"канистра",true) == 0)
{
if(PlayerInfo[playerid][pAptechka] == 0)
{
SendClientMessage(playerid, COLOR_GRAD1, " У тебя нет канистры!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, " Подсказка: /give канистра [IDигрока]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(ProxDetectorS(5, playerid, giveplayerid))
{
if(PlayerInfo[giveplayerid][pKanistra] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " У игрока уже есть канистра !");
return 1;
}
PlayerInfo[playerid][pKanistra] = 0;
PlayerInfo[giveplayerid][pKanistra] = 1;
SendTwoAction(playerid,giveplayerid,30.0,"дал свою канистру");
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Игрок не рядом с тобой !");
return 1;
}
}
}
}
в 24/7 добавить
Канистра(50$)\n
и
PHP код:
else if(listitem == 15)
{
if(MRP_GetValPlayerMoney(playerid) < 50)
{
SendClientMessage(playerid,COLOR_GREY,"У вас не хватает денег!");
return 1;
}
PlayerInfo[playerid][pKanistra] = 1;
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
SendClientMessage(playerid, COLOR_WHITE, " Канистра бензина куплена, вы можете либо слить бензин с машины(/mergefuel),либо наполнить её на заправке.");
GameTextForPlayer(playerid, "~r~-$500", 5000, 1);
MRP_GivePlayerMoney(playerid, -50);
return 1;
}
и добавьте ещё одну команду (если есть то не надо )
PHP код:
if(strcmp(cmd, "/fillcar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new vehid = GetPlayerVehicleID(playerid);
if(PlayerInfo[playerid][pFuel] < 1)
{
SendClientMessage(playerid, COLOR_GREY, "В канистре нет топлива. Для начала наполните её.");
return 1;
}
if(!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid,COLOR_GREY," Вы должны быть в авто!");
return 1;
}
if(Gas[vehid] < 81)
{
SendClientMessage(playerid, COLOR_WHITE, " Ты заправил свою машину на 20 процентов из своей канистры.");
Gas[vehid] += 20;
PlayerInfo[playerid][pFuel] -= 20;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " У тебя в машине еще достаточно бензина !");
}
}
return 1;
}
Ну вот и все,надеюсь урок вам чем-то помог.
Автор: Mr.Dave