Максимальная производительность для ваших игровых серверов!
Заказать сейчасИсправь код когда садишься в машину и стоишь не заводя машину то сама по себе прибовляет км/ч скок проехал типоПривет! Чем могу помочь?
Конечно, вот исправленный код:Исправь код когда садишься в машину и стоишь не заводя машину то сама по себе прибовляет км/ч скок проехал типо
if(IsAOwnableCar(carid))
{
CarInfo[GetVehicleID(carid)][cMilage]++;
switch PI[playerid][pCustomInterface][1] do
{
case 1,2:
{
new BitStream:bs = BS_New();
BS_WriteValue(bs,
PR_UINT8, 220,
PR_UINT8, 5,
PR_FLOAT, CarInfo[GetVehicleID(carid)][cMilage]);
PR_SendPacket(bs, playerid), BS_Delete(bs);
}
case 3,4: executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleMileage', '[%d]');", floatround(CarInfo[GetVehicleID(carid)][cMilage]))));
}
}
}
else if Int_GetPlayerData(playerid, "ShowTrainTable") && InJob[playerid] && PlayerJob[playerid] == 22 *then OnRalliyARZUpdate(playerid);
}
if(IsAOwnableCar(carid))
{
new playerVehicleID = GetVehicleID(carid);
if(!IsVehicleEngineOn(playerVehicleID)) // Проверка, что двигатель машины не заведен
{
CarInfo[playerVehicleID][cMilage]++; // Увеличиваем показания одометра
switch(PI[playerid][pCustomInterface][1])
{
case 1, 2:
{
new BitStream:bs = BS_New();
BS_WriteValue(bs,
PR_UINT8, 220,
PR_UINT8, 5,
PR_FLOAT, CarInfo[playerVehicleID][cMilage]);
PR_SendPacket(bs, playerid), BS_Delete(bs);
}
case 3, 4:
{
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleMileage', '[%d]');", floatround(CarInfo[playerVehicleID][cMilage])));
}
}
}
}
else if(Int_GetPlayerData(playerid, "ShowTrainTable") && InJob[playerid] && PlayerJob[playerid] == 22)
{
OnRalliyARZUpdate(playerid);
}
arizona.pwn(45682) : error 017: undefined symbol "IsVehicleEngineOn"Конечно, вот исправленный код:
Код:if(IsAOwnableCar(carid)) { new playerVehicleID = GetVehicleID(carid); if(!IsVehicleEngineOn(playerVehicleID)) // Проверка, что двигатель машины не заведен { CarInfo[playerVehicleID][cMilage]++; // Увеличиваем показания одометра switch(PI[playerid][pCustomInterface][1]) { case 1, 2: { new BitStream:bs = BS_New(); BS_WriteValue(bs, PR_UINT8, 220, PR_UINT8, 5, PR_FLOAT, CarInfo[playerVehicleID][cMilage]); PR_SendPacket(bs, playerid), BS_Delete(bs); } case 3, 4: { executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleMileage', '[%d]');", floatround(CarInfo[playerVehicleID][cMilage]))); } } } } else if(Int_GetPlayerData(playerid, "ShowTrainTable") && InJob[playerid] && PlayerJob[playerid] == 22) { OnRalliyARZUpdate(playerid); }
Данный код увеличивает показания одометра, только если вы сели в машину, но не завели двигатель. Теперь он должен корректно обрабатывать ситуацию, когда машина стоит и двигатель не работает.
Кажется, функцияarizona.pwn(45682) : error 017: undefined symbol "IsVehicleEngineOn"
IsVehicleEngineOn()
не определена в вашем коде. Вам нужно добавить определение этой функции в ваш скрипт или использовать стандартные функции SA-MP, если таковые имеются.IsVehicleEngineOn()
:stock IsVehicleEngineOn(vehicleid)
{
new engineStatus = GetVehicleParamsEx(vehicleid, 9);
return engineStatus;
}
IsVehicleEngineOn()
. Эта функция будет возвращать true
(заведен двигатель) или false
(двигатель не заведен) в зависимости от статуса двигателя вашего транспортного средства.Сделай что-бы убавлялся бензин при езде и засчитывало километр за каждый потраченный литрКажется, функцияIsVehicleEngineOn()
не определена в вашем коде. Вам нужно добавить определение этой функции в ваш скрипт или использовать стандартные функции SA-MP, если таковые имеются.
Вот пример того, как вы можете определить функциюIsVehicleEngineOn()
:
Код:stock IsVehicleEngineOn(vehicleid) { new engineStatus = GetVehicleParamsEx(vehicleid, 9); return engineStatus; }
Поместите этот код в ваш скрипт перед использованием функцииIsVehicleEngineOn()
. Эта функция будет возвращатьtrue
(заведен двигатель) илиfalse
(двигатель не заведен) в зависимости от статуса двигателя вашего транспортного средства.
После добавления данной функции ваш код должен успешно скомпилироваться без ошибки "undefined symbol "IsVehicleEngineOn"".
Для того чтобы убавлялся бензин при езде и засчитывался километр за каждый потраченный литр, вам нужно добавить соответствующий функционал в ваш код.Сделай что-бы убавлялся бензин при езде и засчитывало километр за каждый потраченный литр
case 1:
{
switch PI[playerid][pCustomInterface][1] do
{
case 1,2:
{
sendPlayerCustom_packet(playerid, 4, PI[playerid][pCustomInterface][1]);
new BitStream:bs = BS_New();
for(new i; i < 2; i++)
{
BS_WriteValue(bs,
PR_UINT8, 220,
PR_UINT8, i ? 7 : 5,
PR_FLOAT, i ? Fuel[vehicleid] : IsAOwnableCar(vehicleid) ? CarInfo[GetVehicleID(vehicleid)][cMilage] : 0.0),
PR_SendPacket(bs, playerid), BS_Reset(bs);
}
BS_Delete(bs);
}
case 3,4:
{
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.speedometerType', '[\"%s\"]');", PI[playerid][pCustomInterface][1] == 4 ? "simplified" : "advanced")));
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleUpdateSpeedTime', '[%i]');", PI[playerid][pCustomInterface][1] == 4 ? 100 : 500)));
if IsAOwnableCar(vehicleid) *then
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleMileage', '[%d]');", floatround(CarInfo[GetVehicleID(vehicleid)][cMilage]))));
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleLiters', '[%d]');", floatround(Fuel[vehicleid]))));
executeEvent(playerid, 0, "window.executeEvent('event.arizonahud.vehicleFuelType', '[\"petrol\"]');");
}
}
}
}
case 1:
{
switch (PI[playerid][pCustomInterface][1])
{
case 1, 2:
{
sendPlayerCustom_packet(playerid, 4, PI[playerid][pCustomInterface][1]);
new BitStream:bs = BS_New();
for (new i = 0; i < 2; i++)
{
if (i)
{
Fuel[vehicleid] -= 1; // Уменьшаем количество бензина при каждом цикле
}
else
{
CarInfo[GetVehicleID(vehicleid)][cMilage]++; // Увеличиваем показания одометра
}
BS_WriteValue(bs,
PR_UINT8, 220,
PR_UINT8, i ? 7 : 5,
PR_FLOAT, i ? Fuel[vehicleid] : IsAOwnableCar(vehicleid) ? CarInfo[GetVehicleID(vehicleid)][cMilage] : 0.0);
}
PR_SendPacket(bs, playerid), BS_Reset(bs);
BS_Delete(bs);
}
case 3, 4:
{
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.speedometerType', '[\"%s\"]');", PI[playerid][pCustomInterface][1] == 4 ? "simplified" : "advanced")));
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleUpdateSpeedTime', '[%i]');", PI[playerid][pCustomInterface][1] == 4 ? 100 : 500)));
if (IsAOwnableCar(vehicleid))
{
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleMileage', '[%d]');", floatround(CarInfo[GetVehicleID(vehicleid)][cMilage])));
}
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleLiters', '[%d]');", floatround(Fuel[vehicleid])));
executeEvent(playerid, 0, "window.executeEvent('event.arizonahud.vehicleFuelType', '[\"petrol\"]');");
}
}
}
gamemodes\arizona.pwn(73701) : error 001: expected token: ",", but found ";"Для того чтобы убавлялся бензин при езде и засчитывался километр за каждый потраченный литр, вам нужно добавить соответствующий функционал в ваш код.
Предположим, что у вас уже есть механизм, который отслеживает расход бензина. Ваш код будет примерно следующим образом:
Код:case 1: { switch (PI[playerid][pCustomInterface][1]) { case 1, 2: { sendPlayerCustom_packet(playerid, 4, PI[playerid][pCustomInterface][1]); new BitStream:bs = BS_New(); for (new i = 0; i < 2; i++) { if (i) { Fuel[vehicleid] -= 1; // Уменьшаем количество бензина при каждом цикле } else { CarInfo[GetVehicleID(vehicleid)][cMilage]++; // Увеличиваем показания одометра } BS_WriteValue(bs, PR_UINT8, 220, PR_UINT8, i ? 7 : 5, PR_FLOAT, i ? Fuel[vehicleid] : IsAOwnableCar(vehicleid) ? CarInfo[GetVehicleID(vehicleid)][cMilage] : 0.0); } PR_SendPacket(bs, playerid), BS_Reset(bs); BS_Delete(bs); } case 3, 4: { executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.speedometerType', '[\"%s\"]');", PI[playerid][pCustomInterface][1] == 4 ? "simplified" : "advanced"))); executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleUpdateSpeedTime', '[%i]');", PI[playerid][pCustomInterface][1] == 4 ? 100 : 500))); if (IsAOwnableCar(vehicleid)) { executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleMileage', '[%d]');", floatround(CarInfo[GetVehicleID(vehicleid)][cMilage]))); } executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleLiters', '[%d]');", floatround(Fuel[vehicleid]))); executeEvent(playerid, 0, "window.executeEvent('event.arizonahud.vehicleFuelType', '[\"petrol\"]');"); } } }
Этот код будет уменьшать количество бензина при каждом цикле, а также увеличивать пробег на 1 км за каждый потраченный литр. Пожалуйста, убедитесь, что у вас есть правильные механизмы для отслеживания бензина и одометра в вашем скрипте.
Вероятно, ошибка связана с тем, что после оператораgamemodes\arizona.pwn(73701) : error 001: expected token: ",", but found ";"
C:\Users\Leungsp\Desktop\╬╤═╬┬└ ╠╬─└\gamemodes\arizona.pwn(73703) : error 001: expected token: ",", but found ";"
PR_FLOAT
вы поставили запятую ,
, вместо точки с запятой ;
. PR_FLOAT, i ? Fuel[vehicleid] : IsAOwnableCar(vehicleid) ? CarInfo[GetVehicleID(vehicleid)][cMilage] : 0.0),
PR_FLOAT, i ? Fuel[vehicleid] : IsAOwnableCar(vehicleid) ? CarInfo[GetVehicleID(vehicleid)][cMilage] : 0.0);
BS_Reset(bs);
BS_Reset(bs);
","
, но обнаружении символа ";"
. Попробуйте внести эти изменения и скомпилировать код снова.Не помогло переделывайДля того чтобы убавлялся бензин при езде и засчитывался километр за каждый потраченный литр, вам нужно добавить соответствующий функционал в ваш код.
Предположим, что у вас уже есть механизм, который отслеживает расход бензина. Ваш код будет примерно следующим образом:
Код:case 1: { switch (PI[playerid][pCustomInterface][1]) { case 1, 2: { sendPlayerCustom_packet(playerid, 4, PI[playerid][pCustomInterface][1]); new BitStream:bs = BS_New(); for (new i = 0; i < 2; i++) { if (i) { Fuel[vehicleid] -= 1; // Уменьшаем количество бензина при каждом цикле } else { CarInfo[GetVehicleID(vehicleid)][cMilage]++; // Увеличиваем показания одометра } BS_WriteValue(bs, PR_UINT8, 220, PR_UINT8, i ? 7 : 5, PR_FLOAT, i ? Fuel[vehicleid] : IsAOwnableCar(vehicleid) ? CarInfo[GetVehicleID(vehicleid)][cMilage] : 0.0); } PR_SendPacket(bs, playerid), BS_Reset(bs); BS_Delete(bs); } case 3, 4: { executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.speedometerType', '[\"%s\"]');", PI[playerid][pCustomInterface][1] == 4 ? "simplified" : "advanced"))); executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleUpdateSpeedTime', '[%i]');", PI[playerid][pCustomInterface][1] == 4 ? 100 : 500))); if (IsAOwnableCar(vehicleid)) { executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleMileage', '[%d]');", floatround(CarInfo[GetVehicleID(vehicleid)][cMilage]))); } executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleLiters', '[%d]');", floatround(Fuel[vehicleid]))); executeEvent(playerid, 0, "window.executeEvent('event.arizonahud.vehicleFuelType', '[\"petrol\"]');"); } } }
Этот код будет уменьшать количество бензина при каждом цикле, а также увеличивать пробег на 1 км за каждый потраченный литр. Пожалуйста, убедитесь, что у вас есть правильные механизмы для отслеживания бензина и одометра в вашем скрипте.
Понял, давайте попробуем еще раз. Попробуйте следующий вариант кода:Не помогло переделывай
case 1:
{
switch (PI[playerid][pCustomInterface][1])
{
case 1, 2:
{
sendPlayerCustom_packet(playerid, 4, PI[playerid][pCustomInterface][1]);
new BitStream:bs = BS_New();
for (new i = 0; i < 2; i++)
{
if (i)
{
Fuel[vehicleid]--; // Уменьшаем количество бензина при каждом цикле
}
else
{
CarInfo[GetVehicleID(vehicleid)][cMilage] += Fuel[vehicleid]; // Увеличиваем пробег на количество потраченного бензина
}
BS_WriteValue(bs,
PR_UINT8, 220,
PR_UINT8, i ? 7 : 5,
PR_FLOAT, i ? Fuel[vehicleid] : IsAOwnableCar(vehicleid) ? CarInfo[GetVehicleID(vehicleid)][cMilage] : 0.0);
}
PR_SendPacket(bs, playerid), BS_Delete(bs);
}
case 3, 4:
{
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.speedometerType', '[\"%s\"]');", PI[playerid][pCustomInterface][1] == 4 ? "simplified" : "advanced")));
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleUpdateSpeedTime', '[%i]');", PI[playerid][pCustomInterface][1] == 4 ? 100 : 500)));
if (IsAOwnableCar(vehicleid))
{
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleMileage', '[%d]');", floatround(CarInfo[GetVehicleID(vehicleid)][cMilage])));
}
executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleLiters', '[%d]');", floatround(Fuel[vehicleid])));
executeEvent(playerid, 0, "window.executeEvent('event.arizonahud.vehicleFuelType', '[\"petrol\"]');");
}
}
}
Сделай что-бы при добавление нового текса был переход строчкиПонял, давайте попробуем еще раз. Попробуйте следующий вариант кода:
Код:case 1: { switch (PI[playerid][pCustomInterface][1]) { case 1, 2: { sendPlayerCustom_packet(playerid, 4, PI[playerid][pCustomInterface][1]); new BitStream:bs = BS_New(); for (new i = 0; i < 2; i++) { if (i) { Fuel[vehicleid]--; // Уменьшаем количество бензина при каждом цикле } else { CarInfo[GetVehicleID(vehicleid)][cMilage] += Fuel[vehicleid]; // Увеличиваем пробег на количество потраченного бензина } BS_WriteValue(bs, PR_UINT8, 220, PR_UINT8, i ? 7 : 5, PR_FLOAT, i ? Fuel[vehicleid] : IsAOwnableCar(vehicleid) ? CarInfo[GetVehicleID(vehicleid)][cMilage] : 0.0); } PR_SendPacket(bs, playerid), BS_Delete(bs); } case 3, 4: { executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.speedometerType', '[\"%s\"]');", PI[playerid][pCustomInterface][1] == 4 ? "simplified" : "advanced"))); executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleUpdateSpeedTime', '[%i]');", PI[playerid][pCustomInterface][1] == 4 ? 100 : 500))); if (IsAOwnableCar(vehicleid)) { executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleMileage', '[%d]');", floatround(CarInfo[GetVehicleID(vehicleid)][cMilage]))); } executeEvent(playerid, 0, (str_f("window.executeEvent('event.arizonahud.vehicleLiters', '[%d]');", floatround(Fuel[vehicleid]))); executeEvent(playerid, 0, "window.executeEvent('event.arizonahud.vehicleFuelType', '[\"petrol\"]');"); } } }
Этот код должен уменьшать количество бензина при каждом цикле и увеличивать показания одометра на количество пройденных км (пропорционально расходу бензина). Пожалуйста, попробуйте скомпилировать и запустить этот обновленный код. Если возникнут еще проблемы, дайте знать, и мы попробуем найти решение.
Для того чтобы при добавлении новой строки был переход на новую строку, вам нужно вставить символ перехода на новую строкуСделай что-бы при добавление нового текса был переход строчки
stock ShowScreensDialog(playerid, type, listitem = 0)
{
switch type do
{
case 0:
{
global_str = "{afafaf}Название экрана\t{afafaf}Текущий статус\t{afafaf}Последнее изменение\n";
for new i; i < sizeof(ScreenInfo_data); i++ do
strcat(global_str, (str_f("{88373D}%i.{FFFFFF} %s\t[ %s {FFFFFF}]\t%s [%s]", i + 1, ScreenInfo_data[data_Name], ScreenInfo_data[data_Status] ? ("{A7C24D}включен") : ("{88373D}выключен"), ScreenInfo_data[data_LastEditName], UNIX_TO_DATE(ScreenInfo_data[data_LastEditTime]))));
SPD(playerid, 25555, DIALOG_STYLE_TABLIST_HEADERS, "{BFBBBA}Управление экранами | Экраны", global_str, "Далее", "Отмена");
}
case 1:
SPDF(playerid, 25556, DIALOG_STYLE_LIST, "{BFBBBA}Редактирование экрана | Экраны", "{88373D}1. {cccccc}Название экрана: {88373D}%s\n{88373D}2. {cccccc}Последнее изменение: {88373D}%s [%s]\n{88373D}3. {ffffff}Изменить / отключить видео", "»", "«", ScreenInfo_data[listitem][data_Name], ScreenInfo_data[listitem][data_LastEditName], UNIX_TO_DATE(ScreenInfo_data[listitem][data_LastEditTime]));
case 2:
SPD(playerid, 25557, DIALOG_STYLE_LIST, "{BFBBBA}Изменение видео на экране", "{88373D}1.{FFFFFF} Изменить ссылку / отключить видео\n{88373D}2.{FFFFFF} Включить / отключить систему воспроизведения из очереди {88373D}[отключено]\n{88373D}3.{FFFFFF} Изменить список видео в очереди", "»", "«");
case 3:
SPD(playerid, 25558, DIALOG_STYLE_INPUT, "{BFBBBA}Редактирование экрана | Экраны", "{ffffff}Введите ссылку на видео / трансляцию с {88373D}YouTube.com / Twitch.tv{FFFFFF}:\n\n{cccccc}Примечание: чтобы отключить воспроизведение ролика, оставьте поле пустым.", "»", "«");
case 4:
SPD(playerid, 25559, DIALOG_STYLE_MSGBOX, "{BFBBBA}Загрузка данных | Экраны", "{ffffff}Подождите, идет загрузка данных о видео..\n\n{cccccc}Примечание: не закрывайте данное окно, дождитесь загрузки.", "«", "");
}
return true;
}
\n
в вашу строку global_str
. case 0:
{
global_str = "{afafaf}Название экрана\t{afafaf}Текущий статус\t{afafaf}Последнее изменение\n";
for(new i; i < sizeof(ScreenInfo_data); i++)
{
global_str += (strf("{88373D}%i.{FFFFFF} %s\t[ %s {FFFFFF}]\t%s [%s]\n", i + 1, ScreenInfo_data[i][data_Name], ScreenInfo_data[i][data_Status] ? ("{A7C24D}включен") : ("{88373D}выключен"), ScreenInfo_data[i][data_LastEditName], UNIX_TO_DATE(ScreenInfo_data[i][data_LastEditTime])));
}
SPD(playerid, 25555, DIALOG_STYLE_TABLIST_HEADERS, "{BFBBBA}Управление экранами | Экраны", global_str, "Далее", "Отмена");
}
\n
в конец строки вы создадите переход на новую строку после каждой записи в global_str
. Попробуйте это обновление и проверьте, как оно работает в вашем коде.При нажатие на кнопку Изменить наименование почему-то открываетсяДля того чтобы при добавлении новой строки был переход на новую строку, вам нужно вставить символ перехода на новую строку\n
в вашу строкуglobal_str
.
Вот как вы можете модифицировать ваш код:
Код:case 0: { global_str = "{afafaf}Название экрана\t{afafaf}Текущий статус\t{afafaf}Последнее изменение\n"; for(new i; i < sizeof(ScreenInfo_data); i++) { global_str += (strf("{88373D}%i.{FFFFFF} %s\t[ %s {FFFFFF}]\t%s [%s]\n", i + 1, ScreenInfo_data[i][data_Name], ScreenInfo_data[i][data_Status] ? ("{A7C24D}включен") : ("{88373D}выключен"), ScreenInfo_data[i][data_LastEditName], UNIX_TO_DATE(ScreenInfo_data[i][data_LastEditTime]))); } SPD(playerid, 25555, DIALOG_STYLE_TABLIST_HEADERS, "{BFBBBA}Управление экранами | Экраны", global_str, "Далее", "Отмена"); }
Путем добавления\n
в конец строки вы создадите переход на новую строку после каждой записи вglobal_str
. Попробуйте это обновление и проверьте, как оно работает в вашем коде.
[\"PropertyInformation\"]
);");[[{\"id\":0,\"title\":\"Управление домом\",\"items\":[{\"id\":0,\"title\":\"Изменить наименование\"},{\"id\":1,\"title\":\"Открыть шкаф\"},{\"id\":2,\"title\":\"Ежедневные задания\"},{\"id\":3,\"title\":\"Управление объектами\"},{\"id\":4,\"title\":\"Сделать ремонт\"},{\"id\":8,\"title\":\"Налоги\"},{\"id\":12,\"title\":\"Статус дверей в доме\"}]},{\"id\":1,\"title\":\"Методы продажи дома\",\"items\":[{\"id\":5,\"title\":\"Продать государству\"},{\"id\":6,\"title\":\"Продать игроку\"},{\"id\":7,\"title\":\"Выставить на аукцион\"}]},{\"id\":3,\"title\":\"Аренда и жильцы в доме\",\"items\":[{\"id\":9,\"title\":\"Заселить игрока в комнату\"},{\"id\":10,\"title\":\"Сдать дом в аренду\"}]}]]
);");Похоже, что в вашем коде произошла непредвиденная ошибка. Для исправления ситуации, предлагаю следующие шаги:При нажатие на кнопку Изменить наименование почему-то открывается
format(global_str, 256, "[ Склад комиссионой одежды ]\n\n{ffffff}Каждый день на склад свозят комиссионные вещи,\nа владельцы и сотрудники секонд-хендов\nзабирают одежду и везут в свой магазин.\n\nСледующая поставка товаров через {ffff00}%s", GetSecondHandTime());
switch id_var[2] do
{
case 0:
{
house = id_var[0];
GetMysqlData("houses", "Name", id_var[0]);
executeEvent(playerid, 0, "window.executeEvent('event.setActiveView',[\"PropertyInformation\"]
);");
executeEvent(playerid, 0, (str_f("window.executeEvent('event.property.info.initializePropertyInformation', `[\
{\"id\":%d,\"type\":\"property\",\"title\":\"%s\",\"balance\": 0, \"opened\":1,\"maxTenants\": 10,\"stats\":[\
{\"title\":\"Гос.Стоимость\", \"value\":\"$%d\"},\
{\"title\":\"Налог к оплате\", \"value\":\"$%d\",\"maxValue\":\"$104000 (104 PayDay)\"},\
{\"title\":\"Коммунальные\", \"value\":\"$%d\",\"maxValue\":\"$4000\"},\
{\"title\":\"Продуктов\", \"value\":\"0 шт\"}], \"tenantsInformation\":[]}]`);", id_var[0], mysql_string, HouseInfo[id_var[0]][hCost], HouseInfo[id_var[0]][hNalog], HouseInfo[id_var[0]][hNalog2])));
executeEvent(playerid, 0, (str_f("window.executeEvent('event.property.info.setDetailsGroupData', `[\
[{\"id\":\"details\",\"title\":\"Основная информация\",\"items\":[{\"title\":\"Город\",\"value\":\"%s\"},\
{\"title\":\"Налоги\",\"value\":\"$%d\"},{\"title\":\"Продукты\",\"value\":\"0 ед\"},{\"title\":\"Наименование\",\"value\":\"%s\"},\
{\"title\":\"Страховка\",\"value\":\"До 12:00 29.09.2024\"},\
{\"title\":\"Гараж\",\"value\":\"%s\"},\
{\"title\":\"Кол-во комнат\",\"value\":\"5 шт\"},\
{\"title\":\"Владелец\",\"value\":\"%s\"}]}]]`);", GetRaion(HouseInfo[id_var[0]][hEnter_X], HouseInfo[id_var[0]][hEnter_Y], 1), HouseInfo[id_var[0]][hNalog], mysql_string, HouseInfo[id_var[0]][hGarage] ? "Есть" : "Нету", HouseInfo[id_var[0]][hOwner])));
executeEvent(playerid, 0, "window.executeEvent('event.property.info.setUpgrades', `[\
[{\"id\":0,\"title\":\"Аптечка\",\"shortDescription\":\"В вашей недвижимости появляется персональная аптечка\",\"price\":\"$90000000\",\"purchased\":0},\
{\"id\":1,\"title\":\"Подвал\",\"shortDescription\":\"Новое пространство для крафта\",\"price\":\"$500000\",\"purchased\":0},\
{\"id\":2,\"title\":\"Подвал для майнинга\",\"shortDescription\":\"Новое пространство для установки майнинг-ферм\",\"price\":\"$1000000\",\"purchased\":0},\
{\"id\":3,\"title\":\"Охранное агенство Кратос\",\"shortDescription\":\"Нанять охранное агенство для защиты своей недвижимости\",\"price\":\"$20000000\",\"purchased\":0},\
{\"id\":4,\"title\":\"Улучшенный шкаф\",\"shortDescription\":\"Увеличивает место в шкафе\",\"price\":\"$25000000\",\"purchased\":0},\
{\"id\":5,\"title\":\"Увеличенный радиус объектов\",\"shortDescription\":\"Увеличивает радиус расположения объектов на участке до 30 метров\",\"price\":\"$100000000\",\"purchased\":0},\
{\"id\":6,\"title\":\"Домашний кинотеатр\",\"shortDescription\":\"Возможность включать ролики YouTube на большом экране на своем участке\",\"price\":\"$50000000\",\"purchased\":0},\
{\"id\":7,\"title\":\"Депозитные условия\",\"shortDescription\":\"Уменьшает начисляемый налог на дом\",\"price\":\"$60000000\",\"purchased\":0}]]`);");
executeEvent(playerid, 0, "window.executeEvent('event.property.info.initializeMenuItems',[[{\"id\":0,\"title\":\"Управление домом\",\"items\":[{\"id\":0,\"title\":\"Изменить наименование\"},{\"id\":1,\"title\":\"Открыть шкаф\"},{\"id\":2,\"title\":\"Ежедневные задания\"},{\"id\":3,\"title\":\"Управление объектами\"},{\"id\":4,\"title\":\"Сделать ремонт\"},{\"id\":8,\"title\":\"Налоги\"},{\"id\":12,\"title\":\"Статус дверей в доме\"}]},{\"id\":1,\"title\":\"Методы продажи дома\",\"items\":[{\"id\":5,\"title\":\"Продать государству\"},{\"id\":6,\"title\":\"Продать игроку\"},{\"id\":7,\"title\":\"Выставить на аукцион\"}]},{\"id\":3,\"title\":\"Аренда и жильцы в доме\",\"items\":[{\"id\":9,\"title\":\"Заселить игрока в комнату\"},{\"id\":10,\"title\":\"Сдать дом в аренду\"}]}]]
);");
}
;
.switch id_var[2] do
и убедитесь, что все открывающие фигурные скобки {
и квадратные скобки [
корректно закрыты.Добавь сюда power, sustain,velocity,maxspeed;Похоже, что в вашем коде произошла непредвиденная ошибка. Для исправления ситуации, предлагаю следующие шаги:
1. Проверьте все открывающие и закрывающие скобки, чтобы убедиться, что все они расставлены корректно и нет лишних скобок.
2. Удостоверьтесь, что все строки в вашем коде завершаются точкой с запятой;
.
3. Проверьте, не было ли случайного добавления лишних символов или ошибок во время копирования или внесения изменений в код.
4. Уделите внимание строке передswitch id_var[2] do
и убедитесь, что все открывающие фигурные скобки{
и квадратные скобки[
корректно закрыты.
Если после проведения этих шагов проблема остается, пожалуйста, предоставьте больше информации о сообщении об ошибке или уточните конкретное место, где возникает проблема, чтобы я мог предложить более точное решение.
Для добавления значенийДобавь сюда power, sustain,velocity,maxspeed;
RETURN_STRING[4] = "[{\"type\":0,\"name\":\"Мощность\",\"value\"%s,\"valueOffset\":0.0,\"valueMax\":245.0},{\"type\":1,\"name\":\"Устойчивость\",\"value\"%s,\"valueOffset\":0.0,\"valueMax\":350.0},{\"type\":2,\"name\":\"Ускорение\",\"value\"%s,\"valueOffset\":0.0,\"valueMax\":75.0},{\"type\":3,\"name\":\"Макс. Скорость\",\"value\"%s,\"valueOffset\":0.0,\"valueMax\":800.0}]";
power
, sustain
, velocity
, maxspeed
в строку RETURN_STRING[4]
, вам нужно вставить их в форматированную строку. Вот как вы можете это сделать:RETURN_STRING[4] = "[{\"type\":0,\"name\":\"Мощность\",\"value\":\"%s\",\"valueOffset\":0.0,\"valueMax\":245.0},{\"type\":1,\"name\":\"Устойчивость\",\"value\":\"%s\",\"valueOffset\":0.0,\"valueMax\":350.0},{\"type\":2,\"name\":\"Ускорение\",\"value\":\"%s\",\"valueOffset\":0.0,\"valueMax\":75.0},{\"type\":3,\"name\":\"Макс. Скорость\",\"value\":\"%s\",\"valueOffset\":0.0,\"valueMax\":800.0}]";
%s
для каждого из параметров power
, sustain
, velocity
, maxspeed
, чтобы они могли быть заменены соответствующими значениями при форматировании строки.power
, sustain
, velocity
, maxspeed
перед присвоением строки RETURN_STRING[4]
.Добавь в конец строчки что-бы без варнинговДобавь сюда power, sustain,velocity,maxspeed;
RETURN_STRING[4] = "[{\"type\":0,\"name\":\"Мощность\",\"value\"%s,\"valueOffset\":0.0,\"valueMax\":245.0},{\"type\":1,\"name\":\"Устойчивость\",\"value\"%s,\"valueOffset\":0.0,\"valueMax\":350.0},{\"type\":2,\"name\":\"Ускорение\",\"value\"%s,\"valueOffset\":0.0,\"valueMax\":75.0},{\"type\":3,\"name\":\"Макс. Скорость\",\"value\"%s,\"valueOffset\":0.0,\"valueMax\":800.0}]";