Русское сообщество по скриптингу

[API] Data Player (Load/Save)

Новые плагины для AMX Mod X, которые были добавлены в базу плагинов нашего форума. Плагины еще не утвеждены администратором/модератором.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Данный раздел форума служит для добавления новых плагинов в базу нашего форума. После того, как администратор/модератор утвердит плагин, он будет перемещен в раздел "Утвежденные плагины".

Правила при добавлении новых плагинов:

1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. Обязательно выкладывайте исходник sma плагина. Запрещено выкладывать amxx файл.
4. Обязательно указывайте настоящих авторов плагина, если вы использовали чьи-то наработки или функции, указывайте их авторов в сообщении.
5. Необходимо заполнять детальную информацию о плагине (версию, настройки, используемые модули, список изменений и другую).

[API] Data Player (Load/Save)

Сообщение BlackSmoke » 05 июл 2014, 20:52

Авторы: BlackSmoke

Версия: 0.1

Описание:
Работа плагина заключается в сохранении и загрузке данных игрока с помощью файла.


Типы сохранения\загрузки:
• По имени игрока DP_PLAYER_NAME
• По стим идентификатору игрока DP_PLAYER_STEAMID
• По айпи игрока DP_PLAYER_IP


Нативы:
[pawn]
  1. native dp_save_int( iTypeSL:iType, iPlayer, const sFileName[ ], iData );

  2. native dp_save_float( iTypeSL:iType, iPlayer, const sFileName[ ], Float:fData );

  3. native dp_save_string( iTypeSL:iType, iPlayer, const sFileName[ ], const sData[ ] );

  4. native dp_load_int( iTypeSL:iType, iPlayer, const sFileName[ ], &iData );

  5. native dp_load_float( iTypeSL:iType, iPlayer, const sFileName[ ], &Float:fData );

  6. native dp_load_string( iTypeSL:iType, iPlayer, const sFileName[ ], sData[ ], iLen );
[/pawn]

Пример ( сохранение денег ):
[pawn]
  1. #include        amxmodx

  2. #include        data_player_api

  3. #include        cstrike

  4.  

  5. public client_disconnect( id )

  6. {

  7.      dp_save_int( DP_PLAYER_NAME, id, "addons/amxmodx/configs/PlayersMoney.ini", cs_get_user_money( id ) ) ;

  8. }

  9.  

  10. public client_putinserver( id )

  11. {

  12.      cs_set_user_money( id, 0 ) ;

  13.      set_task( 10.0, "Load__Money", id ) ;

  14. }

  15.  

  16. public Load__Money( id )

  17. {

  18.      new iReturnMoney ;

  19.      if( dp_load_int( DP_PLAYER_NAME, id, "addons/amxmodx/configs/PlayersMoney.ini", iReturnMoney ) )

  20.      {

  21.              cs_set_user_money( id, iReturnMoney ) ;

  22.              client_print( id, print_center, "Ваши загруженные деньги: %d", iReturnMoney ) ;

  23.      }

  24.      else

  25.              client_print( id, print_center, "Ошибка загрузки денег" ) ;

  26. }
[/pawn]

