Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 6 из 7 ПерваяПервая ... 4 5 6 7 ПоследняяПоследняя
Показано с 51 по 60 из 68
  1. #51
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    PHP код:
    #define noinit:%0[%1]; goto _noinit_%0;new %0[%1];_noinit_%0: 
    А что если надо было бы не 1 переменную, а 2 или 3, по очереди так и писать?
    PHP код:
    noinit:str[10];
    noinit:strr[20];
    noinit:strrr[30]; 
    PHP код:
    #define new%0noinit<%1[%2]%3>; goto _noinit_%1; new %1[%2]%3; _noinit_%1: 
    Использовать так:
    PHP код:
    new noinit<str[10], strr[20], strrr[30]>; 
    Последний раз редактировалось ziggi; 06.10.2016 в 16:34.

  2. Пользователь сказал cпасибо:
    vovandolg (06.10.2016)
  3. #52
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    PHP код:
    #define new%0noinit<%1[%2]%3>; goto _noinit_%1; new %1[%2]%3; _noinit_%1: 
    Использовать так:
    PHP код:
    new noinit<str[10], strr[20], strrr[30]>; 
    PHP код:
    warning 201redefinition of constant/macro (symbol "new%0noinit<%1[%2]%3>;"
    - - - Добавлено - - -

    Кину полностью из за чего может быть ругается:
      Открыть/закрыть
    PHP код:
    zm.pwn(82) : warning 201redefinition of constant/macro (symbol "new%0noinit<%1[%2]%3>;")
    zm.pwn(911) : error 001expected token";"but found "||"
    zm.pwn(911) : error 001expected token";"but found "new"
    zm.pwn(911) : warning 203symbol is never used"Y_FOREACH_SECOND"
    zm.pwn(911) : error 017undefined symbol "Player"
    zm.pwn(911) : fatal error 107too many error messages on one line 


    Строки в коде:

      Открыть/закрыть
    PHP код:
    function StartMap()
    {
        
    InfectedTime 0;
        if(
    oPlayers 0)
        {
            foreach(new 
    iPlayer//911 line
            
    {
                if(
    pLogged{i} == 1)
                {
                    if(
    mInfo[Interior] != pInt{i})
                        
    SetPlayerInterior(imInfo[Interior]);
                    
    SetPlayerPos(imInfo[HumanSpawnX], mInfo[HumanSpawnY], mInfo[HumanSpawnZ] + 0.60);
                    
    TogglePlayerControllable(i1);
                    
    SetPlayerHealth(i100.0);
                    
    HumanSetup(i);
                }
            }
        }
        
    TextDrawHideForAll(WinGUI);
        
    TextDrawHideForAll(ZombieWinText);
        
    TextDrawHideForAll(HumanWinText);
        
    TextDrawShowForAll(RoundStarted);
        
    SeriaKiller 255;
        
    maptime MAX_MAPTIME;
        
    mapvar 1;
        new 
    noinit<strr[145]>;
        
    format(strr145"["COLOR_MAP"Loading Map"COLOR_TEXT2"] Map <%s> created by <%s>"mInfo[MapName], mInfo[CreatedBy]);
        
    SendClientMessageToAll(COLOR_TEXT1strr);

        
    randvar SetTimer(!"RandomZombie"MAX_ZOMBIE_TIMEfalse);
        
    SetTimer(!"HideMessage2"2500false);
        return 
    1;

    Последний раз редактировалось vovandolg; 06.10.2016 в 16:53.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  4. #53
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    PHP код:
    warning 201redefinition of constant/macro (symbol "new%0noinit<%1[%2]%3>;"
    - - - Добавлено - - -

    Кину полностью из за чего может быть ругается:
      Открыть/закрыть
    PHP код:
    zm.pwn(82) : warning 201redefinition of constant/macro (symbol "new%0noinit<%1[%2]%3>;")
    zm.pwn(911) : error 001expected token";"but found "||"
    zm.pwn(911) : error 001expected token";"but found "new"
    zm.pwn(911) : warning 203symbol is never used"Y_FOREACH_SECOND"
    zm.pwn(911) : error 017undefined symbol "Player"
    zm.pwn(911) : fatal error 107too many error messages on one line 


    Строки в коде:

      Открыть/закрыть
    PHP код:
    function StartMap()
    {
        
    InfectedTime 0;
        if(
    oPlayers 0)
        {
            foreach(new 
    iPlayer//911 line
            
    {
                if(
    pLogged{i} == 1)
                {
                    if(
    mInfo[Interior] != pInt{i})
                        
    SetPlayerInterior(imInfo[Interior]);
                    
    SetPlayerPos(imInfo[HumanSpawnX], mInfo[HumanSpawnY], mInfo[HumanSpawnZ] + 0.60);
                    
    TogglePlayerControllable(i1);
                    
    SetPlayerHealth(i100.0);
                    
    HumanSetup(i);
                }
            }
        }
        
    TextDrawHideForAll(WinGUI);
        
    TextDrawHideForAll(ZombieWinText);
        
    TextDrawHideForAll(HumanWinText);
        
    TextDrawShowForAll(RoundStarted);
        
    SeriaKiller 255;
        
    maptime MAX_MAPTIME;
        
    mapvar 1;
        new 
    noinit<strr[145]>;
        
    format(strr145"["COLOR_MAP"Loading Map"COLOR_TEXT2"] Map <%s> created by <%s>"mInfo[MapName], mInfo[CreatedBy]);
        
    SendClientMessageToAll(COLOR_TEXT1strr);

        
    randvar SetTimer(!"RandomZombie"MAX_ZOMBIE_TIMEfalse);
        
    SetTimer(!"HideMessage2"2500false);
        return 
    1;

    Похоже из-за foreach нельзя использовать new в качестве макроса.
    Тогда возьми это:
    PHP код:
    #define @new%0\32%1[%2]%3; goto _noinit_%1; new %1[%2]%3; _noinit_%1: 
    и используй так:
    PHP код:
    @new str[10], strr[20], strrr[30]; 
    Синтаксис лучше придумать не смог.
    Последний раз редактировалось ziggi; 06.10.2016 в 18:57.

  5. Пользователь сказал cпасибо:
    vovandolg (06.10.2016)
  6. #54
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Синтаксис лучше придумать не смог.
      Открыть/закрыть


    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    69
    Репутация:
    2 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Похоже из-за foreach нельзя использовать new в качестве макроса.
    Тогда возьми это:
    PHP код:
    #define @new%0\32%1[%2]%3; goto _noinit_%1; new %1[%2]%3; _noinit_%1: 
    и используй так:
    PHP код:
    @new str[10], strr[20], strrr[30]; 
    Синтаксис лучше придумать не смог.
    Через этот макрос есть ли вероятность бага с goto ?

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Blood Посмотреть сообщение
    Через этот макрос есть ли вероятность бага с goto ?
    Эмм, если ты внимательно посмотришь код, то увидишь, что там создаётся всего 1 метка.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  9. #57
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от Blood Посмотреть сообщение
    Через этот макрос есть ли вероятность бага с goto ?
    Название метки зависит от названия первого массива, объявляемого с помощью макроса, так что оно должно быть уникально. Если использовать макрос несколько раз внутри одной и той же функции, названия меток получатся разными и никакого бага не будет.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  10. #58
    Аватар для Alpano
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    Наблюдаю "странный" баг при использовании макроса
    PHP код:
    #define noinit:%0[%1]; goto _noinit_%0;new %0[%1];_noinit_%0: 
    При повторном использовании функции где идет создание массива таким методом, то текст предыдущего использования функции остается, и получается "накладывание" текстов.

    Возможно ли это из-за того что текст заполняется через strcat?
    Тестить не тестил, но помоему и при заполнении через format такая же шляпа.

    Может стоит как-то заменить стоковую инициализацию каким-то более быстрым вариантом?
    Или всё-же отказаться от "заводской" инициализации при заполнении через strcat...
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

  11. #59
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Alpano Посмотреть сообщение
    Наблюдаю "странный" баг при использовании макроса
    PHP код:
    #define noinit:%0[%1]; goto _noinit_%0;new %0[%1];_noinit_%0: 
    При повторном использовании функции где идет создание массива таким методом, то текст предыдущего использования функции остается, и получается "накладывание" текстов.

    Возможно ли это из-за того что текст заполняется через strcat?
    Тестить не тестил, но помоему и при заполнении через format такая же шляпа.

    Может стоит как-то заменить стоковую инициализацию каким-то более быстрым вариантом?
    Или всё-же отказаться от "заводской" инициализации при заполнении через strcat...
    Зачем использовать то, что не понимаешь? noinit само за себя говорит: "без инициализации", что означает не заполнять массив нулями.

  12. #60
    Аватар для Alpano
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Зачем использовать то, что не понимаешь? noinit само за себя говорит: "без инициализации", что означает не заполнять массив нулями.
    так я и хочу понять, разобраться.
    я в принципе пока писал комментарий сам понял почему так, но всё-же решил опубликовать)
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

 

 
Страница 6 из 7 ПерваяПервая ... 4 5 6 7 ПоследняяПоследняя

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

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

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

Ваши права

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