Ограничить покупку модов ( Zombie Plague Advanced ), Во времени ( ночное ) / через 1 раунд / через 1 карту |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Ограничить покупку модов ( Zombie Plague Advanced ), Во времени ( ночное ) / через 1 раунд / через 1 карту |
mazdan
|
7.4.2013, 15:16
Сообщение
|
![]() ![]() |
вам нужно вызывать будет из других плагинов native_buy(id), когда игрок айди покупает что-то.
Запись не там смотрите. amx-x.ru работа с файлами Код public Write_Stats() { new i_File, i_Frags, i_Deaths // Открыть файл i_File = fopen(g_FileName, "a+") // Если файл существует if (i_File) { for (new i = 1; i <= MAX_PLAYERS; i++) { if (g_PlayerConnected[i]) { i_Frags = get_user_frags(i) i_Deaths = get_user_deaths(i) get_user_authid(i, g_PlayerData[i][STEAMID], charsmax(g_PlayerData)) get_user_name(i, g_PlayerData[i][NAME], 31) num_to_str(i_Frags, g_PlayerData[i][FRAGS], charsmax(g_PlayerData)) num_to_str(i_Deaths, g_PlayerData[i][DEATHS], charsmax(g_PlayerData)) // Записываем fwrite_raw(i_File, g_PlayerData[i][PLAYER_DATABASE:0], sizeof(g_PlayerData[]), BLOCK_INT) } } /* g_PlayerData[id] - данных игрока c id = i [PLAYER_DATABASE:0] - начала данных Для записи только Steam ID необходимо использовать: g_PlayerData[id][PLAYER_DATABASE:STEAMID] sizeof(g_PlayerData[]) - длина данных, которые необходимо записать */ } // Закрыть файл fclose(i_File) } Либо более простой старый способ Цитата write_file(const file[], const text[], line = -1) Данная функция предназначена для запись строки в файл по указанному месту. Возвращает 0 при неуспешном выполнении. Если line указать -1, то запись строки произойдет в конец файла. Функция автоматически создает файл, если он не существует. http://amxxmodx.ru/core/fileinc/259-write_...oku-v-fayl.html Соответственно нам нужно new ip[16] get_user_ip(id,ip,15,1) потом этот ip записать в файл (пример выше по ссылке) Вот и всё. Код register_native("native_zp_user_buy_item", "native_buy", 1) можно заменить на Код register_native("zp_user_buy_item", "native_buy", 1) zp_user_buy_item(id) будем вызывать когда игрок что то купил. В текущем плагине будет вызываться native_buy(id)Мы там будем брать айпи и писать его в файл. После смены карты автоматически вызывается read_purchase_file(), в которой после fclose(i_file) вы должны файл этот удалить или почистить (я за удалить) иначе он будет расти и расти. По идее после этого нужно просто добавить проверку zp_user_buy_on_lastmap(id) перед покупкой и добавить вызов zp_user_buy_item(id) после покупки в остальные плагины. ![]() Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
|
Поблагодарили 1 раз
|
|
Nickk
|
7.4.2013, 17:05
Сообщение
|
|
|
Код //Новый булевый массив new bool:can_buy[33] Удалите. |
Поблагодарили 1 раз
|
|
Slackerok
|
7.4.2013, 17:17
Сообщение
|
|
|
Nickk, Здравствуйте) Спасибо, а для чего этот булевый масив?
Отредактировал: Slackerok, - 7.4.2013, 17:20
|
|
|
|
iLLuSioN
|
8.4.2013, 14:08
Сообщение
|
![]() |
Вы еще здесь :)
![]() |
Поблагодарили 1 раз
|
|
Slackerok
|
9.4.2013, 17:48
Сообщение
|
|
|
mazdan, Сегодня протестирую после работы и отпишусь о результатах) Спасибо!
|
|
|
|
![]() ![]() |