Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 10 из 10
  1. #1
    Аватар для Sarah
    Пользователь

    Статус
    Оффлайн
    Регистрация
    28.11.2015
    Адрес
    Moscow City
    Сообщений
    50
    Репутация:
    6 ±

    Текстдравы

    Всем привет
    Не могу разобраться с проблемой, захожу на сервер и пишу /inv, открывается инвентарь и все нормально, нажимаю на кнопку закрытия (в моем случае это просто бокс), все закрывается, снова пишу /inv и инвентарь открывается и сразу закрывается, снова пишу /inv и все нормально открывается, в чем проблема не пойму
    Также, когда открываю инвентарь командой /inv и пишу снова, чтобы закрыть, ничего не происходит, в чем проблема я так и не понял =(

    https://pastebin.com/khUwkSKP
    Последний раз редактировалось Sarah; 24.04.2019 в 14:18.

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Во-первых, все подобные вычисления
    PHP код:
    413.6+(42.5*inv
    лучше рассчитать заранее, занести в массив и уже из массива доставать, а не заставлять сервер каждый раз рассчитывать значения, которые всегда будут одинаковые.

    Во-вторых, crashdetect что-нибудь говорит? И как логирование срабатывает? Ну "-1"/"-2" появляются когда надо или нет?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для Sarah
    Пользователь

    Статус
    Оффлайн
    Регистрация
    28.11.2015
    Адрес
    Moscow City
    Сообщений
    50
    Репутация:
    6 ±
    На счет логирования, после того, как открыл инвентарь и снова пишу /inv - выводится лог от том что инвентарь открылся (-2), но при этом 2 слой его не накладывается.


    то что в server.log
    PHP код:
    [12:55:31] [debug#0 005a6328 in HidePlayerStats (playerid=0) at C:\Users\User\Desktop\SGL-RP\gamemodes\ind.pwn:36960
    [12:55:31] [debug#1 00144eec in public ac_OnPlayerClickTextDraw (playerid=0, Text:clickedid=65535) at C:\Users\User\Desktop\SGL-RP\gamemodes\ind.pwn:16856
    [12:55:31] [debug#2 00020914 in public OnPlayerClickTextDraw (playerid=0, Text:clickedid=65535) at C:\Users\User\Desktop\SGL-RP\pawno\include\anticheat.inc:2219 
    HidePlayerStats - https://pastebin.com/8cgDjBVu

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    1. for(new i; i < sizeof(stata_PTD); i++) PlayerTextDrawHide(playerid, stata_PTD[playerid][i]);

    на
    1. for(new i; i < sizeof(stata_PTD[]); i++) PlayerTextDrawHide(playerid, stata_PTD[playerid][i]);

    И в следующий раз кидай полный лог. Там выше причину ошибки пишет.


    При вводе /inv никаких ошибок в лог не показывает?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. #5
    Аватар для Sarah
    Пользователь

    Статус
    Оффлайн
    Регистрация
    28.11.2015
    Адрес
    Moscow City
    Сообщений
    50
    Репутация:
    6 ±
    Полный лог после исправления:
    PHP код:
    [14:16:10Server password has been removed.
    [
    14:16:10] [!] Подключение к базе успешно [!]
    [
    14:16:11] -> Экономика успешно загружена 0 ms
    [14:16:11] -> Загружено 31 баннеров 1 ms
    [14:16:11] -> Семьи не загружены
    [14:16:11] -> Склад мафий загружен
    [14:16:11] -> Фракционные склады загружены (29 шт)
    [
    14:16:11] -> Загружено <20заправочных станций!
    [
    14:16:11] -> Business Загружено60 Time(ms)
    [
    14:16:11] -> LoadProperty Загружено 1264 Time107 (ms)
    [
    14:16:11] -> GZLogoInfo Загружено38 Time(ms)
    [
    14:16:11] -> LoadFractions Загружено 27 Время(ms)
    [
    14:16:11] -> LoadGangZone Загружено104 Time(ms)
    [
    14:16:11] -> Мебель загружена <4946 шт>
    [
    14:16:11] -> Автоярмарка загружена <24 шт авто.>
    [
    14:16:11] -> Выборы не загружены
    [14:16:11] -> Запреты загружены успешно
    [14:16:11] -> Донат статистика не загружена
    [14:16:11] [profilerAttached profiler to gamemodes/ind
    [14:16:11] [profilerStarted profiling gamemodes/ind
    [14:16:11Number of vehicle models91
    [14:16:11] [Pawn.CMDn_PC_RegAliasalias 'inv' is occupied
    [14:16:11] [Pawn.CMDn_PC_RegAliascommand 'vipchat' not found
    [14:16:1118 uploaded fractions
    [14:16:17] [connectionincoming connection109.252.11.107:13251 id0
    [14:16:17] [joinElon_Musk has joined the server (0:109.252.11.107)
    [
    14:16:30] [warningclient exceeded 'messageslimit' 109.252.11.107:13251 (501Limit500/sec
    [14:16:41] [partElon_Musk has left the server (0:0)
    [
    14:16:41] [mysql1054Unknown column 'kick' in 'field list', , UPDATE `adminSET `kick` = '0', `ban` = '0', `mute` = '0', `pm` = '0', `warn` = '0', `jail` = '0' WHERE `Name` = 'Elon_Musk' LIMIT 1
    На счет 'kick' - это нужно будет поправить, но, наверно, это не связано с текстдравами
    И сейчас как исправил, прописал /inv, инвентарь открылся, нажал на кнопку закрытия if(clickedid == Text:inventory_td[2]) и больше инвентарь не открывается через /inv

    И вот тут может лучше делать PlayerTextDrawDestroy?
    PHP код:
    for(new isizeof(stata_PTD[]); i++) PlayerTextDrawHide(playeridstata_PTD[playerid][i]); 

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    1. [Pawn.CMD] n_PC_RegAlias: alias 'inv' is occupied



    1. CMD:inv(playerid, params[]) {
    2. if(GetPVarInt(playerid, "Show_Inv")) {
    3. hide_inv(playerid);
    4. SendClientMessage(playerid, -1, "-1");
    5. } else {
    6. show_inv(playerid);
    7. SendClientMessage(playerid, -1, "-2");
    8. }
    9. return true;
    10. }
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. #7
    Аватар для Sarah
    Пользователь

    Статус
    Оффлайн
    Регистрация
    28.11.2015
    Адрес
    Moscow City
    Сообщений
    50
    Репутация:
    6 ±
    Пишу /inv - все открывается, нажимаю на 'ESC' все закрывается и курсор также пропадает. Пишу снова /inv и закрываю уже на кнопку и курсор остается и PVar не удаляется, так как команда снова не работает и лог тоже не выводится (я про -2)
    PHP код:
    [14:28:10Server password has been removed.
    [
    14:28:10] [!] Подключение к базе успешно [!]
    [
    14:28:10] -> Экономика успешно загружена 0 ms
    [14:28:10] -> Загружено 31 баннеров 1 ms
    [14:28:10] -> Семьи не загружены
    [14:28:10] -> Склад мафий загружен
    [14:28:10] -> Фракционные склады загружены (29 шт)
    [
    14:28:10] -> Загружено <20заправочных станций!
    [
    14:28:10] -> Business Загружено60 Time(ms)
    [
    14:28:10] -> LoadProperty Загружено 1264 Time105 (ms)
    [
    14:28:10] -> GZLogoInfo Загружено38 Time(ms)
    [
    14:28:10] -> LoadFractions Загружено 27 Время(ms)
    [
    14:28:10] -> LoadGangZone Загружено104 Time(ms)
    [
    14:28:10] -> Мебель загружена <4946 шт>
    [
    14:28:10] -> Автоярмарка загружена <24 шт авто.>
    [
    14:28:10] -> Выборы не загружены
    [14:28:10] -> Запреты загружены успешно
    [14:28:10] -> Донат статистика не загружена
    [14:28:10] [profilerAttached profiler to gamemodes/ind
    [14:28:10] [profilerStarted profiling gamemodes/ind
    [14:28:10Number of vehicle models91
    [14:28:10] [Pawn.CMDn_PC_RegAliasalias 'inv' is occupied
    [14:28:10] [Pawn.CMDn_PC_RegAliascommand 'vipchat' not found
    [14:28:1018 uploaded fractions
    [14:28:15] [connectionincoming connection109.252.11.107:6176 id0
    [14:28:15] [joinElon_Musk has joined the server (0:109.252.11.107)
    [
    14:28:30] [warningclient exceeded 'messageslimit' 109.252.11.107:6176 (569Limit500/sec 

  8. #8
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    -2 у тебя только при вводе команды и будет выводиться, ибо ты в команде вывод сделал.

    Логируй действие кнопок: смотри какой ID передаётся в паблик и под каким ID хранится текстдрав закрытия
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. #9
    Аватар для Sarah
    Пользователь

    Статус
    Оффлайн
    Регистрация
    28.11.2015
    Адрес
    Moscow City
    Сообщений
    50
    Репутация:
    6 ±
    PVar лучше удалять или просто ставить значение 0?
    И где его удалять в самой функции закрытия или перед/после закрытия уже?

  10. #10
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Удалять.

    В самой функции. Просто чтоб не дублировать удаление. На работоспособность не повлияет это, ибо у тебя удаление происходит уже после проверки значения pVar.

    И да, я бы лучше сделал обычный массив. А ещё лучше - использовать inventory_ptd. Ну добавить обнуление
    PHP код:
    for(new iMAX_SLOT_INVi++) {
            
    PlayerTextDrawDestroy(playeridinventory_ptd[playerid][i]);
            
    inventory_ptd[playerid][i] = PlayerText:0;
        } 
    И уже когда нужно проверить, показан ли инвентарь, делать проверку:
    PHP код:
    if(inventory_ptd[playerid][0])
    {
        
    //Показан
    }
    else
    {
        
    //Не показан

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  11. Пользователь сказал cпасибо:
    Sarah (24.04.2019)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •