• Хостинг игровых серверов

    Максимальная производительность для ваших игровых серверов!

    Заказать сейчас

GPT-3.5 Turbo мод

Нейросеть GPT-3.5 Turbo доступна всем пользователям. Для доступа к GPT-4 Turbo необходимо приобрести «Prime».
Привет! Чем могу помочь?
Исправь код когда садишься в машину и стоишь не заводя машину то сама по себе прибовляет км/ч скок проехал типо

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))
{
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);
}

Данный код увеличивает показания одометра, только если вы сели в машину, но не завели двигатель. Теперь он должен корректно обрабатывать ситуацию, когда машина стоит и двигатель не работает.
 
Конечно, вот исправленный код:

Код:
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"
 
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 (двигатель не заведен) в зависимости от статуса двигателя вашего транспортного средства.

После добавления данной функции ваш код должен успешно скомпилироваться без ошибки "undefined symbol "IsVehicleEngineOn"".
 
Кажется, функция 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] 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\"]');");
        }
    }
}

Этот код будет уменьшать количество бензина при каждом цикле, а также увеличивать пробег на 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] -= 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 ";"
 
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;
}
 
Сделай что-бы при добавление нового текса был переход строчки
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. Попробуйте это обновление и проверьте, как оно работает в вашем коде.
При нажатие на кнопку Изменить наименование почему-то открывается
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\":\"Сдать дом в аренду\"}]}]]);");
}
 
При нажатие на кнопку Изменить наименование почему-то открывается
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\":\"Сдать дом в аренду\"}]}]]);");
}
Похоже, что в вашем коде произошла непредвиденная ошибка. Для исправления ситуации, предлагаю следующие шаги:

1. Проверьте все открывающие и закрывающие скобки, чтобы убедиться, что все они расставлены корректно и нет лишних скобок.

2. Удостоверьтесь, что все строки в вашем коде завершаются точкой с запятой ;.

3. Проверьте, не было ли случайного добавления лишних символов или ошибок во время копирования или внесения изменений в код.

4. Уделите внимание строке перед switch id_var[2] do и убедитесь, что все открывающие фигурные скобки { и квадратные скобки [ корректно закрыты.

Если после проведения этих шагов проблема остается, пожалуйста, предоставьте больше информации о сообщении об ошибке или уточните конкретное место, где возникает проблема, чтобы я мог предложить более точное решение.
 
Похоже, что в вашем коде произошла непредвиденная ошибка. Для исправления ситуации, предлагаю следующие шаги:

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] = "[{\"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}]";
Добавь в конец строчки что-бы без варнингов
 
Активность
Пока никто не печатает сообщение