Пример работы с массивом:
[pawn]
  1. public Save__Origin( id )

  2. {

  3.      new Float:fOrigin[ 3 ] , sText[ 64 ] ;

  4.      pev( id, pev_origin, fOrigin ) ;

  5.      format( sText, charsmax( sText ), "%f %f %f", fOrigin[ 0 ], fOrigin[ 1 ], fOrigin[ 2 ] ) ;

  6.      dp_save_string( DP_PLAYER_NAME, id, "addons/amxmodx/configs/PlayersOrigin.ini", sText ) ;

  7. }

  8.  

  9. public Load_Origin( id )

  10. {

  11.      new sReturnData[ 128 ] , sPos[ 3 ][ 8 ], Float:fOrigin[ 3 ] ;

  12.      dp_load_string( DP_PLAYER_NAME, id, "addons/amxmodx/configs/PlayersOrigin.ini", sReturnData, charsmax( sReturnData ) ) ;

  13.      parse( sReturnData, sPos[ 0 ], charsmax( sPos[ ] ), sPos[ 1 ], charsmax( sPos[ ] ), sPos[ 2 ], charsmax( sPos[ ] ) ) ;

  14.      fOrigin[ 0 ] = str_to_float( sPos[ 0 ] ) ;

  15.      fOrigin[ 1 ] = str_to_float( sPos[ 1 ] ) ;

  16.      fOrigin[ 2 ] = str_to_float( sPos[ 2 ] ) ;
[/pawn]

Файлы:
data_player_API.sma

data_player_api.inc
Последний раз редактировалось BlackSmoke 06 июл 2014, 12:42, всего редактировалось 3 раз(а).
Заказы принимаю Отзывы о работе
itsblacksmoke
Аватара пользователя
BlackSmoke
 
Сообщения: 1109
Зарегистрирован: 28 июл 2012, 04:33
Откуда: Ukraine
Благодарил (а): 106 раз.
Поблагодарили: 287 раз.
Опыт программирования: Около года
Языки программирования: Counter Strike 1.6

Re: [API] Data Player (Load/Save)

Сообщение BlackSmoke » 06 июл 2014, 13:12

Нужно это обдумать.
Заказы принимаю Отзывы о работе
itsblacksmoke
Аватара пользователя
BlackSmoke
 
Сообщения: 1109
Зарегистрирован: 28 июл 2012, 04:33
Откуда: Ukraine
Благодарил (а): 106 раз.
Поблагодарили: 287 раз.
Опыт программирования: Около года
Языки программирования: Counter Strike 1.6

Re: [API] Data Player (Load/Save)

Сообщение trololost » 06 июл 2014, 13:32

Asmodai писал(а):И? 10000? Ну выйдет 40 мб и что дальше? А ты представляешь такое количество строк из файла читать и сравнивать?


Согласен. Когда стату по юзерам вел в файлах, то очень удобно было называть файлы: STEAM00_123, а потом данные с файлов грабить построчно. Также легко проверяется наличие файла в папке, нежели строчки в файле
[Не принимаю заказы]
Аватара пользователя
trololost
 
Сообщения: 923
Зарегистрирован: 05 ноя 2011, 02:25
Благодарил (а): 104 раз.
Поблагодарили: 358 раз.

Re: [API] Data Player (Load/Save)

Сообщение Safety1st » 06 июл 2014, 13:45

Можно добавить возможность хранения файла в памяти и обращаться к нему только при старте и конце карты. Включение - при компиляции, а команду на использование отдает главный плагин (например, preload_file). И тогда дальнейшая работа с этими данными выполняется в памяти, а API само в конце карты сохраняет файл.
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: [API] Data Player (Load/Save)

Сообщение Rafa » 06 июл 2014, 14:17

Армиранк поглотил все сервера, пабликмены/ZP держатели навряд ли перейдут на этот "API" имхо =D
за старание плюс.
Аватара пользователя
Rafa
Скриптер
 
Сообщения: 292
Зарегистрирован: 30 сен 2012, 16:14
Благодарил (а): 284 раз.
Поблагодарили: 194 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: [API] Data Player (Load/Save)

Сообщение Safety1st » 06 июл 2014, 14:29

Так API - не конечный плагин, а вспомогательный. Что скриптер заюзает - то держатели серверов и будут использовать)
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: [API] Data Player (Load/Save)

Сообщение hmn3r^Ist » 06 июл 2014, 15:08

А в чем преимущество перед sqlite?
Аватара пользователя
hmn3r^Ist
 
Сообщения: 900
Зарегистрирован: 19 апр 2012, 16:24
Откуда: Petersburg
Благодарил (а): 82 раз.
Поблагодарили: 158 раз.

Re: [API] Data Player (Load/Save)

Сообщение BlackSmoke » 06 июл 2014, 15:20

Да ни в чём.
Заказы принимаю Отзывы о работе
itsblacksmoke
Аватара пользователя
BlackSmoke
 
Сообщения: 1109
Зарегистрирован: 28 июл 2012, 04:33
Откуда: Ukraine
Благодарил (а): 106 раз.
Поблагодарили: 287 раз.
Опыт программирования: Около года
Языки программирования: Counter Strike 1.6

Re: [API] Data Player (Load/Save)

Сообщение hmn3r^Ist » 06 июл 2014, 16:03

BlackSmoke писал(а):Да ни в чём.

Тогда... Зачем?
Аватара пользователя
hmn3r^Ist
 
Сообщения: 900
Зарегистрирован: 19 апр 2012, 16:24
Откуда: Petersburg
Благодарил (а): 82 раз.
Поблагодарили: 158 раз.

Re: [API] Data Player (Load/Save)

Сообщение Safety1st » 06 июл 2014, 16:15

hmn3r^Ist, а зачем многие хранят данные в файлах, nVault'ах, MySQL, раз есть SQLite? :ROFL:
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: [API] Data Player (Load/Save)

Сообщение hmn3r^Ist » 06 июл 2014, 16:27

Safety1st писал(а):hmn3r^Ist, а зачем многие хранят данные в файлах, nVault'ах, MySQL, раз есть SQLite? :ROFL:

У каждого свои плюсы и минусы, а у этого преимуществ перед sqlite я не заметил, только и всего
Плагин по определению должен уступать в производительности и функционалу sqlite
Аватара пользователя
hmn3r^Ist
 
Сообщения: 900
Зарегистрирован: 19 апр 2012, 16:24
Откуда: Petersburg
Благодарил (а): 82 раз.
Поблагодарили: 158 раз.

Пред.След.

Вернуться в Добавленные новые плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9