Egor_Ganchuk
Новичок
Вот лазил по сайтам и скал что то в этом роде)))) для своего сервера но в ставить не получилось у меня. Ну а так мне кажется полезная вещь для рп отыгровки согласитесь
Привет Ну что тут объяснять, трос как трос
Описание: Чтобы купить трос - вам нужно купить его в 24/7, после сесть в машину и подъехать очень близко и подцепить командой /towncar. Отцепить: /untown. (Полезно для РП ситуации, закончился бензин в машине или еще что-то
)
В enum pinfo:
в public OnPlayerConnect:
Если у вас мод на файлах:
в public OnPlayerRegister(playerid, password[]):
в OnPlayerUpdateRL(playerid):
в public OnPlayerLogin(playerid,password[]):
Если у Вас MySQL мод, то в LoadAccount:
в SaveAccount:
Теперь где выбор товара в 24/7, после последнего товара(У меня это цветы) ставим
\nТрость\t\t\t\t{33AAFF}1000 {ffffff}долларов
Теперь в диалог покупки 24/7:
Теперь в команды:
OnPlayerCommandText
ZCMD:
Автора я не знаю
если кому то помог "+"
Привет Ну что тут объяснять, трос как трос
Описание: Чтобы купить трос - вам нужно купить его в 24/7, после сесть в машину и подъехать очень близко и подцепить командой /towncar. Отцепить: /untown. (Полезно для РП ситуации, закончился бензин в машине или еще что-то
В enum pinfo:
PHP:
pTros
PHP:
PlayerInfo[playerid][pTros] = 0;
в public OnPlayerRegister(playerid, password[]):
PHP:
ini_setInteger(File,"Tros",PlayerInfo[playerid][pTros]);
PHP:
ini_setInteger(File,"Tros",PlayerInfo[playerid][pTros]);
PHP:
ini_setInteger(File,"Tros",PlayerInfo[playerid][pTros]);
PHP:
PlayerInfo[playerid][pTros],
PHP:
format(src,sizeof(src),"tros='%i',",PlayerInfo[playerid][pTros]
);
strcat(query,src,sizeof(query));
\nТрость\t\t\t\t{33AAFF}1000 {ffffff}долларов
Теперь в диалог покупки 24/7:
PHP:
case 7:
{
if(PlayerInfo[playerid][pCash] < 1000 return SendClientMessage(playerid, COLOR_GREY, "Недостаточно средств!");
PlayerInfo[playerid][pCash] -= 1000;
BizzInfo[i][bMoney] += 1000;
BizzInfo[i][bProduct] -= 50;
BizzPay[i] += 1000;
PlayerInfo[playerid][pTros] = 1;
SendMes(playerid, COLOR_BLUE, "Вы купили трость (( /towncar ))");
SetBizzInt(i, "money", BizzInfo[i][bMoney]);
SetBizzInt(i, "product", BizzInfo[i][bProduct]);
}
OnPlayerCommandText
PHP:
if(strcmp(cmd, "/untown", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new vehplid=GetPlayerVehicleID(playerid);
DetachTrailerFromVehicle(vehplid);
SendClientMessage(playerid, COLOR_GRAD1, " * Отцеплено.");
return 1;
}
}
if(strcmp(cmd, "/towncar", true) == 0)
{
//DebugPlayerLog(playerid,"/tow");
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pTros] == 0)
{
SendClientMessage(playerid, COLOR_GRAD1, "У Вас нет троса. Его можно купить в магазине(24/7).");
return 1;
}
new vehplid=GetPlayerVehicleID(playerid);
new Float:plAngle; GetVehicleZAngle(vehplid, plAngle);
new Float:crAngle,Float:Angle,Float:Angle2;
//====================
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
new Float:Radi=6.0; //Расстояние от тачки
new Float:AngRange=90.0; //максимальный радиус
//======================
for(new i = 0; i < MAX_VEHICLES; i++) //700
{
if(i == vehplid) continue; //себя цеплять ненадо
//======
GetVehiclePos(vehplid, posx, posy, posz); //координаты тачки
GetVehiclePos(i, oldposx, oldposy, oldposz); //координаты ближайшей
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < Radi) && (tempposx > -Radi)) && ((tempposy < Radi) && (tempposy > -Radi)) && ((tempposz < Radi) && (tempposz > -Radi)))
{
GetVehicleZAngle(i, crAngle);
Angle = (plAngle -crAngle);
Angle2= (Angle-180.0);
if (( ((Angle < AngRange) && (Angle > -AngRange)) || ((Angle2 < AngRange) && (Angle2 > -AngRange)) ))
{
AttachTrailerToVehicle(i, vehplid);
format(string,sizeof(string),"Автомобиль подцеплен. Отцепить: /untown");
SendClientMessage(playerid, COLOR_GRAD1, string);
return 1;
}
}
}
//======
SendClientMessage(playerid, COLOR_GRAD1, " * Подъедьте поближе к автомобилю.");
return 1;
}
return 1;
}
PHP:
CMD:untown(playerid, params[])
{
if(IsPlayerConnected(playerid))
DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
SendClientMessage(playerid, COLOR_GRAD1, "Отцеплено.");
return 1;
}
CMD:towncar(playerid, params[])
{
if(IsPlayerConnected(playerid))
if(PlayerInfo[playerid][pTros] == 0)
{
SendClientMessage(playerid, COLOR_GRAD1, "У Вас нет троса. Его можно купить в магазине(24/7).");
return 1;
}
new Float:plAngle; GetVehicleZAngle(GetPlayerVehicleID(playerid), plAngle);
new Float:crAngle,Float:Angle,Float:Angle2;
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
new Float:Radi=6.0; //Расстояние от тачки
new Float:AngRange=90.0; //максимальный радиус
for(new i = 0; i < MAX_VEHICLES; i++) //700
{
if(i == GetPlayerVehicleID(playerid)) continue; //себя цеплять ненадо
GetVehiclePos(GetPlayerVehicleID(playerid), posx, posy, posz); //координаты тачки
GetVehiclePos(i, oldposx, oldposy, oldposz); //координаты ближайшей
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < Radi) && (tempposx > -Radi)) && ((tempposy < Radi) && (tempposy > -Radi)) && ((tempposz < Radi) && (tempposz > -Radi)))
{
GetVehicleZAngle(i, crAngle);
Angle = (plAngle -crAngle);
Angle2= (Angle-180.0);
if (( ((Angle < AngRange) && (Angle > -AngRange)) || ((Angle2 < AngRange) && (Angle2 > -AngRange)) ))
{
AttachTrailerToVehicle(i, GetPlayerVehicleID(playerid));
format(string,sizeof(string),"Автомобиль подцеплен. Отцепить: /untown");
SendClientMessage(playerid, COLOR_GRAD1, string);
return 1;
}
}
}
SendClientMessage(playerid, COLOR_GRAD1, "Подъедьте поближе к автомобилю.");
return 1;
}
HTML:
http://i077.radikal.ru/1301/49/b048b60431af.jpg
если кому то помог "+"
