iRivals
Ученик
Здравствуйте. Вопрос, как сделать из ходя из даного кода такую систему: подьежаешь к месту контракта, что бы брался груз и вести в место назначения. Данная система реализована на A&A RP (не реклама). Буду благодарен
HTML:
enum e_TRUCK_ORDERS
{
bool:toStatus,
toPlayer,
toTimeDeliviry,
toTimeCreate,
toPrice,
toAward,
Float:toPos[3],
toCargo[32],
toPurpose
}
for(new i; i < MAX_TRUCK_ORDERS; i++)
{
if(TruckOrders[i][toTimeDeliviry])
{
TruckOrders[i][toTimeDeliviry]--;
dlg_str[0] = EOS;
format(dlg_str, sizeof dlg_str, "\
{ffbfbf}Назначение: {ffffbf}%s\n\
{ffbfbf}Груз: {ffffbf}%s\n\
{ffbfbf}Цена контракта: {ffffbf}%d\n\
{ffbfbf}Премия: {ffffbf}%d\n\
{ffbfbf}Осталось: {ffffbf}%d {ffbfbf}мин.",
ReceivingTerminal[TruckOrders[i][toPurpose]-1][rtPurpose],
TruckOrders[i][toCargo],
TruckOrders[i][toPrice],
TruckOrders[i][toAward],
floatround(TruckOrders[i][toTimeDeliviry] / 60)
);
UpdateDynamic3DTextLabelText(TruckOrder3dText[i], -1, dlg_str);
if(TruckOrders[i][toTimeDeliviry] == 0)
{
TruckOrders[i][toTimeCreate] = RandomEx(1,10) * 60;
TruckOrders[i][toStatus] = false;
TruckOrders[i][toPlayer] = INVALID_PLAYER_ID;
UpdateDynamic3DTextLabelText(TruckOrder3dText[i], -1, "Контрактов нет");
}
}
if(TruckOrders[i][toTimeCreate])
{
TruckOrders[i][toTimeCreate]--;
if(TruckOrders[i][toTimeCreate] == 0)
{
TruckOrders[i][toStatus] = true;
TruckOrders[i][toPlayer] = INVALID_PLAYER_ID;
TruckOrders[i][toTimeDeliviry] = RandomEx(30,60) * 60;
TruckOrders[i][toPrice] = RandomEx(1500,6000);
TruckOrders[i][toAward] = TruckOrders[i][toPrice] + RandomEx(1500,3000);
new rand_name = random(sizeof(TruckOrdersType));
strmid(TruckOrders[i][toCargo], TruckOrdersType[rand_name], 0, strlen(TruckOrdersType[rand_name]), 32);
TruckOrders[i][toPurpose] = RandomEx(1,MAX_TERMINALS);
dlg_str[0] = EOS;
format(dlg_str, sizeof dlg_str, "\
{ffbfbf}Назначение: {ffffbf}%s\n\
{ffbfbf}Груз: {ffffbf}%s\n\
{ffbfbf}Цена контракта: {ffffbf}%d\n\
{ffbfbf}Премия: {ffffbf}%d\n\
{ffbfbf}Осталось: {ffffbf}%d {ffbfbf}мин.",
ReceivingTerminal[TruckOrders[i][toPurpose]-1][rtPurpose],
TruckOrders[i][toCargo],
TruckOrders[i][toPrice],
TruckOrders[i][toAward],
floatround(TruckOrders[i][toTimeDeliviry] / 60)
);
UpdateDynamic3DTextLabelText(TruckOrder3dText[i], -1, dlg_str);
}
}
}
return true;
}
for(new i; i < MAX_TRUCK_ORDERS; i++)
{
TruckOrders[i][toStatus] = true;
TruckOrders[i][toPlayer] = INVALID_PLAYER_ID;
TruckOrders[i][toTimeDeliviry] = RandomEx(30,60) * 60;
TruckOrders[i][toPrice] = RandomEx(1500,6000);
TruckOrders[i][toAward] = TruckOrders[i][toPrice] + RandomEx(1500,3000);
new rand_name = random(sizeof TruckOrdersType);
strmid(TruckOrders[i][toCargo], TruckOrdersType[rand_name], 0, strlen(TruckOrdersType[rand_name]), 32);
TruckOrders[i][toPurpose] = RandomEx(1,MAX_TERMINALS);
format(dlg_str, sizeof dlg_str, "\
{ffbfbf}Назначение: {ffffbf}%s\n\
{ffbfbf}Груз: {ffffbf}%s\n\
{ffbfbf}Цена контракта: {ffffbf}%d\n\
{ffbfbf}Премия: {ffffbf}%d\n\
{ffbfbf}Осталось: {ffffbf}%d {ffbfbf}мин.",
ReceivingTerminal[TruckOrders[i][toPurpose]-1][rtPurpose],
TruckOrders[i][toCargo],
TruckOrders[i][toPrice],
TruckOrders[i][toAward],
floatround(TruckOrders[i][toTimeDeliviry] / 60)
);
TruckOrder3dText[i] = CreateDynamic3DTextLabel(dlg_str, -1, TruckOrders[i][toPos][0], TruckOrders[i][toPos][1], TruckOrders[i][toPos][2], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0);
TruckOrderArea[i] = CreateDynamicSphere(TruckOrders[i][toPos][0], TruckOrders[i][toPos][1], TruckOrders[i][toPos][2], 2.0);
}
for(new i; i < MAX_TERMINALS; i++)
{
ReceivingTerminalArea[i] = CreateDynamicSphere(ReceivingTerminal[i][rtPos][0], ReceivingTerminal[i][rtPos][1], ReceivingTerminal[i][rtPos][2], 2.0);
format(dlg_str, sizeof dlg_str, "\
{60a060}Приёмный терминал\n\
{a0a060}%s",
ReceivingTerminal[i][rtPurpose]
);
CreateDynamic3DTextLabel(dlg_str, -1, ReceivingTerminal[i][rtPos][0], ReceivingTerminal[i][rtPos][1], ReceivingTerminal[i][rtPos][2], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0);
}
return true;
}
new TruckOrders[MAX_TRUCK_ORDERS][e_TRUCK_ORDERS] = {
{false, INVALID_PLAYER_ID, 0, 0, 0, 0, {-1834.3496,-108.2795,5.6484}, "None", 0},//склад дороти
{false, INVALID_PLAYER_ID, 0, 0, 0, 0, {-1815.8690,-108.6038,5.6484}, "None", 0},
};
new TruckOrderArea[MAX_TRUCK_ORDERS];
new Text3D:TruckOrder3dText[MAX_TRUCK_ORDERS];
enum e_TERMINAL_INFO
{
rtID,
rtPurpose[32],
Float:rtPos[3]
}
new ReceivingTerminal[MAX_TERMINALS][e_TERMINAL_INFO] = {
{1, "Tierra Robada Docks", {-2456.7415,2293.0129,4.9844}},
{2, "Склад Дороти", {-1824.5560,-108.3587,5.6484}},
{3, "Авиалинии "Сан Фиерро"", {-1691.0538,-91.8056,3.5700}},
};
new ReceivingTerminalArea[MAX_TERMINALS];
new const TruckOrdersType[15][32] = {
"Бытовая техника",
"Кожная галантарея",
};
