Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 5 из 7 ПерваяПервая ... 3 4 5 6 7 ПоследняяПоследняя
Показано с 41 по 50 из 70
  1. #41
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от [ForD] Посмотреть сообщение
    Эмм,ну скажу как понял.

    В общем думаю сделать либо что-бы каждая гонка запускалась администратором ну или по таймеру.
    Или-же что-бы все гонки были сразу загружены,т.е. сразу везде пикапы входа на гонку стояли,и там уже идет ожидание соперников и т.п.
    Ну ты уж определись ;) Каждое из твоих желаний реализуется по разному (если реализовывать нормально).
    Я лишь скажу то, что если у тебя по 1 гонке за раз может стартовать, можно грузить их из бд по 1 и не забивать память. Если же их будет много и запускаться они будут по несколько за раз, грузить лучше всё сразу, ибо иначе придётся продумывать систему отлова ложных срабатываний того или иного кода (дабы игроки не флудили запросами в БД, заходя и выходя с гонки и т.п.).
    Хотя можно всё на массивах сделать. Зависит от числа этих самых гонок.

    Но БД я бы сформировал так:
    PHP код:
    ID гонки Номер чекпоинта Тип чекпоинта Координата чекпоинта X Координата чекпоинта Y Координата чекпоинта Z Размер чекпоинта 
    Это самый информативный вариант, но можно убрать информацию о типе чекпоинта и размере, указывая это всё прямо в скрипте (финишем, естественно, будет последний чекпоинт. Поэтому можно при загрузке просто записывать номер последнего чекпоинта и создавать его как финишный. Размер так же вряд ли будет меняться во время гонки, поэтому можно создавать все одинакового размера)
    По ID мы делаем запрос (чекпоинты от одной гонки будут под одинаковым ID) и рассортировываем ненужные маркеры от нужных
    Номер чекпоинта нам нужен для создания финишного чекпоинта. Да и просто можно будет определить сколько чекпоинтов уже создано + заменить расположение определённого чекпоинта без каких-либо проблем.
    Ну а остальное и так понятно, думаю
    Последний раз редактировалось DeimoS; 08.02.2014 в 22:09.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  2. #42
    Аватар для [ForD]
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.11.2013
    Адрес
    Свердловская обл.
    Сообщений
    688
    Репутация:
    103 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Ну ты уж определись ;) Каждое из твоих желаний реализуется по разному (если реализовывать нормально).
    Я лишь скажу то, что если у тебя по 1 гонке за раз может стартовать, можно грузить их из бд по 1 и не забивать память. Если же их будет много и запускаться они будут по несколько за раз, грузить лучше всё сразу, ибо иначе придётся продумывать систему отлова ложных срабатываний того или иного кода (дабы игроки не флудили запросами в БД, заходя и выходя с гонки и т.п.).
    Хотя можно всё на массивах сделать. Зависит от числа этих самых гонок.

    Но БД я бы сформировал так:
    PHP код:
    ID гонки Номер чекпоинта Тип чекпоинта Координата чекпоинта X Координата чекпоинта Y Координата чекпоинта Z Размер чекпоинта 
    Это самый информативный вариант, но можно убрать информацию о типе чекпоинта и размере, указывая это всё прямо в скрипте (финишем, естественно, будет последний чекпоинт. Поэтому можно при загрузке просто записывать номер последнего чекпоинта и создавать его как финишный. Размер так же вряд ли будет меняться во время гонки, поэтому можно создавать все одинакового размера)
    По ID мы делаем запрос (чекпоинты от одной гонки будут под одинаковым ID) и рассортировываем ненужные маркеры от нужных
    Номер чекпоинта нам нужен для создания финишного чекпоинта. Да и просто можно будет определить сколько чекпоинтов уже создано + заменить расположение определённого чекпоинта без каких-либо проблем.
    Ну а остальное и так понятно, думаю
    скорее всего думал все сразу,и на счет координат,там еще должны быть указаны x,y,z координаты следующего чек-поинта
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

    25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/





    #FIXSAMP

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от [ForD] Посмотреть сообщение
    скорее всего думал все сразу,и на счет координат,там еще должны быть указаны x,y,z координаты следующего чек-поинта
    Эмм, а разве следующий в БД чекпоинт не является следующим чекпоинтом в гонке?)
    Всё сразу - вряд ли получится. Тут либо делать систему статических гонок (при старте сервера загрузил и дальше они используются. Хотя тут легче, по моему, массивами обойтись для хранения координат) и хранить всё на сервере и отдельно динамическую, либо придётся попариться с запросами и в итоге выйдет не самый оптимизированный способ
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  4. #44
    Аватар для [ForD]
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.11.2013
    Адрес
    Свердловская обл.
    Сообщений
    688
    Репутация:
    103 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Эмм, а разве следующий в БД чекпоинт не является следующим чекпоинтом в гонке?)
    Всё сразу - вряд ли получится. Тут либо делать систему статических гонок (при старте сервера загрузил и дальше они используются. Хотя тут легче, по моему, массивами обойтись для хранения координат) и хранить всё на сервере и отдельно динамическую, либо придётся попариться с запросами и в итоге выйдет не самый оптимизированный способ
    ты смотрел функцию гоночных чек-поинтов >http://wiki.sa-mp.com/wiki/SetPlayerRaceCheckpoint ? x,y,z кординаты слейдующего чек-поинта нужны для того,что-бы в предыдущем на следующий стрелка показывала,или придется использовать тип чек-поинтов без стрелки,я-бы сделал в массиве,но если создавать гонку из игры то нужно сохранение или в файл или в БД,и если гонок будет около 100 и более,то кода будет неимоверно много :с
    Последний раз редактировалось [ForD]; 08.02.2014 в 22:53.
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

    25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/





    #FIXSAMP

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от [ForD] Посмотреть сообщение
    ты смотрел функцию гоночных чек-поинтов >http://wiki.sa-mp.com/wiki/SetPlayerRaceCheckpoint ? x,y,z кординаты слейдующего чек-поинта нужны для того,что-бы в предыдущем на следующий стрелка показывала,или придется использовать тип чек-поинтов без стрелки,я-бы сделал в массиве,но если создавать гонку из игры то нужно сохранение или в файл или в БД,и если гонок будет около 100 и более,то кода будет неимоверно много :с
    Так-с, хорошо. Пойдём другим путём. У нас есть гонка из пяти чекпоинтов и координаты чекпоинтов записаны в БД по порядку. Далее развивай мысль сам, опираясь на мои замечания в предыдущих постах ;)

    Так ты изначально и определись с тем, для чего создаёшь систему и что она будет выполнять. Продумай всё, дабы не было лишних сохранений и т.п. В общем, построй алгоритм работы твоей системы. Тогда уже можно будет работать над кодом.
    О использовании массивов я говорил для гонок, которые создал ты (сервер) и которые не будут меняться/удаляться во время игры или как-либо ещё. Все координаты и прочее в таких гонках будет являться статической информацией и смысла в БД/файле тут нет никакого.
    В случае с динамическими гонками и БД придётся постараться всё продумать, ибо если сделаешь всё криво, проблем потом получишь выше крыши.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  6. #46
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    Алгоритмы для сортировки, выбирай на свой вкус:

    PHP код:
    gnomeSort(_array[], size sizeof _array){
        for( new 
    1swap!= size;  ){
            if(
    _array] >= _array]) ++ j;//max to min
            
    else{
                
    swap _array];
                
    _array] = _array];
                
    _array] = swap ;
                -- 
    j;
                
                if( 
    == 0)
                    
    1;
            }
        }
    }

    bubbleSort(_array[], size sizeof _array){
        for(new 
    00swap 0!= sizei++) {
            for( 
    j++ ) {
                if(
    _array[i] > _array[j]){//max to min
                    
    swap _array[i];
                    
    _array[i] = _array[j];
                    
    _array[j] = swap;
                }
            }
        }

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

    Использование:
    PHP код:
    gnomeSort(array);// or bubbleSort(array); 

  7. #47
    Аватар для [ForD]
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.11.2013
    Адрес
    Свердловская обл.
    Сообщений
    688
    Репутация:
    103 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Так-с, хорошо. Пойдём другим путём. У нас есть гонка из пяти чекпоинтов и координаты чекпоинтов записаны в БД по порядку. Далее развивай мысль сам, опираясь на мои замечания в предыдущих постах ;)

    Так ты изначально и определись с тем, для чего создаёшь систему и что она будет выполнять. Продумай всё, дабы не было лишних сохранений и т.п. В общем, построй алгоритм работы твоей системы. Тогда уже можно будет работать над кодом.
    О использовании массивов я говорил для гонок, которые создал ты (сервер) и которые не будут меняться/удаляться во время игры или как-либо ещё. Все координаты и прочее в таких гонках будет являться статической информацией и смысла в БД/файле тут нет никакого.
    В случае с динамическими гонками и БД придётся постараться всё продумать, ибо если сделаешь всё криво, проблем потом получишь выше крыши.
    ты хочешь что-бы я все тут расписал или так просто для себя?
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

    25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/





    #FIXSAMP

  8. #48
    Аватар для [ForD]
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.11.2013
    Адрес
    Свердловская обл.
    Сообщений
    688
    Репутация:
    103 ±
    Все сделал вроде,только у меня 1 вопрос,есть например функция strval
    "Pmodel = strval(race)" -получается что из переменной race в переменную Pmodel переведет целое число,а как перенести текст? Просто что-то пока не нашел функции,подскажите.Спасибо.
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

    25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/





    #FIXSAMP

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от [ForD] Посмотреть сообщение
    Все сделал вроде,только у меня 1 вопрос,есть например функция strval
    "Pmodel = strval(race)" -получается что из переменной race в переменную Pmodel переведет целое число,а как перенести текст? Просто что-то пока не нашел функции,подскажите.Спасибо.
    strmid(массив, race, 0, 60, 60);

    60 - максимальная длина имени гонки.

  10. Пользователь сказал cпасибо:
    [ForD] (09.02.2014)
  11. #50
    Аватар для [ForD]
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.11.2013
    Адрес
    Свердловская обл.
    Сообщений
    688
    Репутация:
    103 ±
    Код HTML:
    C:\Users\ForD\Desktop\ttt.pwn(69) : error 033: array must be indexed (variable "pikap")
    PHP код:
    new pikap[10];
    db_get_field_assoc(dbresult"pikap"racesizeof(race));
    strmid(pikaprace01010);
    pikap CreatePickup(Pmodel,Ptype,pX,pY,pZ,Pworld);< 
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

    25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/





    #FIXSAMP

 

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

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

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

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

Ваши права

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