Вопросы

Stepan_Pawnp
Новичок

Всем привет, столкнулся с такой проблемой что пропадает маппинг.

Тоесть создаю маппинг через /map либо же просто ставлю тюнинг,

маппинг создается и пропадает спустя пару минут, на тест сервере ничего не пропадает,

а на сервере там где 50+ онлайна пропадает, лимит CreateObject не превышен, всего обьектов 54000 (CreateDynamicObject),

версию streamer менял много раз, в логах ничего не пишет(, прошу помогите

 

UPD: В OnGameModeInit стоит Streamer_SetVisibleItems(STREAMER_TYPE_OBJECT, 1000, -1);
Но с ним или без него, все равно пропадает.

 

Отредактировано пользователем Stepan_Pawnp

Поделиться сообщением


Ссылка на сообщение

2 ответа на этот вопрос

  • 0
hokageud
Завсегдатый

код связанный с /map дай, если создание объекта происходит через createobject измени на createdynamicobject или наоборот

Отредактировано пользователем hokageud

Поделиться сообщением


Ссылка на сообщение
  • 0
Stepan_Pawnp
Новичок

Поменял местами, не помогло,

КОД /map: 

 

Спойлер

stock AdminMapping_Create(playerid, model, const Story[])
{
    new id = GetAdminMappingFREE();
            
    if id == -1 *then
        return SendErrorMessage(playerid);
            
    GetPlayerPos(playerid, AdminMapping[id][AM_Pos][0], AdminMapping[id][AM_Pos][1], AdminMapping[id][AM_Pos][2]);
            
    AdminMapping[id][AM_Object] = CreateObject(model, AdminMapping[id][AM_Pos][0], AdminMapping[id][AM_Pos][1] + 2.5, AdminMapping[id][AM_Pos][2], 0.00.00.0);
            
    Int_SetPlayerData(playerid, "AdminMappingID", id);
    
    format(global_str, 1024"INSERT INTO map_objects (`idx`, `pUID`, `Owner`, `Model`, `X`, `Y`, `Z`, `RX`, `RY`, `RZ`, `Story`, `Date`) VALUES ('%d', '%d', '%s', '%d', '%f', '%f', '%f', '%f', '%f', '%f', '%s', CURRENT_TIMESTAMP())", id, PI[playerid][pID], PN(playerid), model,  AdminMapping[id][AM_Pos][0], AdminMapping[id][AM_Pos][1], AdminMapping[id][AM_Pos][2], 0.00.00.0, Story);
    mysql_tquery(mysql, global_str, "AdminMapping_CreateSQL""dd", playerid, id);
    AddLog(4"Администратор <a  data-cke-saved-href=../logsaccount.php?name=%s href=../logsaccount.php?name=%s>%s</a> создал обьект %i.", PN(playerid), PN(playerid),model);
    return true;
}

public: AdminMapping_CreateSQL(playerid, id)
{
    AdminMapping[id][AM_UID] = cache_insert_id(mysql);
    
    SCMF(playerid, COLOR_LIGHTBLUE, "[Admin Mapping] Объект создан, установите его в нужной позиции и нажмите на кнопку сохранения или ESC. [%d*%d]", id, AdminMapping[id][AM_UID]);
            
    SCM(playerid, -1"[Admin Mapping] Объекту присвоена группа: Без названия [ID: 0].");
    
    EditObject(playerid, AdminMapping[id][AM_Object]);
}


public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
    if response == EDIT_RESPONSE_FINAL *then
    {
        if Int_GetPlayerData(playerid, "AdminMappingID") *then
        {
            new id = Int_GetPlayerData(playerid, "AdminMappingID");

            AdminMapping_Update(id, x,y,z, rx, ry, rz);

            DeletePVar(playerid, "AdminMappingID");
        }
    }
    else if response == EDIT_RESPONSE_CANCEL *then
    {
        if Int_GetPlayerData(playerid, "AdminMappingID") *then
        {
            new id = Int_GetPlayerData(playerid, "AdminMappingID");

            SetObjectPos(objectid, AdminMapping[id][AM_Pos][0], AdminMapping[id][AM_Pos][1], AdminMapping[id][AM_Pos][2]);
            SetObjectRot(objectid, AdminMapping[id][AM_Rot][0], AdminMapping[id][AM_Rot][1], AdminMapping[id][AM_Rot][2]);

            DeletePVar(playerid, "AdminMappingID");
        }
    }
    return true;
}
stock AdminMapping_Update(id, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
    SetObjectPos(AdminMapping[id][AM_Object], AdminMapping[id][AM_Pos][0] = x, AdminMapping[id][AM_Pos][1] = y, AdminMapping[id][AM_Pos][2] = z);
    SetObjectRot(AdminMapping[id][AM_Object], AdminMapping[id][AM_Rot][0] = rx, AdminMapping[id][AM_Rot][1] = ry, AdminMapping[id][AM_Rot][2] = rz);
            
    SQL("UPDATE map_objects SET X = '%f', Y = '%f', Z = '%f', RX = '%f', RY = '%f', RZ = '%f' WHERE ID = '%d'", x,y,z, rx,ry,rz, AdminMapping[id][AM_UID]);

    return true;
}

 

 

