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

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±

    Как сделать загрузку личного автомобиля игрока при старте сервера?

    Приветствую всех, и у меня вопрос начал реализовать систему домов на сервере, и случилась такая беда, хочу что бы машины спавнились не в зависимости онлайн игрок (владелец дома) или не онлайн, при запуске мода. Я конечно понимаю что сделать цикл загрузку всех домов, и потом создавать машину по координатам, но другой вопрос как пропустить итерацию у кого нету дома, а тем более машины.
    Переменная отвечающия за дом: pInfo[playerid][pHouse] не зря я выделил, playerid видь из OnGameModeInit не как не передать параметр playerid, а переменная отвечающия за машину pInfo[playerid][p_car_house], вот жду помощи товарищи, заранее спасибо.
    На счёт загрузки:
    PHP код:
    mysql_function_query(mysql_connect_ID"SELECT * FROM `name_table`"true"cars_load_house"""); 
    PHP код:
    forward cars_load_house();
    public 
    cars_load_house()
    {
        new 
    rows,fields;
        
    cache_get_data(rowsfields);
        if(
    rows)
        {
            for(new 
    rrowsr++)
            {
               
    // some coding
            
    }
        }

    Последний раз редактировалось DeimoS; 13.11.2014 в 02:55.

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±
    Вот:
    OnGameModeInit:
    PHP код:
    mysql_function_query(mysql_connect_ID,"SELECT * FROM `house`"true"HouseLoad"""); 
    Сама загрузка:
    PHP код:
    forward HouseLoad();
    public 
    HouseLoad()
    {
        new 
    time GetTickCount();
        new 
    rf;
        
    cache_get_data(rf);
        new 
    string[128];
        for(new 
    idxidx ridx++)
        {
            
    HouseInfo[idx][hID] = cache_get_field_content_int(idx"id"mysql_connect_ID);
            
    HouseInfo[idx][h_player_pos_street][0] = cache_get_field_content_float(idx"player_pos_street_1"mysql_connect_ID);
            
    HouseInfo[idx][h_player_pos_street][1] = cache_get_field_content_float(idx"player_pos_street_2"mysql_connect_ID);
            
    HouseInfo[idx][h_player_pos_street][2] = cache_get_field_content_float(idx"player_pos_street_3"mysql_connect_ID);
            
    HouseInfo[idx][h_player_pos_int][0] = cache_get_field_content_float(idx"player_pos_int_1"mysql_connect_ID);
            
    HouseInfo[idx][h_player_pos_int][1] = cache_get_field_content_float(idx"player_pos_int_2"mysql_connect_ID);
            
    HouseInfo[idx][h_player_pos_int][2] = cache_get_field_content_float(idx"player_pos_int_3"mysql_connect_ID);
            
    cache_get_field_content(idx"owner"HouseInfo[idx][hOwner], mysql_connect_ID24);
            
    HouseInfo[idx][hCena] = cache_get_field_content_int(idx"cena"mysql_connect_ID);
            
    HouseInfo[idx][hInt] = cache_get_field_content_int(idx"int"mysql_connect_ID);
            
    HouseInfo[idx][hLock] = cache_get_field_content_int(idx"lock"mysql_connect_ID);
            
    HouseInfo[idx][hOwned] = cache_get_field_content_int(idx"owned"mysql_connect_ID);
            
    HouseInfo[idx][hClass] = cache_get_field_content_int(idx"class"mysql_connect_ID);
            new 
    klass[13];
            if(
    HouseInfo[idx][hOwned] == 0)
            {
                
    HouseInfo[idx][hPickupID] = CreateDynamicPickup(127323HouseInfo[idx][h_player_pos_street][0], HouseInfo[idx][h_player_pos_street][1], HouseInfo[idx][h_player_pos_street][2],-1);
                
    HouseInfo[idx][hIconID] = CreateDynamicMapIcon(HouseInfo[idx][h_player_pos_street][0], HouseInfo[idx][h_player_pos_street][1], HouseInfo[idx][h_player_pos_street][2],310xFFFFFF);
                switch(
    HouseInfo[idx][hClass])
                {
                    case 
    0klass "Эконом класс";
                    case 
    1klass "Бизнес класс";
                    case 
    2klass "Элитный";
                }
                
    format(stringsizeof(string),"Номер дома: %i\nЦена: %i долларов\nКласс: %s",idx,HouseInfo[idx][hCena],klass);
                
    HouseInfo[idx][hTextID] = Create3DTextLabel(string,0xFFFFFF,HouseInfo[idx][h_player_pos_street][0], HouseInfo[idx][h_player_pos_street][1], HouseInfo[idx][h_player_pos_street][2],20.0,0,1);
            }
            else
            {
                
    HouseInfo[idx][hPickupID] = CreateDynamicPickup(127223HouseInfo[idx][h_player_pos_street][0], HouseInfo[idx][h_player_pos_street][1], HouseInfo[idx][h_player_pos_street][2],-1);
                
    HouseInfo[idx][hIconID] = CreateDynamicMapIcon(HouseInfo[idx][h_player_pos_street][0], HouseInfo[idx][h_player_pos_street][1], HouseInfo[idx][h_player_pos_street][2], 320xFFFFFF);
                switch(
    HouseInfo[idx][hClass])
                {
                    case 
    0klass "Эконом класс";
                    case 
    1klass "Бизнес класс";
                    case 
    2klass "Элитный";
                }
                
    format(stringsizeof(string),"Номер дома: %i\nВладелец: %s\nКласс: %s",idx,HouseInfo[idx][hOwner], klass);
                
    HouseInfo[idx][hTextID] = Create3DTextLabel(string,0xFFFFFF,HouseInfo[idx][h_player_pos_street][0], HouseInfo[idx][h_player_pos_street][1], HouseInfo[idx][h_player_pos_street][2],20.0,0,1);
            }
            
    TOTALHOUSES++;
        }
        
    printf("Загружено домов [%i] пострачено времени [%i мс]",TOTALHOUSES,GetTickCount()-time);
        return 
    true;


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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±
    Загрузки автомобиля нету, записывать координаты в аккаунт и потом их выгружать это все понятно, но вот как выгрузить с учётом что у некоторых домов нету владелца

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±
    Не реализована, все понятно как реализовать кроме того что как при загрузке пропустить итерацию цикла, что машины нету или нету владельца дома (при загрузке)
    Последний раз редактировалось Lars Keller; 13.11.2014 в 13:10.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Lars Keller Посмотреть сообщение
    Не реализована, все понятно как реализовать кроме того что как при загрузке пропустить итерацию цикла, что машины нету или нету владельца дома (при загрузке)
    Так ты сохраняй авто вместе с домом. И уже по владельцу дома определяй владельца автомобиля
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Так ты сохраняй авто вместе с домом. И уже по владельцу дома определяй владельца автомобиля
    Так проблема в том что я хочу через цикл, переменная отвечающая за владение дома находиться в таблице аккаунтов игроков, тоесть как мне пропустить интерацию то?
    Хотел как то так:
    OnGameModeInit
    PHP код:
    mysql_function_query(mysql_connect_ID"SELECT * FROM `cars_for_house`"true"cars_load_house"""); 
    PHP код:
    forward cars_load_house();
    public 
    cars_load_house()
    {
        new 
    rows,fields;
        
    cache_get_data(rowsfields);
        if(
    rows)
        {
            for(new 
    rrowsr++)
            {
               
    /*Тут что то типо:
               if(pInfo[playerid][pHouse] == 0 || pInfo[playerid][p_car_house] == 0) continue;
               */
            
    }
        }

    Но видь не выйдет пропуска, т.к по иду не как не пропустить, вот собственно загоска в реализаций в чем.
    Если есть другие варианты более оптимальные без цикла, предлагайте буду рад :)

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

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

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

    Steve Pavlina

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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