server achievements

Тема в разделе "Общего назначения", создана пользователем Lexass, 7 мар 2013.

  1. Atlan

    Atlan Капо

    На моем кампе (32 бита)она работает норм,а вот на машине (с 64 битами) с сервом потребовало сначала файлы:

    msvcp110.dll
    msvcr110.dll
    Взял их от винды 7 32 бита,кинул их в папку с базой ачивок.

    А потом при запуске батника,без изменений висит только:

    C:\games\Achivki>saremotedatabase --data-url share\etc\saremotedb.sqlite --tcp-p
    ort 5000 --server-pw los
    Achievement data URL: share\etc\saremotedb.sqlite
    Listening on tcp port: 5000

    И при смене карты все обнуляется,ачивки не сохраняются...
     
  2. MaThreeX

    MaThreeX Солдат

    http://www.microsoft.com/ru-ru/download/details.aspx?id=30679
    скачай отсюда нормально обе версии для 32бита и для 64бита и установи, и посмотри что выйдет
     
  3. Dr_Killjoy

    Dr_Killjoy Заблокированные

    Мутатор предусматривает добавление своих ачивок?
     
  4. Kiyo

    Kiyo Капо

    Несомненно.
     
  5. MaThreeX

    MaThreeX Солдат

    да, проверено 100% работает.
     
  6. SaWi4

    SaWi4 Новенький

    Пытался руссифицировать так и сяк, не помпилится с русским текстом, может кто скинет готовый руссифицированый пак 1.1? Заранее благодарен.
     
  7. key

    key Солдат

    Это значит что одна база будет работать на два сервера?
     
  8. MARYhuANNA

    MARYhuANNA Соучастник

    Доброго времени суток!

    Установил ServerAchievements_v1.1.2 после установил дополнение ServerAchievementsPack_v1.1
    Вопрос:
    Как добавить ссылку (кнопку) для просмотра достижений в интерфейс Main Menu СП6 до начала игры? Просто посмотреть их можно только в игре, а это не очень удобно, так как разглядывать свои достижения во время волны "чревато последствиями" :laugh:
    И опишите подробнее пожалуйста, как русифицировать достижения.

    Спасибо!
     
  9. Сеня

    Сеня Соучастник

    а на ждущем этот мут работает??
     
  10. kok-s

    kok-s Капо

    Надо в классе SRInvasionLoginMenu.uc добавлять.

    Вообще кто расскажет как правильно вшить в СП 6 эти достижения с выводом в ServerPerks.ini настроек?
     
    Shadow5 и ЛОХМАТЫЙ нравится это.
  11. Винни

    Винни Мододел "UM"

    1. Дайте пример, как сделать свою ачивку. И где прописывать?
    2. Как добавить кнопку в SRInvasionLoginMenu.uc, что прописать?
    3. Как заместо галочки поставить свою картинку?
     
  12. CBAPLLLuK

    CBAPLLLuK Бандит

    Вообще, для меня добавить этот мутатор на наш старенький сервер - дело чести.

    Процесс несёт в себе пару нюансов, в которых надо разбираться - 1) Совместимость с 1031 и 2) Использование своих ачивок со своими картинками;

    Автор, к слову, написал подробную инструкцию, как изобретать свои ачивки, однако, многое по прежнему не понятно. Вот бы кто из знающих в кодинге выложил небольшой гайд, хотя бы с минимумом информации, ну например о самых распространенных переменных.

    ССЫЛКА

    Overview
    Creating custom achievements on the ServerAchievements engine can be broken down into 3 main steps:
    1. Create achievement pack
    a. Set pack name
    b. Define achievements
    2. Implement event handlers
    a. Update achievement progress
    b. Unlock achievement
    c. Notify owner of current progress
    3. Add achievement pack to configuration file

    This page will provide examples for each step and will assume the package name is "ExamplePack". Each section will only show code relevant to that section. The final product will an achievement pack containing three achievements: the first triggered upon dying, the second unlocking after landing 30 head shots in a wave, and third unlocking after 25 clots have been killed. The full code is given at the bottom of the page. The Server Achievements Pack page has more complex examples of utilizing the ServerAchievements engine.
    This guide assumes you will be extending from AchievementPackPartImpl. While you can extend from AchievementPack, you should only do so if you wish to implement the AchievementPack interface your own way.
    Achievement Pack
    In most cases, achievement packs should extend from the AchievementPackPartImpl class. The class provides a pack name variable, a data structure for storing achievement information, and functions to update the achievement state. It is important that you do not change the pack name nor achievement ordering once the achievement pack has been released. However, you may change the titles, descriptions, images, and notification increments and add more achievements as you see fit.

    class MyAchievementPack extends AchievementPackPartImpl;
    Setting Pack Name
    The packName variable sets the achievement pack name. Because the name is used to identify each pack, the name must be unique for each achievement pack.

    defaultproperties {
    packName= "Example Pack"
    }
    Defining Achievements
    Achievement information is stored in the achievements array, which is an array of Achievement structs. While the Achievement struct contains many member variables, the only relevant ones are: title, description, image, maxProgress, and notifyIncrement. The only required variables are title and description. If no image texture is provided, a check mark will be used as the icon. See the Achievement Pack page for specifics about the Achievement struct and achievements array.

    defaultproperties {
    achievements(0)=(title="Sample 01",description="Do something")
    achievements(1)=(title="Sample 02",description="Do something 30 times in a wave",maxProgress=30,noSave=true)
    achievements(2)=(title="Sample 03",description="Do something 25 times, notify owner every 1/5th of the way",maxProgress=25,notifyIncrement=0.20)
    }
    Event Handlers
    The AchievementPack class provides event handlers for several in game events. These event handlers will be utilized to update the achievement state. To update the achievements, use the modifier functions provided in AchievementPackPartImpl. Do not update the information by directly accessing the array
    Full documentation of the handlers is available on the Event Handlers page.
    Updating Achievement Progress
    For progress based achievements require progress persistence, the addProgress function will update the progress, notify the owner if sufficient progress has been made, and unlock the achievement if all requirements have been met.
    For progress based achievements that do not save progress between games, the "addProgress" function and "maxProgress" variable can still be used as normal. You simply need to set the "noSave" variable to true in the achievement definition. Setting "noSave" to true will not save the progress after the game has ended nor will it notify the player of any progress updates. You will also need to reset the progress when appropriate, i.e. wave end, reloading, etc.

    event killedMonster(Pawn target, class<DamageType> damageType, bool headshot) {
    log("You killed a"@target[background=#e3d2d2]@[/background]"with"@damageType[background=#e3d2d2]@[/background]". Headshot kill?"@headshot);
    if (ZombieClot(target) != none) {
    addProgress(AchvIndex.SAMPLE_02, 1);
    }
    }

    event damagedMonster(int damage, Pawn target, class<DamageType> damageType, bool headshot) {
    log("You damaged a"@target[background=#e3d2d2]@[/background]"with"@damageType[background=#e3d2d2]@[/background]"dealing "@damage[background=#e3d2d2]@[/background]"damage. Headshot?"@headshot);
    if (headshot) {
    addProgress(AchvIndex.SAMPLE_03, 1);
    }
    }

    event waveEnd(int waveNum) {
    log("Wave ended"@waveNum);
    achievements[AchvIndex.SAMPLE_03].progress= 0;
    }
    Unlocking an Achievement
    For achievements that do not require progress, the achievement can be unlocked by directly calling the "achievementCompleted" function.

    event playerDied(Controller killer, class<DamageType> damageType, int waveNum) {
    log("You died. Killer="$killer [background=#e3d2d2]@[/background] "damage="$damageType[background=#e3d2d2]@[/background] "wave="$waveNum);
    achievementCompleted(AchvIndex.SAMPLE_01);
    }

    If the achievement is already unlocked, the function will do nothing. Otherwise, it will notify the owner with a popup saying he has unlocked the achievement
    Notifying the Owner
    Both addProgress and achievementCompleted will notify the owner. When an achievement is unlocked or sufficient progress has been made, the owner will received a popup notification on his HUD.
    Adding Achievement Pack
    Once your achievement pack has compiled, you will need to add it to the mutator's configuration file (ServerAchievements.ini) to load it into the game. The configuration property "achievementPacks" stores a list of packs to load.

    [ServerAchievements.SAMutator]
    achievementPacks=ExamplePack.MyAchievementPack
    Full Sample Code
    Copy this code into "MyAchievementPack.uc" and place the class in a package named "ExamplePack"

    class MyAchievementPack extends AchievementPackPartImpl;

    enum AchvIndex {
    SAMPLE_01, SAMPLE_02, SAMPLE_03
    };

    function MatchStarting() {
    log("Match is starting");
    }
    event matchEnd(string mapname, float difficulty, int length, byte result, int waveNum) {
    log("Match ended: "@mapname@difficulty@length@result@waveNum);
    }
    event waveStart(int waveNum) {
    log("Wave started"@waveNum);
    }
    event waveEnd(int waveNum) {
    log("Wave ended"@waveNum);
    achievements[AchvIndex.SAMPLE_03].progress= 0;
    }
    event playerDied(Controller killer, class<DamageType> damageType, int waveNum) {
    log("You died. Killer="$killer [background=#e3d2d2]@[/background] "damage="$damageType[background=#e3d2d2]@[/background] "wave="$waveNum);
    achievementCompleted(AchvIndex.SAMPLE_01);
    }
    event killedMonster(Pawn target, class<DamageType> damageType, bool headshot) {
    log("You killed a"@target[background=#e3d2d2]@[/background]"with"@damageType[background=#e3d2d2]@[/background]". Headshot kill?"@headshot);
    if (ZombieClot(target) != none) {
    addProgress(AchvIndex.SAMPLE_02, 1);
    }
    }
    event damagedMonster(int damage, Pawn target, class<DamageType> damageType, bool headshot) {
    log("You damaged a"@target[background=#e3d2d2]@[/background]"with"@damageType[background=#e3d2d2]@[/background]"dealing "@damage[background=#e3d2d2]@[/background]"damage. Headshot?"@headshot);
    if (headshot) {
    addProgress(AchvIndex.SAMPLE_03, 1);
    }
    }

    defaultproperties {
    packName= "Example Pack"

    achievements(0)=(title="Sample 01",description="Do something")
    achievements(1)=(title="Sample 02",description="Do something 30 times in a wave",maxProgress=30,noSave=true)
    achievements(2)=(title="Sample 03",description="Do something 25 times, notify owner every 1/5th of the way",maxProgress=25,notifyIncrement=0.20)
    }
    Last edited by Eric Tsai,
    2 months ago
     
    ЛОХМАТЫЙ нравится это.
  13. w.a.l

    w.a.l Капо

    Посоны... Вот такая проблема при сборке SAReplicationInfo :


    ...\ServerAchievements\Classes\SAReplicationInfo.uc(12) :
    Error, Unrecognized type 'KF_StoryObjective'
    Compile aborted due to errors.

    В этом отрезке :

    var bool broadcastedWaveEnd, initialized, signalReload, signalToss, signalFire, objectiveMode;
    var string steamid64, offset;
    var SAMutator mutRef;
    var PlayerReplicationInfo ownerPRI;
    var array<AchievementPack> achievementPacks;
    var KF_StoryObjective storedObjective;


    Пытался исправить вот таким путём :

    #exec OBJ LOAD FILE=KFStoryGame.u
    #exec OBJ LOAD FILE=KFStoryGame_Tex.utx

    Не получается !!!
     
  14. Flame

    Flame -Заслуженый кодер форума-

    я добавил в первый попавшийся мутатор

    var KF_StoryObjective storedObjective;
    и отлично всё скомпилилось
    значит, либо версия патча старая, либо в EditPackages этот ServerAchievements прописан до
    EditPackages=KFStoryGame
     
  15. w.a.l

    w.a.l Капо

    Вот последовательность :


    EditPackages=Old2k4
    EditPackages=KFMod
    EditPackages=KFChar
    EditPackages=KFGui
    EditPackages=GoodKarma
    EditPackages=KFMutators
    EditPackages=IDRPGMod
    EditPackages=ServerAchievements
    CutdownPackages=Core
    CutdownPackages=Editor
    CutdownPackages=Engine
    CutdownPackages=Fire
    CutdownPackages=GamePlay

    Самый последний в EditPackages=
    Патч 1052
     
  16. 3xzet

    3xzet Мододел "Ы"

    w.a.l,
    EditPackages=KFMod
    EditPackages=KFChar
    EditPackages=KFGui
    EditPackages=GoodKarma
    EditPackages=KFMutators
    EditPackages=KFStoryGame
    EditPackages=KFStoryUI
    EditPackages=SideShowScript
    EditPackages=WeldBot
    EditPackages=PseudoGigant_DT_beta
     
  17. Flame

    Flame -Заслуженый кодер форума-

    ты, небось, сервак то апгрейдил ещё чёрти с каких времён, а ini то ты не правил )
    а там давно уже то, что написано у Экзета ))
    так что дописывай пакеты
    Код:
    EditPackages=KFStoryGame
    EditPackages=KFStoryUI
    EditPackages=SideShowScript
     
  18. w.a.l

    w.a.l Капо

    Я как раз уже дописал (сообразил). И тут вы !!

    А это где :
    var KF_RingMasterNPC ringMaster;

    ???
    Скиньте плиз все пакейджи !

    ой уже....спасибо
     
  19. kok-s

    kok-s Капо

    Подскажите что нужно сделать чтоб ачивки сохранялись
     
  20. Человек

    Человек Солдат

    Сделал ачивки которые идут счётчиком: ДНК, кружки, мешки. С добавлением карт уже сломал всю голову. Есть у кого нить совет по добавлению карт ? В MapBase идёт обращение (проверка) в дефолтный MapIndex/MapName. Так и сделал учитывая новый индекс новых карт, но работать не хочет.