КОД ТЮНИНГА:

 

Спойлер

stock EditOwnableCarObject(playerid, slot)
{
    new Float:X,Float:Y,Float:Z, carid = GetPlayerVehicleID(playerid), number = GetVehicleID(carid);
    if(AttachEdit{playerid} || !IsAOwnableCar(number)) return false;
    if(IsPlayerInHisVehicle(playerid) && GetPlayerState(playerid) == 2)
    {
        SCM(playerid, COLOR_VALIK, "[Информация] {F0F0F0}Используя ползунки вокруг обьекта, установите нужные позиции тюнинг детали и нажмите кнопку СОХРАНИТЬ!");
        SCM(playerid, COLOR_VALIK, "[Информация] {F0F0F0}Также рядом с кнопкой СОХРАНИТЬ есть возможность переключиться на изменения угла поворота обьекта");
        SCM(playerid, COLOR_VALIK, "[Информация] {F0F0F0}Чтобы в момент редактировать пользоваться мышкой, зажмите 'W' (двигаться вперед)!");
        SCM(playerid, COLOR_LIGHTRED, "[Информация] {F0F0F0}Запрещается заводить двигатель и выводить обьект далеко от вашего транспорта!");
        SCM(playerid, COLOR_LIGHTRED, "[Информация] Для отмены нажмите 'ESC'");
        GetVehiclePos(carid,X,Y,Z);
        SetVehicleZAngle(carid, 0.0);
        if(ObjectCarEdit[carid][slot] != -1) DestroyObject(ObjectCarEdit[carid][slot]), ObjectCarEdit[carid][slot] = -1;
        ObjectCarSelect[playerid] = CreateObject(1934, X, Y, Z, 0.00.00.0);
        ObjectCarEdit[carid][slot] = CreateObject(CarInfo[number][cModelObject][slot], X, Y, Z, 0.00.00.0);
        PickObject[playerid] = slot;
        AttachEdit{playerid} = true;
        SetPVarInt(playerid, "LockCars", CarInfo[number][cLock]);
        CarInfo[number][cLock] = 1;
        SetDoorsStatus(carid, 1, playerid);
        AttachObjectToVehicle(ObjectCarEdit[carid][slot], carid, 0000.00.00.0);
        SetEngineStatus(carid, false, playerid);
        SetPVarInt(playerid, "TypeRedactor"1);
        EditObject(playerid, ObjectCarSelect[playerid]);
    }
    return 1;
}


