Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 14 из 14
  1. #11
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Нет, я имел ввиду это
      Открыть/закрыть
    PHP код:
    stock SetPlayerSkinEx(playeridskinidbool:sync false)
    {
        static 
            
    query_string[39+3+11+1];

        if(
    sync == true)
        {
            
    PlayerInfo[playerid][pSkin] = skinid;    

            
    format(query_stringsizeof (query_string), "UPDATE accounts SET skin = %i WHERE id = %i"
                
    skinid
                
    PlayerInfo[playerid][pID]);
            
    mysql_tquery(db_handlequery_string);
        }
        
        return 
    SetPlayerSkin(playeridskinid);
    }
    #if defined _ALS_SetPlayerSkin
        #undef SetPlayerSkinEx
    #else
        #define _ALS_SetPlayerSkin
    #endif
    #define SetPlayerSkin SetPlayerSkinEx 


    И теперь всякий раз, когда нужно выдать скин, который должен записаться в базу данных, нужно прописать
    PHP код:
    SetPlayerSkin(playeridskinidtrue); 
    Всё. И компактно, и не нужно запоминать лишнюю информацию, кроме того, что у функции появился дополнительный параметр.

    Для денег, собственно, то же самое. Я в своём моде использовал такую конструкцию
      Открыть/закрыть
    PHP код:
    stock update_GivePlayerMoney(playeridmoney)
    {
        
    PlayerInfo[playerid][pMoney] += money;
        if(
    money != 0)// Этот перехват является так же и античитом на деньги. Обновление денег для игрока происходит путём вызова "GivePlayerMoney(playerid, 0)" и дабы вхолостую не отправлять запрос, существует эта проверка
        
    {    

            static 
                
    query_string[40+11+11+1];

            
    format(query_stringsizeof (query_string), "UPDATE accounts SET money = %i WHERE id = %i"
                
    PlayerInfo[playerid][pMoney], 
                
    PlayerInfo[playerid][pID]);
            
    mysql_tquery(db_handlequery_string);
        }
        
    ResetPlayerMoney(playerid);
        return 
    GivePlayerMoney(playeridPlayerInfo[playerid][pMoney]);
    }
    #if defined _ALS_GivePlayerMoney
        #undef GivePlayerMoney
    #else
        #define _ALS_GivePlayerMoney
    #endif

    #define GivePlayerMoney update_GivePlayerMoney 
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    19.05.2017
    Сообщений
    103
    Репутация:
    1 ±
    а как потом временный скин выдавать? Это штуковина не будет затмевать работу обычной setplayerskin ???

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

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Цитата Сообщение от phpadmin Посмотреть сообщение
    а как потом временный скин выдавать? Это штуковина не будет затмевать работу обычной setplayerskin ???
    Для этого в коде и есть обязательный параметр (новый).
    SetPlayerSkin(playerid, id_skin, true); // выдадим скин с сохранением в БД
    SetPlayerSkin(playerid, id_skin, false); // выдадим скин БЕЗ сохранения в БД
    Код:
    PHP код:
    stock SetPlayerSkinEx(playeridskinidbool:sync false)
    {
        static 
            
    query_string[39+3+11+1];

        if(
    sync == true)
        {
            
    PlayerInfo[playerid][pSkin] = skinid;    

            
    format(query_stringsizeof (query_string), "UPDATE accounts SET skin = %i WHERE id = %i"
                
    skinid
                
    PlayerInfo[playerid][pID]);
            
    mysql_tquery(db_handlequery_string);
        }
        
        return 
    SetPlayerSkin(playeridskinid);
    }
    #if defined _ALS_SetPlayerSkin
        #undef SetPlayerSkinEx
    #else
        #define _ALS_SetPlayerSkin
    #endif
    #define SetPlayerSkin SetPlayerSkinEx 

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от StevenH Посмотреть сообщение
    Для этого в коде и есть обязательный параметр (новый).
    SetPlayerSkin(playerid, id_skin, true); // выдадим скин с сохранением в БД
    SetPlayerSkin(playerid, id_skin, false); // выдадим скин БЕЗ сохранения в БД
    Код:
    PHP код:
    stock SetPlayerSkinEx(playeridskinidbool:sync false)
    {
        static 
            
    query_string[39+3+11+1];

        if(
    sync == true)
        {
            
    PlayerInfo[playerid][pSkin] = skinid;    

            
    format(query_stringsizeof (query_string), "UPDATE accounts SET skin = %i WHERE id = %i"
                
    skinid
                
    PlayerInfo[playerid][pID]);
            
    mysql_tquery(db_handlequery_string);
        }
        
        return 
    SetPlayerSkin(playeridskinid);
    }
    #if defined _ALS_SetPlayerSkin
        #undef SetPlayerSkinEx
    #else
        #define _ALS_SetPlayerSkin
    #endif
    #define SetPlayerSkin SetPlayerSkinEx 
    Наоборот он не обязательный, за счёт чего обычный
    PHP код:
    SetPlayerSkin(playerid5); 
    будет выдавать временный скин, а
    PHP код:
    SetPlayerSkin(playerid5true); 
    постоянный
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

 

 
Страница 2 из 2 ПерваяПервая 1 2

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

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

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

Ваши права

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