-
Recently Browsing 0 members
No registered users viewing this page.
-
Similar Content
-
By OPCODERSSSS
Прописал уже все инклуды,он мне все равно вот эту дрянь ну емае
other.amx
other.pwn
hgsystem.amx
-
No registered users viewing this page.
Вы видите это сообщение, так как вы не вошли или не зарегистрировались. Чтобы получить более расширенные возможности войдите или зарегистрируйтесь.
Однако без регистрации Вы также сможете пользоваться форумом.
tuki Новичок 0
Здравствуйте. Нужна помощь с handling_plugin_v14. Как сделать сохранения в (cfg, mysql). И что бы скорость настраивалась не для одной машины, а именно для модели. Кому не сложно напишите, не одну мне поможете
#define FILTERSCRIPT
// Рекомендуемая версия адаптации: Beta-Testing 2.4.3
// Рекомендуемая версия mp_handling: 1.4
#include <a_samp>
#include <mp_handling>
native IsValidVehicle(vehicleid);
#define HEDITOR_DIALOG_ID (200)
enum E_HEDITOR_PARAM_TYPE
{
PARAM_TYPE_UINT,
PARAM_TYPE_FLOAT,
PARAM_TYPE_BOOL,
PARAM_TYPE_SPECIAL
};
enum E_HEDITOR_STRUCT
{
HEDIT_NAME[40], // parameter name
HEDIT_FORMAT_STR[10], // format string
E_HEDITOR_PARAM_TYPE:HEDIT_TYPE, // parameter type
e_handling_id:HEDIT_ID // e_handling_id id
};
new g_heditor_data[][E_HEDITOR_STRUCT] =
{
{ "Масса", "%.2f", PARAM_TYPE_FLOAT, hd_mass },
{ "Масса поворота", "%.2f", PARAM_TYPE_FLOAT, hd_turn_mass },
{ "Множитель сопротивления", "%.2f", PARAM_TYPE_FLOAT, hd_drag_coeff },
{ "Центр тяжести (X)", "%.2f", PARAM_TYPE_FLOAT, hd_center_of_mass_x },
{ "Центр тяжести (Y)", "%.2f", PARAM_TYPE_FLOAT, hd_center_of_mass_y },
{ "Центр тяжести (Z)", "%.2f", PARAM_TYPE_FLOAT, hd_center_of_mass_z },
{ "Процент высоты (в воде)", "%d", PARAM_TYPE_UINT, hd_percent_submerged },
{ "Сцепление колес", "%.2f", PARAM_TYPE_FLOAT, hd_traction_multiplier },
{ "Показатель сцепления колес", "%.2f", PARAM_TYPE_FLOAT, hd_traction_loss },
{ "Кол-во передач", "%d", PARAM_TYPE_UINT, hd_number_of_gears },
{ "Максимальная скорость", "%.2f", PARAM_TYPE_FLOAT, hd_max_velocity },
{ "Ускорение двигателя", "%.2f", PARAM_TYPE_FLOAT, hd_engine_acceleration },
{ "Привод", "%s", PARAM_TYPE_SPECIAL, hd_drive_type },
{ "Тип двигателя", "%s", PARAM_TYPE_SPECIAL, hd_engine_type },
{ "Сила торможения", "%.2f", PARAM_TYPE_FLOAT, hd_brake_deceleration },
{ "Антиблокировочная система", "%s", PARAM_TYPE_BOOL, hd_abs },
{ "Угол поворота руля (макс.)", "%.2f", PARAM_TYPE_FLOAT, hd_steering_lock },
{ "Множитель повреждений", "%.2f", PARAM_TYPE_FLOAT, hd_collision_damage_mult },
{ "Фары", "%d", PARAM_TYPE_UINT, hd_head_light },
{ "Фонари", "%d", PARAM_TYPE_UINT, hd_tail_light },
{ "Множитель масштаба колес", "%.2f", PARAM_TYPE_FLOAT, hd_wheel_scale }
};
public OnPlayerSpawn(playerid)
{
SendClientMessage(playerid, 0xFFFFFFFF, "Handling Editor - {66CC66}/heditor");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/heditor", true, 8) == 0)
{
if(strlen(cmdtext) < 9)
{
SendClientMessage(playerid, 0xEEEEEEFF, "Usage: /heditor <vehicle id>");
return 1;
}
new vehicleid = strval(cmdtext[9]);
if(!IsValidVehicle(vehicleid))
{
SendClientMessage(playerid, 0xEEEEEEFF, "Invalid vehicle id");
return 1;
}
ShowHandlingEditor(playerid, vehicleid);
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case HEDITOR_DIALOG_ID:
{
if(!response)
{
return 1;
}
if(listitem < 0 || listitem > sizeof(g_heditor_data) - 1)
{
return 1;
}
SetPVarInt(playerid, "heditor_param_id", listitem);
ShowEditDialog(
playerid,
g_heditor_data[listitem][HEDIT_TYPE],
g_heditor_data[listitem][HEDIT_ID]
);
return 1;
}
case HEDITOR_DIALOG_ID + 1:
{
new vehicleid = GetPVarInt(playerid, "heditor_vehicle_id");
new param_id = GetPVarInt(playerid, "heditor_param_id");
if(!response)
{
ShowHandlingEditor(playerid, vehicleid);
return 1;
}
new value = 0;
switch(g_heditor_data[param_id][HEDIT_TYPE])
{
case PARAM_TYPE_UINT:
{
SetVehicleHandlingInt(
vehicleid,
g_heditor_data[param_id][HEDIT_ID],
strval(inputtext)
);
}
case PARAM_TYPE_FLOAT:
{
SetVehicleHandlingFloat(
vehicleid,
g_heditor_data[param_id][HEDIT_ID],
floatstr(inputtext)
);
}
case PARAM_TYPE_BOOL:
{
SetVehicleHandlingInt(
vehicleid,
g_heditor_data[param_id][HEDIT_ID],
strval(inputtext) ? 1 : 0
);
}
case PARAM_TYPE_SPECIAL:
{
value = strval(inputtext);
if(value < 0)
{
value = 0;
}
else if(value > 2)
{
value = 2;
}
SetVehicleHandlingInt(
vehicleid,
g_heditor_data[param_id][HEDIT_ID],
strval(inputtext)
);
}
}
ShowHandlingEditor(playerid, vehicleid);
return 1;
}
}
return 1;
}
stock ShowHandlingEditor(playerid, vehicleid)
{
if(!IsValidVehicle(vehicleid))
{
return 1;
}
static
value_text[16],
dialog_text[2048],
value
;
dialog_text = "{FFFFFF}Параметр\t{FFFFFF}Значение";
for(new idx = 0; idx < sizeof(g_heditor_data); idx++)
{
if(g_heditor_data[idx][HEDIT_TYPE] == PARAM_TYPE_FLOAT)
{
GetVehicleHandlingFloat(vehicleid, g_heditor_data[idx][HEDIT_ID], Float:value);
}
else
{
GetVehicleHandlingInt(vehicleid, g_heditor_data[idx][HEDIT_ID], value);
}
if(g_heditor_data[idx][HEDIT_TYPE] == PARAM_TYPE_BOOL)
{
format(value_text, sizeof(value_text), value ? ("есть") : ("нет"));
}
else if(g_heditor_data[idx][HEDIT_TYPE] == PARAM_TYPE_SPECIAL)
{
static const drive_type_str[][8 + 1] =
{
"передний",
"задний",
"полный"
};
static const engine_type_str[][7 + 1] =
{
"бензин",
"дизель",
"электро"
};
switch(g_heditor_data[idx][HEDIT_ID])
{
case hd_drive_type:
{
format(value_text, sizeof(value_text), drive_type_str[value]);
}
case hd_engine_type:
{
format(value_text, sizeof(value_text), engine_type_str[value]);
}
}
}
else
{
format(
value_text,
sizeof(value_text),
g_heditor_data[idx][HEDIT_FORMAT_STR],
value
);
}
format(
dialog_text,
sizeof(dialog_text),
"%s\n{FFFFFF}%s\t{00F400}%s",
dialog_text,
g_heditor_data[idx][HEDIT_NAME],
value_text
);
}
SetPVarInt(playerid, "heditor_vehicle_id", vehicleid);
ShowPlayerDialog(
playerid,
HEDITOR_DIALOG_ID,
DIALOG_STYLE_TABLIST_HEADERS,
"Handling Editor",
dialog_text,
"Выбрать",
"Отмена"
);
return 1;
}
stock ShowEditDialog(playerid, E_HEDITOR_PARAM_TYPE:type, e_handling_id:id)
{
switch(type)
{
case PARAM_TYPE_UINT:
{
ShowPlayerDialog(
playerid,
HEDITOR_DIALOG_ID + 1,
DIALOG_STYLE_INPUT,
"Handling Editor",
"{FFFFFF}Введите число:",
"Изменить",
"Отмена"
);
}
case PARAM_TYPE_FLOAT:
{
ShowPlayerDialog(
playerid,
HEDITOR_DIALOG_ID + 1,
DIALOG_STYLE_INPUT,
"Handling Editor",
"{FFFFFF}Введите дробное число:",
"Изменить",
"Отмена"
);
}
case PARAM_TYPE_BOOL:
{
ShowPlayerDialog(
playerid,
HEDITOR_DIALOG_ID + 1,
DIALOG_STYLE_INPUT,
"Handling Editor",
"{FFFFFF}Введите 0 (нет) или 1 (есть):",
"Изменить",
"Отмена"
);
}
case PARAM_TYPE_SPECIAL:
{
switch(id)
{
case hd_drive_type:
{
ShowPlayerDialog(
playerid,
HEDITOR_DIALOG_ID + 1,
DIALOG_STYLE_INPUT,
"Handling Editor",
"{FFFFFF}0: передний привод\n\
1: задний привод\n\
2: полный привод\n\
\n{FFFFFF}Введите требуемое число:",
"Изменить",
"Отмена"
);
}
case hd_engine_type:
{
ShowPlayerDialog(
playerid,
HEDITOR_DIALOG_ID + 1,
DIALOG_STYLE_INPUT,
"Handling Editor",
"{FFFFFF}0: бензин\n\
1: дизель\n\
2: электро\n\
\n{FFFFFF}Введите требуемое число:",
"Изменить",
"Отмена"
);
}
}
}
}
return 1;
}
Edited by tuki
Share this post
Link to post