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

    Статус
    Оффлайн
    Регистрация
    21.07.2017
    Сообщений
    46
    Репутация:
    0 ±

    Система домов и бизнесов

    Я хочу создать холодильники с продуктами. Не могу найти с понятными объяснениями создание бизнесов, домов на mysql. Ничего не комментируют и трудно разобраться в каких то местах.

    Дайте хороший урок (ссылку) по созданию систем бизнесов.

    Либо помогите и расскажите что нужно.

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

    Моя задача: после регистрация сразу грузить из токо шо созданой базы всю инфу, сделать загрузку данных из таблицы с холодильниками при загрузке мода. Далее все данные непонимаю особо как пихать в переменнные, ну понимаю их приравнивать и всё. Кароче я буду благодарен если вы поняли суть моего предложения. Дайте шаблон нормальный с объяснением. ЧТо бы всё это работала внезависимости игрок подключен к серверу или нет. Это надо по типу шкафа на Advance.
    Там шкаф всегда загружен вне зависимости онлайна владельца
    Последний раз редактировалось Hecf; 17.09.2017 в 23:32.

  2. #2
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1093 ±
    Как вариант для домов - http://forum.sa-mp.com/showthread.php?t=295534

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

    Статус
    Оффлайн
    Регистрация
    21.07.2017
    Сообщений
    46
    Репутация:
    0 ±
    На русском есть? Мне нужно легкое просто. Не обязательно дом. Смотри:

    Мне нужно сделать макрос типа сколько холодильников будет на сервере. Но это зависит от того сколько игроков зарегистрируется это первое

    Я делаю в
    PHP код:
    enum e_EAT_INFO
    {
        
    eID// ид это типа добавил по шаблону регистрации типа ID инскремент как на аккаунте игроков
        
    eName// это владелец холодильника
        
    eApple// ячейка яблоки
        
    eMeat // это ячейка мясо 
    };
    new 
    eInfo[e][e_EAT_INFO]; 
    Сама таблица где это содержаться будет eat
    PHP код:
    new eat_string[30+(MAX_PLAYER_NAME+9)+(12+6)+(10+6)+1];
            
    format(eat_stringsizeof(eat_string), "INSERT INTO `eat` (`owner`, `apple`, `meat`) VALUES ('%s', '%d', '%d')"pInfo[playerid][pName], eInfo[e][eApple], eInfo[e][eMeat]);
            
    mysql_function_query(mysql_connect_IDeat_stringfalse""""); 
    Она создается при регистрации игрока на ник регистрируемого игрока. Поставьте меня на правильный путь пожалуйста. А то полная каша в башке.
    Сейчас пытаюсь написать систему загрузки мода и кэш всех холодильников подряд. Подскажите как это функция называется это типа
    PHP код:
    forward UploadEat(playerid);
    public 
    UploadEat(playerid)
    {
        new 
    rowsfields;
        
    cache_get_data(rowsfields);
        for(
    0re++) 
        {     
            
    pInfo[playerid][eID] = cache_get_field_content_int(0"eid"mysql_connect_ID);
            
    cache_get_field_content(0"owner"eInfo[e][eName], mysql_connect_ID24+1);
            
    pInfo[playerid][eApple] = cache_get_field_content_int(0"apple"mysql_connect_ID);
            
    pInfo[playerid][eMeat] = cache_get_field_content_int(0"meat"mysql_connect_ID);
        }
        return 
    1;

    Я уже сварюсь, плюс жарище погода даже ночью я ща сварюсь невынесу. помогите.

  4. #4
    Аватар для Hecf
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.07.2017
    Сообщений
    46
    Репутация:
    0 ±
    На свежую голову подумал утром. Есть недопонимание. Прочел коды разных создания домов и там типа если делают к примеру привязки сейфа, оружий к дому. То она привязана к дому, а дома контролируются типа сколько их можно создавать. К примеру если на сервере домов 900 поставлено. То соответственно как я понял максимально можно будет купить 900 сейфов для каждого дома. По аналогии то чего я пытаюсь делать. Типа холодильника. Но холодильник в моем моде будет создаваться при регистрации нового аккаунта. Соответственно без дома. И получится зашквар. Поэтому я так понял лучше привязаться к игроку типа MAX_PLAYERS. в enum.

    Итак собственно вопрос: мне лучше делать отдельной таблицей все виды овоще, продуктов и т.д. И её подключать при загрузке аккаунта? Или всё в одну таблицу запихать всякие разновидности продуктов в таблицу с аккаунтами?

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Для чего ты вообще собрался холодильник привязывать к аккаунту игрока? Он что, на горбу его носить будет из одного дома в другой при продаже? Да и всё остальное время.
    Холодильник даже по логике нужно привязывать к дому. А уже потом можно, при желании, реализовать, например, систему перевозки вещей из дома в дом, если игрок переезжает (по РП, если РП сервер).
    Создаёшь отдельную таблицу со структурой, а-ля:
    PHP код:
    id house_id slot_id item 
    Где
    id - AUTO_INCREMENT
    house_id - ID дома из таблицы домов
    slot_id - ID слота для предмета в холодильнике (или же ID предмета, если хочешь, чтоб несколько предметов стакались в 1 слот)
    item - сам предмет (или же их количество, если хочешь, чтоб несколько предметов стакались в 1 слот)

    Лучше ещё сделать таблицу, где будет записываться название продукта относительно его ID. И уже этот UD использовать в качестве ID предмета в этой таблице

    И всё. Данные либо выгружай в отдельный массив, который будет завязан на ID дома, либо прямо в массив дома (не очень хорошо для читаемости), либо обращайся к таблице всякий раз, когда игрок взаимодействует с таблицей и выгружай данные локально.

    А то, что хочешь сделать ты - это инвентарь, а не холодильник.
    Последний раз редактировалось DeimoS; 18.09.2017 в 14:37.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    21.07.2017
    Сообщений
    46
    Репутация:
    0 ±
    Да я уже понял. Но я на сервере создал спавн в виде отеля. Привязал виртуальные миры к ID в игре к игрокам. И в каждом отеле типа холодильник. И это же просто спавн и пришлось сделать как ты сказал ну инвентарь привязанный к игроку. Но работать будет у холодильника типа в отеле. (домов пока что не сделал) И собственно я это сделал в виде отдельной таблицы.

    В коде я вижу что много мусорю. Например при регистрации этот "холодильник" создается в отельной таблице, а аккаунт в другой таблице.
    В таблице `eat` | eid | owner | eApple | eMeat | по данной структуре делаю. И когда к примеру создается при регистрации игрока строки , вывожу в отдельном паблике типа

    PHP код:
    forward LoadingPlayerEat(playerid);
    public 
    LoadingPlayerEat(playerid) return pInfo[playerid][eID] = cache_insert_id(mysql_connect_ID); 
    А аккаунты загружаются в другом паблике через cache_inser_id но уже с пометкой pID (ну связанные с акком)
    Мой вопрос такой: как можно их в один паблике сделать или такое нельзя?
    И второй вопрос: я сделал систему бана, ещё система смертей. (ну для мода) И когда начнается проверка по нику сначала проверка: забанен ли ник? Если нет, то идет к другому паблике где чекает уже список смертных: типа записан ли ник в базе смертных, дальше если нет то идет проверка зареган ли игрок или нет.

    В общем 3 паблика проверяются при коннекте. Как можно это более оптимизированее делать (заметил что при первом подключении игрока чутка с меньшей скоростью чем обычной грузиться все эти проверки по БД) Я просто может незнаю других обходов как это всё совместить в один паблик?

    Это возможно по другому записывать?
    PHP код:
    stock CreateNewAccount(playeridpassword[])
    {
        {
            
    GetPlayerName(playeridpInfo[playerid][eName], MAX_PLAYER_NAME);
               new 
    eat_string[30+(MAX_PLAYER_NAME+9)+(12+6)+(10+6)+1];
            
    format(eat_stringsizeof(eat_string), "INSERT INTO `eat` (`owner`, `apple`, `meat`) VALUES ('%s', '%d', '%d')"pInfo[playerid][eName], pInfo[playerid][eApple], pInfo[playerid][eMeat]);
            
    mysql_function_query(mysql_connect_IDeat_stringtrue"LoadingPlayerEat""i"playerid);
        }
        new 
    query_string[66+MAX_PLAYER_NAME-4+30+(13+18)+(16+16)+(14+10)+(11+10)+(16+15)+(12+3)+1] = "INSERT INTO `player_acc` (`player_name`, `password`, `google`, `playerIP`,";
        
    format(query_stringsizeof(query_string), "%s `dollar`, `don`, `data_die`, `skin`)"query_string);
        
    format(query_stringsizeof(query_string), "%s VALUES ('%s', '%s', '%s', '%s', '%d', '%d', '%d', '%d')"query_stringpInfo[playerid][pName], passwordpInfo[playerid][pGoogle], pInfo[playerid][pIP], pInfo[playerid][pDollar], pInfo[playerid][pDonate], pInfo[playerid][pDie], pInfo[playerid][pSkin]);
        
    mysql_function_query(mysql_connect_IDquery_stringtrue"UploadPlayerAccountNumber""i"playerid);

        
    format(query_stringsizeof(query_string), "Аккаунт %s успешно зарегистрирован. Администрация желает Вам приятной игры!"pInfo[playerid][pName]);
        
    SendClientMessage(playerid0xFFFFFF00query_string);
        
    player_is_authorized{playerid} = 1;
        return 
    1;

    Если что у меня лесенкой. Это сайт корявит
    Последний раз редактировалось Hecf; 18.09.2017 в 15:05.

 

 

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

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

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

Ваши права

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