Mentos
Компетентный
Привет юзеры. Дело было вечером и делать было нечего и написал я вот такую шляпу.
Сразу говорю что система до ума не доведена, ее можно просто взять как за идею чего то интересного, ну или уже доделать.
Теперь ближе к сути. Админ создает машину для фракции, она создается в БД. А лидер потом может выдать ключи от машины игроку указав номер авто. (Не красочное описание
)
!!!Система написана при помощи ZCMD + SSCANF!!!
Теперь код, начнем сверху...Ко всем new:
Переменные я называл не в красках, т.к лень, продолжим.
в PlayerInfo или что там у вас, добавим это:
В OnGameModeInit, это загрузка машин если че:
Теперь страшные и почти непонятные по структуре новичкам команды, ну и функция:
Ну и сам паблик загрузки, сохранение не делал я:
Ну и вся система, если кто то собрался это вшивать в свой "не чистый" мод, то вам придется перестроить системку под свое творение(ну или не свое).
Автор сие системы: Mentos (I)
Вот вам
И как вы думаете, годная системка то вообще? Если до ума ее довести
Сразу говорю что система до ума не доведена, ее можно просто взять как за идею чего то интересного, ну или уже доделать.
Теперь ближе к сути. Админ создает машину для фракции, она создается в БД. А лидер потом может выдать ключи от машины игроку указав номер авто. (Не красочное описание
!!!Система написана при помощи ZCMD + SSCANF!!!
Теперь код, начнем сверху...Ко всем new:
PHP:
new zaprosCars[200];
enum carFracInfo
{
id_car,
num[32],
Float:x, Float:y, Float:z, Float:angle,
idFracCar, color_1, color_2, lockFCar
};
new cInfo[1000][carFracInfo];
new cout_fracCar=0;
в PlayerInfo или что там у вас, добавим это:
PHP:
pKey[32]
PHP:
mysql_function_query(MYSQL_Con, "SELECT * FROM cars", true, "carsLoad","");
PHP:
CMD:addfraccar(playerid, params[])
{
if(pInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid, -1, "Недостаточно прав!");
if(sscanf(params, "ddsdd", params[0], params[1], cInfo[cout_fracCar][num],params[2], params[3])) return SendClientMessage(playerid, -1, "Используйте: /addfraccar [id frac][id car][Num car][color1][color2]");
GetPlayerPos(playerid, cInfo[cout_fracCar][x], cInfo[cout_fracCar][y], cInfo[cout_fracCar][z]);
GetPlayerFacingAngle(playerid, cInfo[cout_fracCar][angle]);
mysql_format(MYSQL_Con, zaprosCars, sizeof(zaprosCars), "INSERT INTO cars (id_car ,num_car, carpos_x, carpos_y, carpos_z, carpos_angle, idfrac_car, color1, color2) VALUES ('%d','%s', '%f', '%f', '%f', '%f', '%d', '%d', '%d')", params[1],cInfo[cout_fracCar][num], cInfo[cout_fracCar][x], cInfo[cout_fracCar][y], cInfo[cout_fracCar][z], cInfo[cout_fracCar][angle], params[0], params[2], params[3]);
mysql_tquery(MYSQL_Con, zaprosCars, "", "");
printf(zaprosCars);
CreateVehicle(params[1], cInfo[cout_fracCar][x], cInfo[cout_fracCar][y], cInfo[cout_fracCar][z], cInfo[cout_fracCar][angle], params[3], params[4], 99999);
SetVehicleNumberPlate(cout_fracCar+1, cInfo[cout_fracCar][num]);
++cout_fracCar;
return 1;
}
CMD:givekeycar(playerid, params[])
{
new st[32];
if(pInfo[playerid][pRang] < 10)return 1;
if(sscanf(params, "us[32]", params[0], st))return SendClientMessage(playerid, -1, "Используйте: /givekeycar [idplayer][numcar]");
for(new i =0; i < cout_fracCar; ++i)
{
if(strcmp(st, cInfo[i][num]) == 0)
{
if(pInfo[playerid][pMember] != cInfo[i][idFracCar]) return SendClientMessage(playerid, -1, "Вы не имеете ключа от этого автомобиля");
pInfo[params[0]][pKey] = st;
SendClientMessage(playerid, -1, "Вам выдали ключ от авто");
}
}
return 1;
}
CMD:flock(playerid)
{
new res = IfBasedCar(playerid);
printf( "%d",res);
if(res != -1)
{
if(strcmp(pInfo[playerid][pKey], cInfo[res][num]) != 0) return SendClientMessage(playerid, -1, "У вас нет ключа от этой машины.");
if(!cInfo[res][lockFCar])
{
cInfo[res][lockFCar] = true;
GameTextForPlayer(playerid, "~r~Lock", 5000, 1);
SetVehicleParamsEx(res+1, 0, 0, 0, 1, 0, 0, 0);
}
else
{
cInfo[res][lockFCar] = false;
GameTextForPlayer(playerid, "~g~UnLock", 5000, 1);
SetVehicleParamsEx(res+1, 0, 0, 0, 0, 0, 0, 0);
}
}
return 1;
}
stock IfBasedCar(playerid)//Проверка рядом ли машина
{
new Float:pos[3];
for(new i = 0; i < 1000; ++i)
{
GetVehiclePos(i+1, pos[0], pos[1], pos[2]);
if(IsPlayerInRangeOfPoint(playerid, 3, pos[0], pos[1], pos[2]))
return i;
}
return -1;
}
PHP:
forward carsLoad();
public carsLoad()
{
new rows, fields;
cache_get_data(rows, fields);
for(new i = 0; i < rows; i++)
{
++cout_fracCar;
cInfo[i][id_car] = cache_get_field_content_int(i, "id_car", MYSQL_Con);
cache_get_field_content(i, "num_car", cInfo[i][num], MYSQL_Con, 32);
cInfo[i][idFracCar] = cache_get_field_content_int(i, "idfrac_car", MYSQL_Con);
cInfo[i][x] = cache_get_field_content_float(i, "carpos_x", MYSQL_Con);
cInfo[i][y] = cache_get_field_content_float(i, "carpos_y", MYSQL_Con);
cInfo[i][z] = cache_get_field_content_float(i, "carpos_z", MYSQL_Con);
cInfo[i][angle] = cache_get_field_content_float(i, "carpos_angle", MYSQL_Con);
cInfo[i][color_1] = cache_get_field_content_int(i, "color1", MYSQL_Con);
cInfo[i][color_2] = cache_get_field_content_int(i, "color2", MYSQL_Con);
cInfo[i][lockFCar] = cache_get_field_content_int(i, "lockcar", MYSQL_Con);
CreateVehicle(cInfo[i][id_car], cInfo[i][x], cInfo[i][y], cInfo[i][z], cInfo[i][angle], cInfo[i][color_1], cInfo[i][color_2], 99999);
SetVehicleNumberPlate(cout_fracCar, cInfo[i][num]);
}
printf("Загружено %d",cout_fracCar);
}
Автор сие системы: Mentos (I)
Вот вам
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
для бд.И как вы думаете, годная системка то вообще? Если до ума ее довести
