Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 22 ПерваяПервая 1 2 3 4 12 ... ПоследняяПоследняя
Показано с 11 по 20 из 216
  1. #11
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Так это же, вроде, и в "дэфолтном" компиляторе есть, не?
    Да, действительно, в стоковом есть директива #assert. Я добавил в статью небольшое замечание об отличии #assert от #error.


    Цитата Сообщение от VVWVV Посмотреть сообщение
    Она до сих по не исправлена (я тестировал версию из мастер-ветки), поэтому буквально десять дней назад я отправил PR с исправлением, который до сих пор не приняли.
    Странно, я почему-то думал, что его приняли - спутал с каким-то другим, видимо. Добавил примечание в статье.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Да, действительно, в стоковом есть директива #assert. Я добавил в статью небольшое замечание об отличии #assert от #error.
    Не, там именно директива "#error" присутствует
      Открыть/закрыть
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Покажи код.
     AddOshive
    PHP код:
    stock AddOshive(playerid,ochiveid){
        if(
    Ochives[playerid][ochiveid]) return false;
        new 
    points GetOchivePoints(ochiveid),
            
    string[128],yearmonthday;
        
    Player[playerid][OchivePoints] += points;
        
    GivePlayerCash(playerid,points*10000);
        
    Ochives[playerid][ochiveid] = true;
        
    Ochive[playerid]++;
        
    getdate(yearmonthday);
        
    format(stringsizeof(string),"INSERT INTO `Ochives` VALUES ( NULL,'%d','%d','%02d.%02d.%d')",Player[playerid][pSQLID],ochiveid,day,month,year);
        
    db_free_result(db_query(users_base,string));
        
    SavePlayerInt(playerid,"OchivePoints",Player[playerid][OchivePoints]);
        if(!(
    playerFlags[playerid] & pMooveMode))
            
    GameTextForPlayer(playerid"~w~New achieve!"30001);
        return 
    true;



     UpdDBM
    PHP код:
    stock UpdDBM(){
        
    stateDBM--;
        if(
    stateDBM 0){
            
    stateDBM 480+INTERVAL_DMB;
            
    prizeDBM 50000;
        }
        if(
    stateDBM 300+INTERVAL_DMB)
            return 
    true;
        else if(
    stateDBM 420+INTERVAL_DMB){
            new 
    msg[64];
            
    format(msg,sizeof(msg),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~Wait %d sec.",stateDBM-(420+INTERVAL_DMB));
            foreach(
    i){
                if(!
    IsPlayerInDynamicArea(iareaDBM)) continue;
                
    GameTextForPlayer(i,msg,1250,3);
            }
        }else if(
    stateDBM == 420+INTERVAL_DMB){
            for(new 
    i8i++)
                
    SetVehicleParamsEx(dbmPOS[i][IDo],1,(hour || hour 21)?1:0,0,0,0,0,0);
            new 
    playersindt;
            foreach(
    i){
                if(!
    IsPlayerInDynamicArea(iareaDBM)) continue;
                
    SetCameraBehindPlayer(i);
                
    TogglePlayerControllable(itrue);
                
    GameTextForPlayer(i,"~r~GO!",1500,6);
                
    playersindt++;
            }
            if(
    playersindt 2){
                if(
    playersindt){
                    foreach(
    i){
                        if(!
    IsPlayerInDynamicArea(iareaDBM)) continue;
                        
    GivePlayerCash(i,50000);
                        break;
                    }
                    
    DellAllFromDBM();
                }
                
    stateDBM 300+INTERVAL_DMB;
                return 
    true;
            }
        }else if(
    stateDBM == 390+INTERVAL_DMB || stateDBM == 360+INTERVAL_DMB || stateDBM == 330+INTERVAL_DMB){
            
    UpdateDBM();
            foreach(
    i){
                if(!
    IsPlayerInDynamicArea(iareaDBM)) continue;  
                
    GameTextForPlayer(i,"~r~LIFT DOWN!",1500,6);
            }
        }else if(
    stateDBM == 300+INTERVAL_DMB){
            foreach(
    i){
                if(!
    IsPlayerInDynamicArea(iareaDBM)) continue;  
                
    GameTextForPlayer(i,"~g~Winner!",1000,6);
                
    GivePlayerCash(i,prizeDBM/3);
                
    GivePlayerScore(i,GetPrizeRaceExp(Player[i][pLevel]));
                
    AddOshive(i,WIN_DERBY);
                
    AddPlayerHistory(i,2,1);
            }
            
    DellAllFromDBM();
            
    st_etaj[0] = false;
            
    st_etaj[1] = false;
            
    st_etaj[2] = false;
            for(new 
    fsizeof(etaj_tre); f++)
                
    MoveDynamicObject(etaj_tre[f][IDo],etaj_tre[f][pPosX], etaj_tre[f][pPosY],2.9,0.3);
            for(new 
    fsizeof(etaj_two); f++)
                
    MoveDynamicObject(etaj_two[f][IDo],etaj_two[f][pPosX], etaj_two[f][pPosY],2.9,0.3);
            
    MoveDynamicObject(etaj_one[1][IDo],etaj_one[1][pPosX], etaj_one[1][pPosY],2.9,0.3);
            
    MoveDynamicObject(etaj_one[2][IDo],etaj_one[2][pPosX], etaj_one[2][pPosY],2.9,0.3);
        }
        return 
    true;



    Да, во втором есть AddOshive, но обратной связи нет обсалютно.
    MyProject:
    DriftEmpire©

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

  4. #14
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Странно, я почему-то думал, что его приняли - спутал с каким-то другим, видимо. Добавил примечание в статье.
    Следует обновить статью, поскольку фикс был принят.

    Кроме того, теперь можно обновить библиотеки, в которых есть обход данной ошибки, чтобы не генерировать бесполезный байт-код.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Условная компиляция (#if/#elif/#else/#endif) не работала с директивой #emit.
    Скорее всего это опечатка, ведь в Pawn нет препроцессорной директивы '#elif', ибо вместо неё есть '#elseif'.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    __file - содержит строку с названием текущего исходного файла (например, "main.pwn" или "my_include.inc");
    Следует заметить, что в инклюдах генерируется полный путь к файлу, а в исходных файлах только лишь название этого файла.
    Последний раз редактировалось VVWVV; 02.08.2017 в 00:55.

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Следует обновить статью, поскольку фикс был принят.

    Кроме того, теперь можно обновить библиотеки, в которых есть обход данной ошибки, чтобы не генерировать бесполезный байт-код.
    Можно было бы определить наличие фикса по значению в константе __PawnBuild, но его так и не повысили.


    Цитата Сообщение от VVWVV Посмотреть сообщение
    Скорее всего это опечатка, ведь в Pawn нет препроцессорной директивы '#elif', ибо вместо неё есть '#elseif'.
    Да, действительно. Исправил.


    Цитата Сообщение от VVWVV Посмотреть сообщение
    Следует заметить, что в инклюдах генерируется полный путь к файлу, а в исходных файлах только лишь название этого файла.
    Не совсем. Допустим, что сервер находится в папке "C:\MyServer". Для исходного файла выдаётся полное имя.
    Пример:
    Код:
    C:\MyServer\gamemodes\main.pwn
    Для инклуда, подключенного с указанием относительного пути, выдаёт относительный путь:
    PHP код:
    #include "../include/test.inc" 
    Код:
    ../include/test.inc
    Для остальных способов подключения в __file тоже полное имя:
    PHP код:
    #include <test>
    #include "test.inc"
    #include <test.inc>
    #include "test"
    #include test 
    Код:
    C:\MyServer\pawno\include\test.inc
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  6. #16
    Аватар для 123
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.02.2014
    Сообщений
    93
    Репутация:
    8 ±
    Похоже, компилятор не правильно компилирует конструкцию вида -

    PHP код:
    if(clickedid == TD_join[3])
        if(--
    model_number 0model_number 7;
    else if(
    clickedid == TD_join[4])
        if(++
    model_number >= 8model_number 0
    Выдаёт:
    PHP код:
    warning 217loose indentation 
    Однако, если скомпилировать вот так:

    PHP код:
    if(clickedid == TD_join[3]) if(--model_number 0model_number 7;
    else if(
    clickedid == TD_join[4]) if(++model_number >= 8model_number 0
    Ошибка пропадает, однако вторая часть конструкции:
    PHP код:
    else if(clickedid == TD_join[4]) if(++model_number >= 8model_number 0
    Работает некорректно (точнее вовсе не работает).

    Версия последняя:
    PHP код:
    Pawn compiler 3.10.2              Copyright (c1997-2006ITB CompuPhase 
    Если кто пользуется данным компилятором, проверьте проблему.

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от 123 Посмотреть сообщение
    Похоже, компилятор не правильно компилирует конструкцию вида -

    PHP код:
    if(clickedid == TD_join[3])
        if(--
    model_number 0model_number 7;
    else if(
    clickedid == TD_join[4])
        if(++
    model_number >= 8model_number 0
    Компилятор всё делает правильно. Оператор else относится к последнему встреченному if, а не к первому.
    Если сделать правильное выравнивание, код будет выглядеть так:
    PHP код:
    if(clickedid == TD_join[3])
        if(--
    model_number 0model_number 7;
        else if(
    clickedid == TD_join[4])
            if(++
    model_number >= 8model_number 0
    Или даже так:
    PHP код:
    if(clickedid == TD_join[3])
        if(--
    model_number 0model_number 7;
        else
            if(
    clickedid == TD_join[4])
                if(++
    model_number >= 8model_number 0
    Если же вы хотите, чтобы код в else относился к первому if, выделяйте тело ветвления фигурными скобками:
    PHP код:
    if(clickedid == TD_join[3])
    {
        if(--
    model_number 0model_number 7;
    }
    else if(
    clickedid == TD_join[4])
    {
        if(++
    model_number >= 8model_number 0;

    UPD: Насколько помню, такая задача в стиле "Найди ошибку" даже есть в ЕГЭ по информатике. Или, по крайней мере, была там 5 лет тому назад.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    И правильным ответом было "В коде всё верно! Это компилятор всё делает неправильно!!!"?
    Ок, возможно, я не совсем удачно всё это сформулировал. В ветках if/else было присваивание переменной разных значений и нужно было определить, какое значение в конце концов окажется в переменной. Но основная суть всё та же: неправильная табуляция могла сбить с толку.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

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

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

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

    Steve Pavlina

 

 
Страница 2 из 22 ПерваяПервая 1 2 3 4 12 ... ПоследняяПоследняя

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

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

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

Метки этой темы

Ваши права

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