Это новое дополнение достижений, которое позволяет всем ES скриптерам добавлять достижения в дополнение. Все в одном менеджере достижений, с очень простым в использовании интерфейсом и еще таким же простым в использовании пользовательским интерфейсом для игроков для просмотра своих достижений. Просто введите !achievements для открытия всплывающего окна со всеми текущими достижениями на игровом сервере, и так же посмотреть какое достижение уже открыли, а какое на стадии.
Установка myo_achievement Скачайте *.zip, и импортируйте в папку cstrike. Добавьте es_load myo_achievement в ваш autoexec.cfg file. Запустите / Перезапустите свой игровой сервер. Отредактируйте переменные конфигурации в addons/eventscripts/myo_achievement/config.cfg. Перезапустите сервер еще раз. Играйте! (Пометка: myo_basics идет с этим пакетом. Убедитесь, что myo_achievement и myo_basics есть в /addons/eventscripts/ папке, если вы хотите использовать myo_basics, и также добавьте es_load myo_basics в ваш autoexec.cfg чтобы myo_basics загрузился.)
Установка MYOA Web Скопируйте все из *zip в вашу WEB директорию. Отредактируйте config.inc.php для успешной работы вашей БД с MYOA. Перейдите . Следуйте по шагам для окончания установки. После того, как установка будет завершена, удалите каталог установки (так, чтобы никто не смог переустановить систему и изменить пароль администратора и так далее.). Перейдите и войдите в администраторскую панель под своими данными. Готово! (Пометка: Если вы используете MySQL через PHP (WGET) метод хранения данных, вы так же должны установить список серверов для работы с ним так, чтобы PHP страница могла корректно идентифицировать и получить RCON к вашем игровым серверам. Чтобы это сделать, посетите администраторскую страницу)
MYOA Interface Reference (Информация для скриптеров) Если вы используете Python, вы можете воспользоваться системой скриптов Python, и вы легко можете импортировать все интерфейсы MYOA, сделав:
Теперь вы можете использовать менеджер достижений, чтобы сделать все обработку достижений!
Если вы используете ES Classic, загрузите дополнение, поставив следующее в вашем скрипте:
Код
es_load myo_achievement
Информация про es_load: Вы можете использовать консольные комманды для связи с MYOA.
Здесь краткое изложение открытых интерфейсных функций для ESPY / ESClassic:
Код
#Adds an achievement group to the achievement manager, and returns the AchievementGroup reference. PY: achievementManager.AddAchievementGroup(groupid, groupname, groupdescription) ES: myoa_add_group groupid groupname groupdescription
#Returns the Achievement reference according to achievementID, if available. PY: achievementGroup[achievementid] ES: --
#Creates and sets an Achievement to the AchievementGroup. PY: achievementGroup[achievementid] = (achievementname, achievementdescription, totalprogress = 1) ES: myoa_add_achievement groupid achievementid achievementname achievementdescription [totalprogress = 1]
#Returns a dictionary of achievements in this achievementGroup. PY: achievementGroup.GetAchievements() ES: --
#Steps the progress for the player of given playerid. PY: achievement.stepProgressForPlayer(playerid, stepamount = 1) ES: myoa_step_progress_player groupid achievementid playerid [stepamount = 1]
#Steps the progress for players that are filtered by playerfilter (used as playerlib filter). PY: achievement.stepProgressForList(playerfilter, stepamount = 1) ES: myoa_step_progress_list groupid achievementid listfilter [stepamount = 1]
#Steps the progress for all active players on the server. PY: achievement.stepProgressForAllActive(stepamount = 1) ES: myoa_step_progress_all groupid achievementid [stepamount = 1]
#Finishes the progress for the player of given playerid. PY: achievement.completeProgressForPlayer(playerid) ES: myoa_complete_progress_player groupid achievementid playerid
#Finishes the progress for players that are filtered by playerfilter (used as playerlib filter). PY: achievement.completeProgressForList(playerfilter) ES: myoa_complete_progress_list groupid achievementid listfilter
#Finishes the progress for all active players on the server. PY: achievement.completeProgressForAllActive() ES: myoa_complete_progress_all groupid achievementid
#Resets the progress for the player of given playerid. PY: achievement.resetProgressForPlayer(playerid) ES: myoa_reset_progress_player groupid achievementid playerid
#Resets the progress for players that are filtered by playerfilter (used as playerlib filter). PY: achievement.resetProgressForList(playerfilter) ES: myoa_reset_progress_list groupid achievementid listfilter
#Resets the progress for all active players on the server. PY: achievement.resetProgressForAllActive() ES: myoa_reset_progress_all groupid achievementid
#Returns the current progress for the player of given playerid. PY: achievement.getPlayerProgress(playerid) ES: myoa_get_player_progress groupid achievementid playerid [Get the value of 'myoa_player_progress' after running for the returned value.]
#Returns True if the player of given playerid has finished the achievement. PY: achievement.isPlayerCompleted(playerid) ES: myoa_is_player_completed groupid achievementid playerid [Get the value of 'myoa_player_complete' after running for the returned value.]
Есть также 3 события, которые получают вызов MYOA и вы можете использовать: achievement_achieved - Выстрел, когда игрок получает достижение achievement_unachieved - Выстрел, когда игрок не завершает достижение (был завершен, но потом что-то делает, чтобы был негативный прогресс достижения, и поэтому не заканчивает его). achievement_reset - Выстрел, когда у игрока достижение сбрасывается
В event_vars получают возвращение этих событий: achievementgroupid (String) - ID достижения группы. achivementid (String) - ID достиженияt. playerid (String) - ID игрока.
Здесь пример скрипта с использованием MYOA в Python:
Код
# == EXAMPLE ADDON ===================
import es
#This loads and imports the myo_achievement addon into achievementManager. es.load("myo_achievement") achievementManager = es.import_addon("myo_achievement")
myAchievementGroup = achievementManager.AddAchievementGroup("testGroup", "Test Achievement Group", "This is a test achievement group.")
def achievement_achieved(ev): if ev["achievementgroupid"] == "testGroup": es.tell(ev["playerid"], "You have completed the %s achievement!" % myAchievementGroup[ev["achievementid"]].name)