error 001: expected token: "%s", but found "%s" - ожидался символ: "%s", но был найден "%s";
error 002: only a single statement (or expression) can follow each "case" - только одно заявление (или выражение) могут следовать за "case";
error 003: declaration of a local variable must appear in a compound block - объявленная локальная переменная должна использоваться в этом же блоке;
error 004: function "%s" is not implemented - функция %s не реализована;
error 005: function may not have arguments - функция не имеет аргументов;
error 006: must be assigned to an array - должен быть присвоен массив;
error 007: operator cannot be redefined - оператор не может быть установлен еще раз;
error 008: must be a constant expression; assumed zero - должно быть постоянным выражением; равным нулю;
error 009: invalid array size (negative or zero) - неверный размер массива (отрицательный или 0);
error 010: invalid function or declaration - неизвестная функция или декларация;
error 011: invalid outside functions - неверно вне функции;
error 012: invalid function call, not a valid address - неверный вызов функции, неверный адрес;
error 013: no entry point (no public functions) - нет точки входа (не public функция);
error 014: invalid statement; not in switch - неверный оператор; не в switch;
error 015: "default" case must be the last case in switch statement - "default" должен быть последним условием в switch;
error 016: multiple defaults in "switch" - несколько "default" в switch;
error 017: undefined symbol "%s" - неизвестный символ "%s";
error 018: initialization data exceeds declared size - данные массива превышают его размер;
error 019: not a label: %s" - не метка "%s";
error 020: invalid symbol name "%s" - неверное имя символа "%s";
error 021: symbol already defined: %s" - символ уже объявлен: "%s";
error 022: must be lvalue (non-constant) - должно быть левосторонним (нет постоянной);
error 023: array assignment must be simple assignment - назначение массива должно быть простым;
error 024: "break" or "continue" is out of context - "break" или "continue" вне контекста;
error 025: function heading differs from prototype - функция заголовка отличается от прототипа;
error 026: no matching "#if..." - не найдено "#if...";
error 027: invalid character constant - недопустимый символ в постоянной;
error 028: invalid subscript (not an array or too many subscripts): "%s" - неверный индекс (это не массив или слишком много индексов): "%s";
error 029: invalid expression, assumed zero - неверное выражение, нет результата;
error 030: compound statement not closed at the end of file - составной оператор не закрыт в конце файла;
error 031: unknown directive - неизвестная директива;
error 032: array index out of bounds (variable "%s") - индекс массива превышен;
error 033: array must be indexed (variable "%s") - массив должен быть проиндексирован;
error 034: argument does not have a default value (argument %d) - аргумент не имеет начального значения (аргумент %d);
error 035: argument type mismatch (argument %d) - несоответствие типа аргумента (аргумент %d);
error 036: empty statement - пустой оператор;
error 037: invalid string (possibly non-terminated string) - неправильная строка;
error 038: extra characters on line - лишние символы в строке;
error 039: constant symbol has no size - символьная константа не имеет размера;
error 040: duplicate "case" label (value %d) - несколько раз объявлен "case" с одним тем же параметром;
error 041: invalid ellipsis, array size is not known - размер массива неизвестен;
error 042: invalid combination of class specifiers - недопустимое сочетание класса;
error 043: character constant exceeds range for packed string - символьная константа превышает размер строки;
error 044: positional parameters must precede all named parameters - позиционные параметры должны предшествовать всем именованным параметрам;
error 045: too many function arguments - слишком много аргументов у функции;
error 046: unknown array size (variable "%s") - неизвестный размер массива;
error 047: array sizes do not match, or destination array is too small - размеры массива конфликтуют, либо целевой массив слишком маленький;
error 048: array dimensions do not match - размеры массива не совпадают;
error 049: invalid line continuation - неправильное продолжение строки;
error 050: invalid range - неверный диапазон;
error 051: invalid subscript, use "[ ]" operators on major dimensions - неправильный индекс, используйте "[]";
error 052: multi-dimensional arrays must be fully initialized - много-размерные массивы должны быть полностью определены;
error 053: exceeding maximum number of dimensions - превышение максимального числа измерений;
error 054: unmatched closing brace - не найдена закрывающаяся скобка;
error 055: start of function body without function header - начало функции без заголовка;
error 056: arrays, local variables and function arguments cannot be public (variable "%s") - массивы, локальные переменные и аргументы функции не могут быть общедоступными;
error 057: unfinished expression before compiler directive - незавершенное выражение для компилятора;
error 058: duplicate argument; same argument is passed twice - дублирование аргумента; Аргумент передается несколько раз;
error 059: function argument may not have a default value (variable "%s") - аргумент не может иметь значение по-умолчанию;
error 060: multiple "#else" directives between "#if ... #endif" - Несколько "#else" между "#if ... #endif" - несколько "#else" между "#if и #endif";
error 061: "#elseif" directive follows an "#else" directive - "#else" перед "#elseif";
error 062: number of operands does not fit the operator - количество операндов не соответствует оператору;
error 063: function result tag of operator "%s" must be "%s" - Результат функции %s должен быть %s;
error 064: cannot change predefined operators - невозможно изменить уже определенные операторы;
error 065: function argument may only have a single tag (argument %d) - в этой функции может быть только один аргумент;
error 066: function argument may not be a reference argument or an array (argument "%s") - аргумент функции не может быть ссылкой или массивом;
error 067: variable cannot be both a reference and an array (variable "%s") - Переменная не может быть как массив или ссылка;
error 068: invalid rational number precision in #pragma - неверное число в #pragma;
error 069: rational number format already defined - формат рационального числа уже определен;
error 070: rational number support was not enabled - рациональное число не поддерживается;
error 071: user-defined operator must be declared before use (function "%s") - объявленный оператор должен быть перед использованием;
error 072: "sizeof" operator is invalid on "function" symbols - оператор "sizeof" не может быть использован для символов функции;
error 073: function argument must be an array (argument "%s") - аргумент %s должен быть массивом;
error 074: #define %s must start with an alphabetic character - #define должен начинаться с буквы;
error 075: input line too long (after substitutions - введенная строка слишком длинная;
error 076: syntax *error in the expression, or invalid function call - неправильный синтаксис или неправильный вызов функции;
error 077: malformed UTF-8 encoding, or corrupted file: %s - плохая кодировка UTF-8 или плохой файл: %s;
error 078: function uses both "return" and "return <value>" - функция использует "return" и "return <значение>";
error 079: inconsistent return types (array & non-array) - несовместимость типов возвращенных результатов;
error 080: unknown symbol, or not a constant symbol (symbol "%s") - неизвестный или непостоянный символ: %s;
error 081: cannot take a tag as a default value for an indexed array parameter (symbol "%s") - не может принимать тег в качестве значения по умолчанию для параметра индексированного массива;
error 082: user-defined operators and native functions may not have states - созданные функции или операторы не имеют состояния;
error 083: a function may only belong to a single automaton (symbol "%s") - функция может принадлежать только к одной автоматизации;
error 084: state conflict: one of the states is already assigned to another implementation (symbol "%s") - конфликт состояния: одно из состояний уже назначено на другую реализацию;
error 085: no states are defined for function "%s" - нет состояний, определенных для функции "%s";
error 086: unknown automaton "%s" - неизвестная автоматизация "%s";
error 087: unknown state "%s" for automaton "%s" - неизвестное состояние "%s" в автоматизации "%s";
error 088: number of arguments does not match definition - количество аргументов не совпадает с объявленными в функции;
@Саша55555, функция format записывает нужный Вам текст в переменную.
Например, Вы хотите вывести в чат свой nick-name и level. У функции вывода текста в чат всего 3 аргумента: ID игрока (которому отправляем), цвет, текст. Но аргументы здесь использовать нельзя. Поэтому используем format.
Структура такова: format(куда записываем, какой размер, что записываем, аргументы);
Например, format(string, 128, «Здесь ваш текст %d», a);
Таким образом, мы записали в переменную string текст, максимальная длина которого 128 символов, использовав аргумент a. Можно, чтобы длину подсчитывала система, использовать функцию sizeof. Результат будет следующий:
format(string, sizeof(string), «Здесь ваш текст %d», a);
Далее, переменная string у нас осталась не объявлена. То есть компилятору она неизвестна. Соответственно, нужно ее объявить.
new string[];
В квадратных скобках Вы должны указать количество символов, которое будете записывать в эту переменную. Можно считать вручную, а можно использовать тот же notepad++. У меня длина текста составляет 56 символов (при условии, что переменная a содержит не больше трех знаков (то есть двух- или однозначное число). Но стоит учесть еще запас, грубо говоря, прибавляйте всегда 5 символов и будет Вам радость. 56+5 = 51. В строке выше я указал 65, поскольку делал все на глаз (прикидывал длину).
#1
Отправлено 06 ноября 2018 — 14:20
-
- Прохожий
-
Не могу найти ошибку.
(346): error 029: invalid expression, assumed zero
(346): warning 215: expression has no effect
(346) : error 001: expected token: «;», but found «)»
(346) : error 029: invalid expression, assumed zero
(346) : fatal error 107: too many error messages on one line
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { switch(dialogid) { case DLG_REG: { if(response) { if(!strlen(inputtext)) { ShowRegistration(playerid); return SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF}Вы не ввели пароль."); } if(strlen(inputtext)) < 8 || strlen(inputtext) > 32) //ЭТО СТРОКА 346 { ShowRegistration(playerid); return SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF}Введённый пароль слишком длинный."); } new regex:rg_passwordcheck = regex_new("^[a-zA-Z0-9](1,)$"); if(regex_check(inputtext, rg_passwordcheck)) { strmid(player_info[playerid][PASSWORD], inputtext, 0, strlen(inputtext), 32); SPD(playerid, DLG_REGEMAIL, DIALOG_STYLE_INPUT, "{ff000c}Регистрация{FFFFFF} • Ввод E-mail", "{FFFFFF}Введите ваш настоящий E-mail адрес в поле ниже:n Если вы потеряете доступ к аккаунту, то вы сможете восстановить его через E-mail.", "Далее", ""); } else { ShowRegistration(playerid); return SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF}Пароль может состоять только из латинских букв и цифр."); } } else { SCM(playerid, COLOR_RED, "Введите /q , чтобы покинуть сервер."); SPD(playerid, -1, 0, " ", " "," ",""); return Kick(playerid); } } }
Сообщение отредактировал Morris13: 06 ноября 2018 — 14:22
0
#2
Отправлено 06 ноября 2018 — 15:07
-
- Прохожий
-
Лишняя скобка
ошибка в strlen(inputtext) < 8
if(strlen(inputtext)) < 8 || strlen(inputtext) > 3)
0
case PokerDialog+4:
{if(response){RouletChoise[0] = listitem;
ShowPlayerDialog(playerid,PokerDialog + 5,DIALOG_STYLE_INPUT,"Рулетка","Введите ставку(минимальная 10$))","Далее","Отмена");
}else if(!response && RouletChoise[1]){
SetPlayerCameraPos(playerid, 1985.9100341797, 1054.1009521484, 333.4500610352);
SetPlayerCameraLookAt(playerid, 1985.9100341797, 1054.1009521484, 332.35000610352);
SetObjectRot(Roullet[0], 270, 0, 0);
SetObjectPos(Roullet[1], 1986.308471, 1054.135864, 332.35000610352);
new x = random(37)+1;
SetBallPos(playerid, 4, 1, x);
RotateObject_Casino(playerid, 0, Roullet[0], 270, x*9.75, 0, 100, 100.0);
}else if(!response && !RouletChoise[1]){
RouletChoise[2] = 0;
TogglePlayerControllable(playerid, 1);}
}case PokerDialog+5:{
if(!response||strval(inputtext)<10){
ShowPlayerDialog(playerid,PokerDialog + 5,DIALOG_STYLE_INPUT,"Рулетка","Введите ставку(минимальная 10$))","Далее","Отмена");return 1;}else{
RouletBet[RouletChoise[0]] = strval(inputtext);
PlayerInfo[playerid][pCash] -= strval(inputtext);
RouletChoise[1] = 1;
RouletChoise[0] = 0;
ShowPlayerDialog(playerid,PokerDialog + 4,DIALOG_STYLE_LIST,"Рулетка","REDnBLACKn0n1n2n3n4n5n6n7n8n9n10n11n12n13n14n15n16n17n18n19n20n21n22n23n24n25n26n27n28n29n30n31n32n33n34n35n36","Далее","Играть");}}
Всех вновь приветствую, столкнулся с такой проблемой… Что не сохраняется тюнинг на автомобиль, вроде всё написано правильно и по логике сохранение должно быть, но, его нет. Самое интересное, что в базу данных обновление столбца идёт. Так что с тюнингом, что с цветом автомобиля. Код прикреплю ниже, надеюсь на Вашу помощь.
publics: LoginCallback
cache_get_field_content(0,»one_tuneveh», maximum, connects, 74), sscanf(maximum, «p<,>a<i>[15]»,cTune[playerid][0]);
cache_get_field_content(0,»two_tuneveh», maximum, connects, 74), sscanf(maximum, «p<,>a<i>[15]»,cTune[playerid][1]);
cache_get_field_content(0,»one_vehcolor», maximum, connects, 11), sscanf(maximum, «p<,>a<i>[2]»,cColor[playerid][0]);
cache_get_field_content(0,»two_vehcolor», maximum, connects, 11), sscanf(maximum, «p<,>a<i>[2]»,cColor[playerid][1]);
Стоки
}
stock SaveVehicleTuning(playerid, carnumber)
{
new tunning[100];
format(tunning, sizeof(tunning), «%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d»,
cTune[playerid][carnumber][0],cTune[playerid][carnumber][1],cTune[playerid][carnumber][2],
cTune[playerid][carnumber][3],cTune[playerid][carnumber][4],cTune[playerid][carnumber][5],
cTune[playerid][carnumber][6],cTune[playerid][carnumber][7],cTune[playerid][carnumber][8],
cTune[playerid][carnumber][9],cTune[playerid][carnumber][10],cTune[playerid][carnumber][11],
cTune[playerid][carnumber][12],cTune[playerid][carnumber][13],cTune[playerid][carnumber][13],
cTune[playerid][carnumber][14]);
if(carnumber == 0) format(stringer, sizeof(stringer), «UPDATE `»TABLE_ACCOUNT»` SET `one_tuneveh` = ‘%s’ WHERE `pID` = ‘%d'»,tunning,PlayerInfo[playerid][pID]);
else if(carnumber == 1) format(stringer, sizeof(stringer), «UPDATE `»TABLE_ACCOUNT»` SET `two_tuneveh` = ‘%s’ WHERE `pID` = ‘%d'»,tunning,PlayerInfo[playerid][pID]);
return mysql_function_query(connects, stringer, false, «», «»);
}
stock SaveVehicleColor(playerid, carnumber)
{
new color[11];
format(color, sizeof(color), «%d,%d»,cColor[playerid][carnumber][0],cColor[playerid][carnumber][1]);
if(!carnumber) format(stringer, sizeof(stringer), «UPDATE `»TABLE_ACCOUNT»` SET `one_vehcolor` = ‘%s’ WHERE `pID` = ‘%d'»,color,PlayerInfo[playerid][pID]);
else format(stringer, sizeof(stringer), «UPDATE `»TABLE_ACCOUNT»` SET `two_vehcolor` = ‘%s’ WHERE `pID` = ‘%d'»,color,PlayerInfo[playerid][pID]);
return mysql_function_query(connects, stringer, false, «», «»);
Их использование (прикреплю полный код)
}
case 79:
{
new playerd = GetPVarInt(playerid, «CarPlayer»), price = GetPVarInt(playerid, «CarPrice»);
if(SELL[0][playerd] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, «Игрок, который продавал Вам машину вышел из игры.»);
if(response)
{
if(PlayerInfo[playerid][pCash] < price)
{
SendClientMessage(playerid, COLOR_GREY, «У вас не достаточно денег»);
format(stringer1, 100, «У %s недостаточно средств», PlayerInfo[playerid][pNames]);
SendClientMessage(playerd,COLOR_WHITE,stringer1);
DeletePVar(playerid, «CarPrice»);
DeletePVar(playerid, «CarPlayer»);
SELL[0][playerd] = INVALID_PLAYER_ID;
return true;
}
if(listitem == 0)
{
if(GetPVarInt(playerd,»CarNomer») == 0) PlayerInfo[playerid][pCar] = PlayerInfo[playerd][pCar];
else PlayerInfo[playerid][pCar] = PlayerInfo[playerd][pCar2];
SetPVarInt(playerid, «CarNomer», 0);
}
else if(listitem == 1)
{
if(GetPVarInt(playerd,»CarNomer») == 0) PlayerInfo[playerid][pCar2] = PlayerInfo[playerd][pCar];
else PlayerInfo[playerid][pCar2] = PlayerInfo[playerd][pCar2];
SetPVarInt(playerid, «CarNomer», 1);
}
if(GetPVarInt(playerd,»CarNomer») == 0) PlayerInfo[playerd][pCar] = 462;
else PlayerInfo[playerd][pCar2] = 462;
cTune[playerid][GetPVarInt(playerid,»CarNomer»)][0] = cTune[playerd][GetPVarInt(playerd,»CarNomer»)][0];
cColor[playerid][GetPVarInt(playerid,»CarNomer»)][0] = cColor[playerd][GetPVarInt(playerd,»CarNomer»)][0];
cColor[playerid][GetPVarInt(playerid,»CarNomer»)][1] = cColor[playerd][GetPVarInt(playerd,»CarNomer»)][1];
for(new i = 1; i <= 14; i++) cTune[playerid][GetPVarInt(playerid,»CarNomer»)][i] = cTune[playerd][GetPVarInt(playerd,»CarNomer»)][i];
if(caridhouse[playerid] != INVALID_VEHICLE_ID) DestroyVehicleEx(caridhouse[playerid]);
if(caridhouse[playerd] != INVALID_VEHICLE_ID) DestroyVehicleEx(caridhouse[playerd]);
// ПОКУПАТЕЛЬ:
if(GetPVarInt(playerid,»CarNomer») == 0) caridhouse[playerid] = CreateVehicleEx(PlayerInfo[playerid][pCar], 2531.9766,-1540.2168,2023.1902,90.0000, cColor[playerid][GetPVarInt(playerid,»CarNomer»)][0], cColor[playerid][GetPVarInt(playerid,»CarNomer»)][1], 7200, 0);
else caridhouse[playerid] = CreateVehicleEx(PlayerInfo[playerid][pCar2], 2531.6418,-1546.1769,2023.1758,90.0000, cColor[playerid][GetPVarInt(playerid,»CarNomer»)][0], cColor[playerid][GetPVarInt(playerid,»CarNomer»)][1], 7200, 0);
VEHICLE[caridhouse[playerid]][vHealth] = 1000.0;
VEHICLE[caridhouse[playerid]][vLock] = 1;
LinkVehicleToInterior(caridhouse[playerid], 1);
SetVehicleVirtualWorld(caridhouse[playerid], PlayerInfo[playerid][pPhousekey]+50);
Fuell[caridhouse[playerid]] = PlayerInfo[playerid][pFuelcar] + 20.0;
AddTune(playerid, GetPVarInt(playerid,»CarNomer»));
SaveVehicleTuning(playerid, GetPVarInt(playerid,»CarNomer»));
// ПРОДАВЕЦ:
caridhouse[playerd] = CreateVehicleEx(462, 2531.9766,-1540.2168,2023.1902,90.0000, cColor[playerd][GetPVarInt(playerd,»CarNomer»)][0], cColor[playerd][GetPVarInt(playerd,»CarNomer»)][0],7200, 0);
VEHICLE[caridhouse[playerd]][vHealth] = 1000.0;
VEHICLE[caridhouse[playerd]][vLock] = 1;
LinkVehicleToInterior(caridhouse[playerd], 1);
SetVehicleVirtualWorld(caridhouse[playerd], PlayerInfo[playerd][pPhousekey]+50);
Fuell[caridhouse[playerd]] = PlayerInfo[playerd][pFuelcar] + 20.0;
DeleteVehicleTune(playerd, GetPVarInt(playerd,»CarNomer»), 1);
format(stringer1, 100, «Вы продали авто %s за %s вирт», PlayerInfo[playerid][pNames], formatInt(price));
SendClientMessage(playerd,COLOR_LIGHTBLUE,stringer1);
format(stringer1, 100, «%s продал вам авто за %s вирт», PlayerInfo[playerd][pNames], formatInt(price));
SendClientMessage(playerid,COLOR_LIGHTBLUE,stringer1);
GiveMoney(playerd, price);
PlayerInfo[playerid][pCash] -= price;
}
else
{
format(stringer1, 100, «%s отклонил предложение о продаже», PlayerInfo[playerid][pNames]);
SendClientMessage(playerd,COLOR_LIGHTBLUE,stringer1);
}
SELL[0][playerd] = INVALID_PLAYER_ID;
DeletePVar(playerid, «CarPrice»);
DeletePVar(playerid, «CarPlayer»);
}
case D_ATUNE:
{
if(response)
{
switch(listitem)
{
case 0:
{
if(PlayerInfo[playerid][pProz] >= 100) return SendClientMessage(playerid, COLOR_SILVER, «Двигатель у вашего автомобиля в полном порядке.»), ShowTuneDialog(playerid);
new till = BizzInfo[TuneShop[playerid]][bTill] * 20;
format(stringer1, sizeof(stringer1), «%d$», till*(100-PlayerInfo[playerid][pProz]));
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Engine»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], «Engine»);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
GetVehicleParamsEx(caridhouse[playerid], engine, light, alarm, doorss, bonnet, boot, objective);
SetVehicleParamsEx(caridhouse[playerid], engine, light, alarm, doorss, true, boot, objective);
ShowTuneMenu(playerid);
}
case 1:
{
if(cTune[playerid][GetPVarInt(playerid,»CarNomer»)][0] != -1)
{
ShowPlayerDialog(playerid, D_ATUNE+1, DIALOG_STYLE_MSGBOX, «Предупреждение», «На ваш автомобиль наклеен винил.nПри покраске, он будет закрашен.nВы действительно хотите продолжить?», «Да», «Нет»);
}
else
{
ShowPlayerDialog(playerid, D_ATUNE+2, DIALOG_STYLE_INPUT, «Покраска», «Введите основной и дополнительный цвет от 1 до 255 через пробел.nПример: 14 28», «Выбрать», «Назад»);
}
}
case 2:
{
switch(GetVehicleModel(caridhouse[playerid]))
{
case 560,562,575,565,561,559,558,534,567,536,535,576:
{
ShowPlayerDialog(playerid, D_ATUNE+3, DIALOG_STYLE_MSGBOX, «Предупреждение», «При добавлении винила, ваш старый цвет будет закрашен.nВы действительно хотите продолжить?», «Да», «Нет»);
}
default:
{
SendClientMessage(playerid, COLOR_SILVER, «Покрасочная работа недоступна для вашего автомобиля»);
ShowTuneDialog(playerid);
}
}
}
case 3:
{
AddVehicleComponent(caridhouse[playerid], Nitro[0][0]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Nitro»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], Nitro[0][2]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * Nitro[0][1]);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
InterpolateCameraPos(playerid, 608.148681,1.742553, 1001.968444,618.342895,-3.137414,1003.073059, 1500);
InterpolateCameraLookAt(playerid, 612.557067,-0.474712,1001.162170,615.096435,-0.434012,1000.407531, 1500);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
}
case 4:
{
AddVehicleComponent(caridhouse[playerid], 1087);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Hydraulics»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], «Hydraulics»);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * 500);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
}
case 5:
{
AddVehicleComponent(caridhouse[playerid], 1086);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Stereo»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], «Stereo»);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * 450);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
GetVehicleParamsEx(caridhouse[playerid], engine, light, alarm, doorss, bonnet, boot, objective);
SetVehicleParamsEx(caridhouse[playerid], engine, light, alarm, doorss, bonnet, true, objective);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
}
case 6:
{
new start = GetStartTypeTune(playerid, 6);
ChangeTuneDetail[playerid] = start;
AddVehicleComponent(caridhouse[playerid], Wheels[start][0]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Wheels»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], Wheels[start][2]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * Wheels[start][1]);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
InterpolateCameraPos(playerid, 608.148681,1.742553,1001.968444,616.744934,-4.117499,1000.569702, 1500);
InterpolateCameraLookAt(playerid, 612.557067,-0.474712,1001.162170,616.920288,0.855340,1000.079711, 1500);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
}
case 7:
{
switch(GetVehicleModel(caridhouse[playerid]))
{
case 439,420,426,492: return SendClientMessage(playerid, COLOR_SILVER, «К сожалению, выхлопные трубы недоступны для вашего автомобиля.»), ShowTuneDialog(playerid);
}
new start = GetStartTypeTune(playerid, 7);
ChangeTuneDetail[playerid] = start;
AddVehicleComponent(caridhouse[playerid], Exhaust[start][0]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Exhaust»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], Exhaust[start][2]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * Exhaust[start][1]);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
InterpolateCameraPos(playerid, 608.148681,1.742553,1001.968444,620.498657, -1.073193, 1000.572021, 1500);
InterpolateCameraLookAt(playerid, 612.557067,-0.474712,1001.162170,615.501037, -1.088341, 1000.418518, 1500);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
}
case 8:
{
new start = GetStartTypeTune(playerid, 8);
ChangeTuneDetail[playerid] = start;
new model = GetVehicleModel(caridhouse[playerid]);
switch(model)
{
case 560, 562, 565, 561, 559, 558, 534, 535:
{
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
}
case 439,491,517,518,540,546,549,550,585,603,401,496,547,542:
{
AddVehicleComponent(caridhouse[playerid], Vents[start][0]);
AddVehicleComponent(caridhouse[playerid], Vents[start][1]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Vent»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], Vents[start][2]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * 850);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
if(model != 401 && model != 496 && model != 547 && model != 542)
{
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
}
InterpolateCameraPos(playerid, 608.148681,1.742553, 1001.968444,610.482177, -1.161545, 1001.931335, 1500);
InterpolateCameraLookAt(playerid, 612.557067,-0.474712,1001.162170,614.982360, -1.216045, 999.752990, 1500);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
TuneID[playerid] = listitem;
return true;
}
case 400,410,478,489,500,589,404,422,436,600,420,426,492,516,551,529: return SendClientMessage(playerid, COLOR_SILVER, «К сожалению, вентиляция недоступна для вашего автомобиля.»), ShowTuneDialog(playerid);
}
AddVehicleComponent(caridhouse[playerid], Sideskirt[start][0]);
AddVehicleComponent(caridhouse[playerid], Sideskirt[start][1]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Side Skirts»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], Sideskirt[start][2]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * 650);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
InterpolateCameraPos(playerid, 608.148681,1.742553,1001.968444,615.281188,-5.337747,1001.366333, 1500);
InterpolateCameraLookAt(playerid, 612.557067,-0.474712,1001.162170,615.096435,-0.434012,1000.407531, 1500);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
}
case 9:
{
new start = GetStartTypeTune(playerid, 9);
ChangeTuneDetail[playerid] = start;
new model = GetVehicleModel(caridhouse[playerid]);
switch(model)
{
case 560, 562, 575, 565, 561, 559, 558, 426, 567, 536, 576:
{
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
}
case 400,410,478,489,500,589,404,422,436,600,401,439,518,585,540,546,603:
{
AddVehicleComponent(caridhouse[playerid], Lamps[start][0]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Lamps»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], Lamps[start][2]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * Lamps[start][1]);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
switch(model)
{
case 400,410,478,489,500,589:
{
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
}
}
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
TuneID[playerid] = listitem;
return true;
}
case 491,517,549,550,496,547,542,420,492,516,551,529: return SendClientMessage(playerid, COLOR_SILVER, «К сожалению, дополнительные фары недоступны для вашего автомобиля.»), ShowTuneDialog(playerid);
}
AddVehicleComponent(caridhouse[playerid], FrontBumper[start][0]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Front Bumper»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], FrontBumper[start][1]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * 400);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
InterpolateCameraPos(playerid, 608.148681,1.742553,1001.968444,609.310607,-1.098132,1001.088989, 1500);
InterpolateCameraLookAt(playerid, 612.557067,-0.474712,1001.162170,614.270080,-1.076863,1000.454101, 1500);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
}
case 10:
{
new start = GetStartTypeTune(playerid, 10);
ChangeTuneDetail[playerid] = start;
new model = GetVehicleModel(caridhouse[playerid]);
switch(model)
{
case 401,420,426,492,550,589,600,478,516,540,546,489,518,551,496,529,549:
{
AddVehicleComponent(caridhouse[playerid], Hood[start][0]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Hood»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], Hood[start][1]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * 990);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
if(model != 516 && model != 540 && model != 546 && model != 489 && model != 518 && model != 551 && model != 496)
{
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
}
InterpolateCameraPos(playerid, 608.148681,1.742553, 1001.968444,610.482177, -1.161545, 1001.931335, 1500);
InterpolateCameraLookAt(playerid, 612.557067,-0.474712,1001.162170,614.982360, -1.216045, 999.752990, 1500);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
TuneID[playerid] = listitem;
return true;
}
case 535,439,491,517,585,603,547,542,400,410,500,404,422,436: return SendClientMessage(playerid, COLOR_SILVER, «К сожалению, капот недоступен для вашего автомобиля.»), ShowTuneDialog(playerid);
}
AddVehicleComponent(caridhouse[playerid], RearBumper[start][0]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Rear Bumper»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], RearBumper[start][1]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * 690);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
InterpolateCameraPos(playerid, 608.148681,1.742553,1001.968444,620.983703, -1.042761, 1000.860351, 1500);
InterpolateCameraLookAt(playerid, 612.557067,-0.474712,1001.162170,615.987792, -1.221915, 1000.767822, 1500);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
}
case 11:
{
new start = GetStartTypeTune(playerid, 11);
ChangeTuneDetail[playerid] = start;
AddVehicleComponent(caridhouse[playerid], Roof[start][0]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Roof»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], Roof[start][1]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * 790);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
InterpolateCameraPos(playerid, 608.148681,1.742553,1001.968444,611.069030,-1.105961,1002.401916, 1500);
InterpolateCameraLookAt(playerid, 612.557067,-0.474712,1001.162170,615.851745,-1.128729,1000.944213, 1500);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5», PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
}
case 12:
{
new start = GetStartTypeTune(playerid, 12);
ChangeTuneDetail[playerid] = start;
AddVehicleComponent(caridhouse[playerid], Spoiler[start][0]);
PlayerTextDrawSetString(playerid, TuneTypeShow[playerid], «Spoiler»);
PlayerTextDrawSetString(playerid, TuneComponentShow[playerid], Spoiler[start][1]);
format(stringer1,sizeof(stringer1),»%d$»,BizzInfo[TuneShop[playerid]][bTill] * 1000);
PlayerTextDrawSetString(playerid, TuneCostShow[playerid], stringer1);
TextDrawShowForPlayer(playerid, TuneArrow[0]);
TextDrawShowForPlayer(playerid, TuneArrow[1]);
InterpolateCameraPos(playerid, 608.148681,1.742553,1001.968444,620.206481,-1.130074,1001.853393, 1500);
InterpolateCameraLookAt(playerid, 612.557067,-0.474712,1001.162170,615.385192,-1.050681,1000.530883, 1500);
if(PlayerInfo[playerid][pQuest5] == 0)
{
PlayerInfo[playerid][pQuest5] = 1;
UpdatePlayerData(playerid, «pQuest5″, PlayerInfo[playerid][pQuest5]);
}
ShowTuneMenu(playerid);
}
}
TuneID[playerid] = listitem;
}
else
{
if(caridhouse[playerid] == INVALID_VEHICLE_ID) return TuneID[playerid] = -1, SpawnPlayerEx(playerid);
switch(TuneShop[playerid])
{
case 84:
{
SetVehicleEE(caridhouse[playerid], 944.4412,-1738.9734,13.1795);
SetVehicleZAngleEx(caridhouse[playerid], 92.7119);
}
case 85:
{
SetVehicleEE(caridhouse[playerid], -1786.8325,1206.1458,24.8889);
SetVehicleZAngleEx(caridhouse[playerid], 180.0444);
}
case 86:
{
SetVehicleEE(caridhouse[playerid], 1649.3677,2197.4707,10.5478);
SetVehicleZAngleEx(caridhouse[playerid], 180.0778);
}
}
SetCameraBehindPlayer(playerid);
LinkVehicleToInterior(caridhouse[playerid], 0);
SetVehicleVirtualWorld(caridhouse[playerid], 0);
SetPlayerInteriorEx(playerid, 0);
SetPlayerVirtualWorldEx(playerid, 0);
TuneID[playerid] = -1;
SaveBizz(TuneShop[playerid]);
TuneShop[playerid] = 0;
UpdateSpeedometr(playerid, 0);
for(new i; i < 18; i++) PlayerTextDrawShow(playerid, td_speed[playerid][i]);
SaveVehicleTuning(playerid, GetPVarInt(playerid,»CarNomer»));
}