Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Valera_Trefilov
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    35
    Репутация:
    7 ±

    Сохранение позиции при выходе [ MySQL R7+ ]

    PHP код:
    #define TABLE_ACCOUNT "" 
        // таблица аккаунтов 
    #define PosX "" 
        // названия в структуре таблице колонки позиции по иксу
    #define PosY "" 
        // названия в структуре таблице колонки позиции по игрику
    #define PosZ "" 
        // названия в структуре таблице колонки позиции по зэт
    #define Int "" 
        // названия в структуре таблице колонки интерьера
    #define World ""
        // названия в структуре таблице колонки вирт. мира
    #define Name "" 
        // названия в структуре таблице колонки имя 
    В OnPlayerDisconnect ( Сохраняем значения )
    PHP код:
    stock SavePositionExit(playerid

        new 
    FloatSavePosition[3],
            
    query_string[128]; 
            
        
    GetPlayerPos(playeridSavePosition[0], SavePosition[1], SavePosition[2]); 
        
        
    format(query_stringsizeof(query_string), 
        
    "UPDATE "TABLE_ACCOUNT" SET `"PosX"` = '%f', `"PosY"` = '%f', `"PosZ"` = '%f', \ 
        `"
    Int"` = '%d', `"World"` = '%d' WHERE `"Name"` = '%s'"
        
    SavePosition[0], 
        
    SavePosition[1], 
        
    SavePosition[2],
        
    GetPlayerInterior(playerid),
        
    GetPlayerVirtualWorld(playerid)); 
        
    mysql_function_query(connectionHandlequery_string0"",""); 

    В сток или функции , там где логинится игрок ( где нужно телепортировать игрока )
    PHP код:
    stock SetPositionExit(playerid
    {  
        
    SetPlayerPos(playerid
        
    cache_get_field_content_float(0,""PosX"",connectionHandle),
        
    cache_get_field_content_float(0,""PosY"",connectionHandle),
        
    cache_get_field_content_float(0,""PosZ"",connectionHandle)); 
        
    SetPlayerVirtualWorld(playeridcache_get_field_content_int(0,""World"",connectionHandle)); 
        
    SetPlayerInterior(playeridcache_get_field_content_int(0,""Int"",connectionHandle)); 
        return 
    1

    Не-то чтобы баян.
    Но вполне рабочая, и функциональная система. Которая работать будет под любой мод на MySQL.
    Если вы что-то не поняли пишите в теме.


    Перевел в инклуд. Ссылка: Кликабельно
    Как использовать с инклудом:


    PHP код:
    #define TABLE_ACCOUNT "accounts" 
    #define PosX "PosX" 
    #define PosY "PosY" 
    #define PosZ "PosZ" 
    #define Int "Int" 
    #define World "World"
    #define Name "player_name"
    #include <t_teleport> 
    Макросы (#define) меняем на свои.

    Там где вы хотите ТП игрока:
    PHP код:
    SetPositionExit(playerid); 
    Последний раз редактировалось Valera_Trefilov; 28.10.2014 в 16:09.

  2. #2
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    375
    Репутация:
    144 ±
    Не знаю как по скорости, но на переменных выглядело бы лучше, это точно..

    PHP код:
    #define TABLE_ACCOUNT "" // таблица аккаунтов 
    #define PosX "" // названия в структуре таблице колонки позиции по иксу
    #define PosY "" // названия в структуре таблице колонки позиции по игрику
    #define PosZ "" // названия в структуре таблице колонки позиции по зэт
    #define Int "" // названия в структуре таблице колонки интерьера
    #define World ""// названия в структуре таблице колонки вирт. мира
    #define Name "" // названия в структуре таблице колонки имя 
    Зачем все усложнять?

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

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    35
    Репутация:
    7 ±
    Цитата Сообщение от wAx Посмотреть сообщение
    Не знаю как по скорости, но на переменных выглядело бы лучше, это точно..

    PHP код:
    #define TABLE_ACCOUNT "" // таблица аккаунтов 
    #define PosX "" // названия в структуре таблице колонки позиции по иксу
    #define PosY "" // названия в структуре таблице колонки позиции по игрику
    #define PosZ "" // названия в структуре таблице колонки позиции по зэт
    #define Int "" // названия в структуре таблице колонки интерьера
    #define World ""// названия в структуре таблице колонки вирт. мира
    #define Name "" // названия в структуре таблице колонки имя 
    Зачем все усложнять?
    Ну мало-ли ты новичек?

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Цитата Сообщение от wAx Посмотреть сообщение
    Не знаю как по скорости, но на переменных выглядело бы лучше, это точно..
    А ещё проще было бы вызвать функции "cache_get_field_content..." напрямую в SetPlayerPos и т.п.
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    35
    Репутация:
    7 ±
    Обновлено.
    Переписан код.
    Также сделан инклуд для удобства.

 

 

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

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

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

Ваши права

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