public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
{
    if(GetPVarInt(playerid, "TypeRedactor") == 1)
    {
        if(response == EDIT_RESPONSE_UPDATE)
        {
            if(objectid == ObjectCarSelect[playerid])
            {
                new carid = GetPlayerVehicleID(playerid);
                new Float:Tx,Float:Ty,Float:Tz,Float:Tr, slot = PickObject[playerid], obj = ObjectCarEdit[carid][slot];
                GetVehiclePos(carid,Tx,Ty,Tz);
                GetVehicleZAngle(carid, Tr);
                if(x-Tx >= 3.5 || y-Ty >= 3.5 || z-Tz >= 3.5) AttachObjectToVehicle(obj, carid, 3.53.53.5, rx, ry, rz-Tr);
                else AttachObjectToVehicle(obj, carid, x-Tx, y-Ty, z-Tz, rx, ry, rz-Tr);
            }
        }
        if(response == EDIT_RESPONSE_CANCEL)
        {
            if(objectid == ObjectCarSelect[playerid])
            {
                new slot = PickObject[playerid];
                new carid = GetPlayerVehicleID(playerid);
                new number = GetVehicleID(carid);
                if(ObjectCarSelect[playerid] != -1) DestroyObject(ObjectCarSelect[playerid]), ObjectCarSelect[playerid] = -1;
                AttachObjectToVehicle
                (
                    ObjectCarEdit[carid][slot],
                    carid,
                    CarInfo[number][cObjectPosX][slot],
                    CarInfo[number][cObjectPosY][slot],
                    CarInfo[number][cObjectPosZ][slot],
                    CarInfo[number][cObjectRotX][slot],
                    CarInfo[number][cObjectRotY][slot],
                    CarInfo[number][cObjectRotZ][slot]
                );
                PickObject[playerid] = -1;
                AttachEdit{playerid} = false;
                CarInfo[number][cLock] = GetPVarInt(playerid, "LockCars");
                SetDoorsStatus(carid, GetPVarInt(playerid, "LockCars"), playerid);
                DeletePVar(playerid, "LockCars");
                CancelEdit(playerid);
                Streamer_Update(playerid);
            }
            else AttachEdit{playerid} = false;
        }
        if(response == EDIT_RESPONSE_FINAL)
        {
            if(objectid == ObjectCarSelect[playerid])
            {
                new slot = PickObject[playerid];
                new Float:Tx,Float:Ty,Float:Tz,Float:Tr;
                new carid = GetPlayerVehicleID(playerid);
                new number = GetVehicleID(carid);
                if(ObjectCarSelect[playerid] != -1) DestroyObject(ObjectCarSelect[playerid]), ObjectCarSelect[playerid] = -1;
                if(ObjectCarEdit[carid][slot] != -1) DestroyObject(ObjectCarEdit[carid][slot]), ObjectCarEdit[carid][slot] = -1;
                GetVehiclePos(carid,Tx,Ty,Tz);
                GetVehicleZAngle(carid, Tr);
                CarInfo[number][cObjectPosX][slot] = x-Tx;
                CarInfo[number][cObjectPosY][slot] = y-Ty;
                CarInfo[number][cObjectPosZ][slot] = z-Tz;
                CarInfo[number][cObjectRotX][slot] = rx;
                CarInfo[number][cObjectRotY][slot] = ry;
                CarInfo[number][cObjectRotZ][slot] = rz-Tr;
                CarInfo[number][cObjectUsed][slot] = 1;
                SaveObjectCar(number);
                ObjectCarEdit[carid][slot] = CreateObject(CarInfo[number][cModelObject][slot], Tx, Ty, Tz, 0.00.00.0);
                AttachObjectToVehicle(ObjectCarEdit[carid][slot], carid, x-Tx, y-Ty, z-Tz, rx, ry, rz-Tr);
                Streamer_Update(playerid);
                CarInfo[number][cLock] = GetPVarInt(playerid, "LockCars");
                SetDoorsStatus(carid, GetPVarInt(playerid, "LockCars"), playerid);
                PickObject[playerid] = -1;
                AttachEdit{playerid} = false;
                DeletePVar(playerid, "LockCars");
            }
            else AttachEdit{playerid} = false;
        }
    }
    return true;
}

 

 

Отредактировано пользователем Cawfee
Причина: спрятал код под спойлер.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба