NecroBot2 是延續 NoxxDev 在 GitHub NecroBot Forked 所推出的專案,雖著 POGODEV 的 API Hashing Service 轉為付費使用後,已經無法靠沿用 0.45 Legacy API 來免費掛機,若是要使用 NecroBot2,就必須向 Pokefarmer 購入 PokeHash Key,詳細說明可見 API Hashing Service 一文,這邊就不贅述。
Contents
軟體資訊
- 軟體名稱 : NecroBot2 v1.0.0.187 (2017/08/05), Support API 0.69.0
- 下載連結 : https://goo.gl/F7Yprj
- NecroBot2.Console.1.0.0.1xx.zip : Console 文字界面掛機程式
- NecroBot2.WIN.1.0.0.1xx.zip : NecroBot2 原生圖形使用者介面 (包含 Console)
執行需求
安裝流程
外掛本身提供簡易的初始設定,不過新版已經無法直接略過讓 NecroBot2 先行建立 auth.json 以及 config.json 兩個設定檔,讓使用者先依使用需求進行參數調整後再來掛機,以下就頭一次開啟軟體的設置流程做簡易說明。
- 使用舊版 Legacy 0.45 API 的風險過高,軟體本身目前已經預設屏蔽,不過要使用 PogoDev Hash 0.69.0 API 必須先購買 PokeHash Key,空白欄位處請填入購買後取得的序號
- 語系請選擇 zh-TW
- 選取要掛機的帳號類別(Google/Pokemon Trainer Club)並輸入帳號密碼
- 設定機器人起始位置,建議一開始設定靠近自己的實際位置(數值可透過 Google Map 查詢)
- Walk Settings 為機器人移動相關設置,個人習慣透過 Mapzen API,另外預設 30km/h 過高,建議向下調整,圖中數值與變動量為保守設定,請自行評估
- WebSocket 設定主要是給 Web GUI 使用,無需特別調整
- 狙擊相關設定,這邊先不啟用
- 完成基本設置按下 START BOT 就會開始掛機
- 跳出掛機程式文字界面後,建議直接關閉,此時 NecroBot2 已經建立好 auth.json 以及 config.json 兩個設定檔,可依照使用需求進行參數調整
參數設定注意事項
- auth 和 config 皆以 JSON 來描述設定,語法中字串一律都需要用雙引號 “xxxx” 的方式填入,邏輯值 true、false 以及 null 則不需要,若在執行的時候顯示第幾行有錯誤,可依上述語法去進行檢查
- auth.json 和 config.json 會在執行初始化之後出現在 \Config
Necrobot2 auth.json 參數設定說明
1 2 3 4 5 6 7 8 | "Bots": [ { "AuthType": "ptc", //帳號類型可為 google 或 ptc "Username": "ABCDEFG", //帳號 "Password": "123456789", //密碼 "AutoExitBotIfAccountFlagged": false //如果偵測到被 Flagged 的情況自動關閉程式 } ], |
- 登入帳號可為 Google 或者是 Pokémon Trainer Club
- Google 密碼的部份可以使用應用程式密碼登入,可以增加一點安全性
1 2 3 4 5 6 7 8 | "ProxyConfig": { "UseProxy": true, //是否要啟用代理伺服器功能,預設為 false "UseProxyHost": "proxy.hinet.net", //代理伺服器位置 (IP/Domain) "UseProxyPort": "80", //代理伺服器連接埠 "UseProxyAuthentication": false, //代理伺服器驗證,若有設置帳密則改為 true "UseProxyUsername": null, //代理伺服器連線帳號 "UseProxyPassword": null //代理伺服器連驗密碼 }, |
- 上面以使用 Hinet Proxy 為例,不過這類使用人數眾多的代理伺服器,很容易造成 Softban
- 常會有人建議使用 VPN,不過建議找個找個口碑好的服務商,會是比較安全一點的作法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | "DeviceConfig": { "DevicePlatform": "ios", "DevicePackageName": "custom", "DeviceId": "a79593a0fbfe9c68c1ee9d68493f958da77a87b5", "AndroidBoardName": "", "AndroidBootloader": "", "DeviceBrand": "Apple", "DeviceModel": "iPad", "DeviceModelIdentifier": "", "DeviceModelBoot": "iPad3,5", "HardwareManufacturer": "Apple", "HardwareModel": "P102AP", "FirmwareBrand": "iPhone OS", "FirmwareTags": "", "FirmwareType": "8.1.3", "FirmwareFingerprint": "" } |
- DeviceConfig 的用途是在模擬實際的手機資訊,不過逆向工程破解的 0.43 API 是基於 iOS Emulation 環境下所開發,如果透過 API 送出的手機資訊為 Android,有機會導致被系統標註為可疑的使用者,目前 NecroBot2 預設是模擬 ios
- 若是想要重新隨機產生模擬手機資訊,可在 DevicePackageName 後標註 random
1 2 3 4 5 | "APIConfig": { "UsePogoDevAPI": true, //是否使用PogoDevAPI "AuthAPIKey": "", //輸入購買的PokeHash Key "UseLegacyAPI": false //是否使用舊版API "DiplayHashServerLog": true //顯示 Hash Server 連線狀況 |
- AuthAPIKey須填入購買的PokeHash Key才能使用PogoDev釋出的新版API,詳見 API Hashing Service
Necrobot2 config.json 參數設定說明
1 2 3 4 5 6 | "ConsoleConfig": { "TranslationLanguageCode": "en", //填入語系代碼設定顯示語言,繁體中文為 zh-TW "StartupWelcomeDelay": false, //開始掛機前,是否 Console 要暫停一下,任意鍵後開始,預設是 false "AmountOfPokemonToDisplayOnStart": 2, //依照 IV、CP 排行顯示寶可夢列表,預設為前2隻 "DetailedCountsBeforeRecycling": true //進行刪除物品前,詳細統計品項與數量 }, |
- 支援語系可以代碼可以參考 \Config\Translations\translation.XXXX.json
1 2 3 4 5 | "UpdateConfig": { "SchemaVersion": 27, "CheckForUpdates": true, //檢查是否有更新版 "AutoUpdate": true //自動更新至最新版 }, |
- UpdateConfig 主要控制軟體是否進行自動更新,由於受到 API 改版頻繁的影響,很多功能都是邊修邊改,建議是讓軟體本身自動更新,除非遇到新版出現無法正常運作的情況
1 2 3 4 | "WebsocketsConfig": { "UseWebsocket": true, //是否於本機啟用 Websocket 服務, 不建議關閉 "WebSocketPort": 14251 //Websocket 服務連接埠 }, |
- 此功能最常應用的就是提供 Console 圖形化顯示界面
1 2 3 4 5 6 7 8 9 10 11 12 13 | "LocationConfig": { "DisableHumanWalking": false, //取消人類步態模擬,預設是 false "StartFromLastPosition":false, //是否從前次執行最後位置開始繼續移動,預設是 false "DefaultLatitude": 25.069434, //預設起始緯度 "DefaultLongitude": 121.529963, //預設起始經度 "WalkingSpeedInKilometerPerHour": 4.16, //步行速度基準值(公里/小時) "UseWalkingSpeedVariant": true, //步行時變速移動,預設是 true "WalkingSpeedVariant": 1.2, //步行速度變動值(公里/小時) "ShowVariantWalking": false, //於畫面顯示前往下一個補給站的時速 "RandomlyPauseAtStops": true, //隨機在補給站做停留,預設為 true "MaxSpawnLocationOffset": 10, //距離起始位置偏移量(公尺) "MaxTravelDistanceInMeters": 1000 //距離起始位置最遠移動半徑距離(公尺) }, |
- DisableHumanWalking 若修改為 true,軟體本身會自動將使用者腳色四處傳送
- 時速 4.16 公里為預設的步行速度,速度越高的直接效益就是每小時能夠取得更多的經驗值,如果自行修改數值開掛之後,一直有 Softban 的情況發生,請在悲劇發生前下修,避免砍掉重練
1 2 3 4 5 | "TelegramConfig": { "UseTelegramAPI": false, //是否透過 Telegram 遠端監看掛機執行狀況,預設是 false "TelegramAPIKey": null, //Telegram API 金鑰 "TelegramPassword": null //Telegram 密碼 }, |
- 透過 Telegram Bot Platform 在手機監看掛機資訊
1 2 3 4 | "GPXConfig": { "UseGpxPathing": false, //是否使用自訂 Gpx 移動路線,預設是 false "GpxFile": "GPXPath.GPX" //Gpx 移動路線檔案名稱 }, |
- 如果啟用,Bot 會依照 Gpx 預先規劃好路線來移動,但是會基於 MaxTravelDistanceInMeters 的設定來做為移動半徑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | "SnipeConfig": { "UseSnipeLocationServer": false, //使用本機端寶可夢狙擊伺服器,預設是 false "SnipeLocationServer": "localhost", //本機端寶可夢狙擊伺服器位址 "SnipeLocationServerPort": 16969, //本機端寶可夢狙擊伺服器連接埠 "MinPokeballsToSnipe": 20, //身上寶貝球數數量大於 20 顆才會進行狙擊 "MinPokeballsWhileSnipe": 0, "MinDelayBetweenSnipes": 60000, //狙擊間隔時間(秒) "SnipingScanOffset": 0.005, //狙擊位置掃描半徑 "SnipeAtPokestops": false, //是否於補給站所在位置進行狙擊,預設是 false "SnipeIgnoreUnknownIv": false, //是否狙擊IV不明的寶可夢,預設是 false "UseTransferIvForSnipe": false, //核對"KeepMinIvPercentage"IV值來決定是否傳送寶可夢,預設是 false "SnipePokemonNotInPokedex": false, //是否只狙擊不在寶可夢清單的神奇寶貝,預設是 false "UseSnipeLimit": true, //是否啟用狙擊限制,預設是 true "SnipeRestSeconds": 600, //多久清除一次狙擊次數清單(秒) "SnipeCountLimit": 39, //狙擊清單每次紀錄次數上限 "ActivateMSniper": true, //是否啟用 MSniper,預設是 true "MinIVForAutoSnipe": 100, //自動狙擊對象寶可夢IV最低為100 "MinLevelForAutoSnipe": 0, //自動狙擊對象寶可夢等級最低為0 "AutosnipeVerifiedOnly": false, //只狙擊驗證過得狙擊對象,預設是 false "DefaultAutoSnipeCandy": 0, "SnipePauseOnOutOfBallTime": 5, //在寶貝球用光的時候暫停狙擊時間 "AutoSnipeMaxDistance": 0.0, "AutoSnipeBatchSize": 10 }, |
- SnipingScanOffset 進行狙擊時,會以 Offset 設定值掃描是否有狙擊目標,0.005 換算實際距離為 500 公尺
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | "HumanWalkSnipeConfig": { "Enable": true, //是否啟用仿人狙擊,預設是 true "DisplayPokemonList": true, //是否顯示狙擊寶可夢清單,預設是 true "MaxDistance": 1500.0, //狙擊目標寶可夢最大允許移動半徑(公尺) "MaxEstimateTime": 900.0, //狙擊目標寶可夢最大允許步行時間(秒) "CatchEmAllMinBalls": 50, //嘗試狙擊所有清單上的寶可夢所需最少寶貝球數量 "TryCatchEmAll": true, //是否要嘗試狙擊所有清單上的寶可夢,預設是 true "CatchPokemonWhileWalking": true, //狙擊移動中是否要捕捉符合清單的寶可夢,預設是 true "SpinWhileWalking": true, //移動中是否要狙擊寶可夢,預設是 true "AlwaysWalkback": false, //因為狙擊移動後,是否要走回原本位置,預設是 true "SnipingScanOffset": 0.025, //掃描狙擊目標位置偏移量 "WalkbackDistanceLimit": 300.0, //走回原本位置最大移動距離(公尺) "IncludeDefaultLocation": true, //參照預設起始位置,預設是 true "UseSnipePokemonList": true, //是否啟用寶可夢狙擊清單,預設是 true "MaxSpeedUpSpeed": 60.0, //發現狙擊目標移動提速上限 "AllowSpeedUp": true, //是否允許提速,預設是 true "DelayTimeAtDestination": 10000, //狙擊後前往下一個目標的延遲時間(毫秒) "UsePokeRadar": false, //是否從 PokeRadar 取得寶可夢狙擊位置資訊,預設是 false "UseSkiplagged": false, //是否從 Skiplagged 取得寶可夢狙擊位置資訊,預設是 false "UsePokecrew": false, //是否從 Pokecrew 取得寶可夢狙擊位置資訊,預設是 false "UsePokesnipers": false, //是否從 Pokesnipers 取得寶可夢狙擊位置資訊,預設是 false "UsePokeZZ": false, //是否從 PokeZZ 取得寶可夢狙擊位置資訊,預設是 false "UsePokeWatcher": false, //是否從 PokeWatcher 取得寶可夢狙擊位置資訊,預設是 false "UseFastPokemap": false, //是否從 FastPokemap 取得寶可夢狙擊位置資訊,預設是 false "UsePogoLocationFeeder": false, //是否使用本機端寶可夢狙擊伺服器 "AllowTransferWhileWalking": false //是否允許在移動中傳送寶可夢 }, |
- HumanWalkSnipeConfig 仿人狙擊的主要目的就是避免進行狙擊時,模擬人類行走至狙擊位置,避免長距離的飛人,是否要前往狙擊取得的寶可夢狙擊位置,需要滿足 MaxDistance 以及 MaxEstimateTime
- SnipingScanOffset 所代表的偏移量參照對象為經緯度,0.025 代表會掃描距離目前位置 2.5 公里內,在各網站出現的寶可夢狙擊位置,至於為什麼不是比照 MaxEstimateTime 就好了,理由很簡單,步行其間也有可能在寶可夢消失前靠近掃描範圍內的目標位置
- 若要配合從 PokeRadar、PokeCrew 以及 PokeFastMap 取得資訊進行狙擊,無法在非模擬 HumanWalk 的情況下運作
1 2 3 4 5 6 7 8 9 | "DataSharingConfig": { "EnableSyncData": true, //是否啟用資料同步機制 "AutoSnipe": false, "DataServiceIdentification": "", "SnipeDataAccessKey": "", "EnableFailoverDataServers": true, "FailoverDataServers": "ws://s1.mypogosnipers.com/socket.io/?EIO=3&transport=websocket;ws://s2.mypogosnipers.com/socket.io/?EIO=3&transport=websocket;ws://necrosocket.herokuapp.com/socket.io/?EIO=3&transport=websocket", "DataRecieverURL": "ws://www.mypogosnipers.com/socket.io/?EIO=3&transport=websocket" }, |
- DataSharingConfig 主要是透過 Socket.IO 和 necrosocket.herokuapp.com 建立資訊共享的連線,會與伺服器分享寶可夢再生點的資訊,在 Console 畫面也會不定時出現 Pokemon spawn point data service connection established. 的訊息字樣
- 目前看起來這些資訊共享是與 MSniper 服務共享相關,有點像是互利共生的概念,透過廣大外掛使用者來取得即時且正確的寶可夢位置、IV 等資訊
1 2 3 4 5 | "PokeStopConfig": { "UsePokeStopLimit": true, //是否使用補給站翻牌限制 "PokeStopLimit": 700, //補給站翻牌上限數量 "PokeStopLimitMinutes": 1350 //翻牌上限重置時間 }, |
- 補給站翻牌限制主要是避免被判定為不合理翻牌數量(通常高速移動比較需要擔心這個問題)
- 若是關閉後重啟外掛,想要忽略先前翻牌數量,可以刪除 \Config\PokestopTS.txt
- 若是不想要使用補給站翻牌,可將 PokeStopLimit 設置為 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | "GymConfig": { "NotUsedSkills": [ { "Key": "snorlax", "Value": "hyperBeam" }, { "Key": "dragonite", "Value": "hyperBeam" }, { "Key": "lapras", "Value": "blizzard" }, { "Key": "cloyster", "Value": "blizzard" }, { "Key": "flareon", "Value": "fireBlast" }, { "Key": "gyarados", "Value": "hydroPump" }, { "Key": "exeggutor", "Value": "solarBeam" } ], "Enable": false, //是否啟用道館功能,預設是 false "PrioritizeGymOverPokestop": true, //預設優先等級高於 Pokestop "MaxDistance": 500.0, //拜訪道館最大允許移動半徑 "DefaultTeam": "Yellow", //預設陣營顏色 "MaxCPToDeploy": 1800, //駐點寶可夢CP需大於1800 "MaxLevelToDeploy": 16, //駐點寶可夢等級需大於16 "VisitTimeout": 60, //拜訪超時時間 "UseRandomPokemon": false, //使用任意寶可夢駐點 "NumberOfTopPokemonToBeExcluded": 10, //不會拿前10強的寶可夢進行駐點 "CollectCoinAfterDeployed": 1, //佔領道館後領取錢幣 "EnableAttackGym": false, //是否攻擊其他道館 "MaxGymLevelToAttack": 3, "MaxDefendersToAttack": 3, "HealDefendersBeforeApplyToGym": true, "DontAttackAfterCoinsLimitReached": true, "EnableGymTraining": true, "TrainGymWhenMissingMaxPoints": 1000, "MaxGymLvlToTrain": 4, "TrainAlreadyDefendedGym": true, "MinCpToUseInAttack": 1000, "ButNotLessThanDefenderPercent": 0.75, "UsePokemonToAttackOnlyByCp": true, "ExcludeForGyms": [ "kangaskhan", "tauros", "mrMime", "farfetchd" ], "DontUseDodge": false, "MinRevivePotions": 5, "PrioritizeGymWithFreeSlot": true, "SaveMaxRevives": true, "MaxTrainingRoundsOnOneGym": 5, "Defenders": [ { "Pokemon": "lapras", "MinCP": 1000, "MaxCP": null, "Priority": 5, "Moves": null }, ] |
- 新增的道館拜訪設置,目前預設事件處理優先等級高於 Pokestop,比較打亂原本預期的掛機流程,當然如果手邊有一群機器人大軍,又想要維繫道館的所有權,這個功能省下不少麻煩
- 不過個人並未著墨這個功能太多,相關細節暫時無法提供相關資訊
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | "PokemonConfig": { "CatchPokemon": true, //是否要捕捉寶可夢 "DelayBetweenPokemonCatch": 2000, //寶可夢捕捉間隔時間(毫秒 "UseCatchLimit": true, //是否啟用寶可夢捕捉限制,預設是 true "CatchPokemonLimit": 500, //寶可夢數量捕捉限制 "CatchPokemonLimitMinutes": 1350, //每分鐘寶可夢捕捉限制 "UseIncenseConstantly": false, //是否要持續使用薰香,預設是 false "UseEggIncubators": true, //是否使用孵蛋器,預設是 true "UseLimitedEggIncubators": true, //是否使用有使用次數限制的孵蛋器 "UseLuckyEggConstantly": false, //是否要持續使用幸運蛋,預設是 false "UseLuckyEggsMinPokemonAmount": 30, //使用幸運蛋時最低寶可夢數量 "UseLuckyEggsWhileEvolving": false, //是否在進化時使用幸運但蛋,預設是 false "TransferWeakPokemon": false, //是否傳送體質虛弱的寶可夢,預設是 false "TransferDuplicatePokemon": true, //是否傳送重複的寶可夢,預設是 true "TransferDuplicatePokemonOnCapture": true, //是否傳送捕捉到重複的寶可夢,預設是 true "RenamePokemon": false, //是否幫寶可夢更名,預設是 false "RenameOnlyAboveIv": false, //只更名Iv高的寶可夢,預設是 false "RenameTemplate": "{Name}_{IV}_Lv{Level}", //命名格式 "FavoriteMinIvPercentage": 95.0, //Iv 高於 95% 加入我的最愛 "AutoFavoritePokemon": false, //自動增加我的最愛寶可夢 "AutoFavoriteShinyOnCatch": false, "MaxPokeballsPerPokemon": 6, //捕捉寶可夢最高使用寶貝球數 "UseGreatBallAboveCp": 1000, //Cp 高於 1000 使用 Great Ball "UseUltraBallAboveCp": 1250, //Cp 高於 1250 使用 Ultra Ball "UseMasterBallAboveCp": 1500, //Cp 高於 1500 使用 Master Ball "UseGreatBallAboveIv": 85.0, //Iv 高於 85% 使用 Great Ball "UseUltraBallAboveIv": 95.0, //Iv 高於 95% 使用 Ultra Ball "UseGreatBallBelowCatchProbability": 0.2, //捕獲機率低於 20% 時,使用 Great Ball "UseUltraBallBelowCatchProbability": 0.1, //捕獲機率低於 10% 時,使用 Ultra Ball "UseMasterBallBelowCatchProbability": 0.05, //捕獲機率低於 5% 時,使用 Master Ball "AutomaticallyLevelUpPokemon": false, //自動升級寶可夢,預設是 false "OnlyUpgradeFavorites": true, //只升級標記我的最愛之寶可夢,預設是 true "UseLevelUpList": true, //參照升級過濾清單進行升級 "AmountOfTimesToUpgradeLoop": 5, //最多連續自動升級次數 "GetMinStarDustForLevelUp": 5000, //最低升級所需要的星砂數 "LevelUpByCPorIv": "iv", //升級參照基準運算子,預設是 "iv" "UpgradePokemonCpMinimum": 1000.0, //Cp 高於 1000,才允許自動升 "UpgradePokemonIvMinimum": 95.0, //Iv 高於 95%,才允許自動升級 "UpgradePokemonMinimumStatsOperator": "and", //進化參照運算子,預設是 "and" "EvolveAboveIvValue": 95.0, //Iv 高於 95% 自動進化 "EvolveAllPokemonAboveIv": false, //是否進化所有高於上述 Iv 的寶可夢,預設值是 false "EvolveAllPokemonWithEnoughCandy": true, //進化有足夠糖果的寶可夢,預設值是 true "EvolveKeptPokemonsAtStorageUsagePercentage": 90.0, //當身上的寶可夢高於儲存空間 90% 時,開始進化寶可夢 "EvolveKeptPokemonIfBagHasOverThisManyPokemon": 120, "KeepPokemonsThatCanEvolve": false, //是否保留可以進化的寶可夢,預設為 false "KeepMinCp": 1250, //Cp 高於 1250 則保留該寶可夢 "KeepMinIvPercentage": 90.0, //Iv 高於 90% 則保留該寶可夢 "KeepMinLvl": 6, //Lv 高於 6 則保留該寶可夢 "KeepMinOperator": "or", //保留寶可夢運算子預設為 "or" "UseKeepMinLvl": false, //是否啟用保留對低等級限制,預設為 false "PrioritizeIvOverCp": true, //保留判斷運算,Iv 優先等級高於 Cp "KeepMinDuplicatePokemon": 1, //保留重複的寶可夢最低數量 "KeepMaxDuplicatePokemon": 1000, //保留重複的寶可夢數量上限,超過則不保留 "UsePokemonToNotCatchFilter": true, //啟用 NotCatchFilter 過濾條件 "UsePokemonSniperFilterOnly": false, //啟用 SniperFilterOnly 過濾條件 "DumpPokemonStats": false, //啟用 Dump 功能,預設為 false "DelayBetweenPokemonUpgrade": 10000, //寶可夢升級延遲時間 "OutOfBallCatchBlockTime": 5, //沒有寶貝球的時候,暫停捕捉時間 "PokeballToKeepForSnipe": 50, //寶貝球數量超過 50 才進行狙擊 "UseBulkTransferPokemon": true, //使用批次回收寶可夢 "BulkTransferStogareBuffer": 10, "BulkTransferSize": 100, //批次回收寶可夢數量 "UseBallOperator": "or", //使用寶貝球的參照因子為 or "FavoriteMinCp": 0.0, "DefaultBuddyPokemon": "", //預設寶可夢遊戲夥伴 "FavoriteMinLevel": 0, "FavoriteOperator": "and", "RenamePokemonRespectTransferRule": false "UpgradePokemonLvlMinimum": 30.0, //升級寶可夢等級最低為 30 "EvolveFavoritedOnly": true, //只進化喜愛寶可夢 "EvolveOperator": "and", //進化寶可夢參照因子為 and "EvolveMinIV": 100.0, //進化寶可夢 IV 最低需為 100 "EvolveMinCP": 2000.0, //進化寶可夢 CP 最低需為 2000 "EvolveMinLevel": 25.0, //進化寶可夢最低等級需為 25 "ByPassCatchFlee": false }, |
- 這個部分設定都比較直覺大家也相對熟悉,比較需要注意的大概是傳送重複的寶可夢以及在糖果足夠的情況下自動進化在預設的情況下是開啟的
- 為了預防可能被 Ban 的情況,1.0.0.2 將區域限定的寶可夢加入 PokemonsToIgnore 預設不進行捕捉,UsePokemonToNotCatchFilter 和 UsePokemonSniperFilterOnly 預設也從 false 修改為 true
- 最後不建議開啟 Rename 功能,目前是有被 Ban 的機率
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | "RecycleConfig": { "VerboseRecycling": true, //是否啟用自動資源回收功能,預設為 true "RecycleInventoryAtUsagePercentage": 90.0, //當背包空間超過 90%,啟用回收功能 "RandomizeRecycle": false, //是否啟用隨機回收,預設為 false "RandomRecycleValue": 3, //每次隨機回收數量 "TotalAmountOfPokeballsToKeep": 120, //進行回收時,至少保留 120 個寶貝球 "TotalAmountOfPotionsToKeep": 80, //進行回收時,至少保留 80 灌藥水 "TotalAmountOfRevivesToKeep": 60, //進行回收時,至少保留 60 顆復活石 "TotalAmountOfBerriesToKeep": 50, //進行回收時,至少保留 50 粒漿果 "UseRecyclePercentsInsteadOfTotals": false, //是否啟用百分比方式來進行回收時的數量保留參照,預設為 false "PercentOfInventoryPokeballsToKeep": 35, //進行回收時,至少保留 35% 的寶貝球 "PercentOfInventoryPotionsToKeep": 35, //進行回收時,至少保留 35% 的藥水 "PercentOfInventoryRevivesToKeep": 20, //進行回收時,至少保留 20% 的復活石 "PercentOfInventoryBerriesToKeep": 10 //進行回收時,至少保留 10% 的漿果 }, |
- 主要是設定自動回收功能的判斷基準
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | "CustomCatchConfig": { "EnableHumanizedThrows": true, //是否啟用擬人丟擲,預設是 true "EnableMissedThrows": true, //是否開啟丟擲失誤,預設是 true "ThrowMissPercentage": 25, //丟擲失誤率為 25% "NiceThrowChance": 40, //丟擲表現為 Nice 的機率為 40% "GreatThrowChance": 30, //丟擲表現為 Great 的機率為 30% "ExcellentThrowChance": 10, //丟擲表現為 Excellent 的機率為 10% "CurveThrowChance": 90, //丟擲出現為 Curve 的機率為 10% "ForceGreatThrowOverIv": 90.0, //Iv 值高於 90%,強制丟擲表現為 Great "ForceExcellentThrowOverIv": 95.0, //Iv 值高於 95%,強制丟擲表現為 Excellent "ForceGreatThrowOverCp": 1000, //Cp 值高於 1000,強制丟擲表現為 Great "ForceExcellentThrowOverCp": 1500 //Cp 值高於 1500,強制丟擲表現為 Excellent "UseTransferFilterToCatch": true //是否啟用 Transfer Filter 來捕捉寶可夢,預設是 true }, |
- 主要是在模擬人類丟球時的準確度,不過在遇到滿足 IV/CP 條件時,會強制用較佳的拋球軌跡來提高捕獲率
1 2 3 4 5 6 7 8 9 10 11 12 | "PlayerConfig": { "DelayBetweenPlayerActions": 4000, //使用者動作延遲時間 "EvolveActionDelay": 20000, //進化寶可夢延遲時間 "TransferActionDelay": 5000, //傳送寶可夢延遲時間 "RecycleActionDelay": 1000, //回收物品延遲時間 "RenamePokemonActionDelay": 2000, //寶可夢更名延遲時間 "UseNearActionRandom": true, //隨機執行動作避免被判定為機器人 "RandomizeSettingsByPercent": 5, //上述設定時間有 5% 的變動值 "AutoFinishTutorial": false //是否自動完成新手任務 "SkipFirstTimeTutorial": false, //是否略過新手教學 "SkipCollectingLevelUpRewards": false }, |
- Necrobot2 在使用者操作設定中加入了合理延遲,主要就是把一些動畫時間給計算進來,不會像之前一樣,一瞬間執行多個項目,同樣是為了降低被判斷為機器人的機率
- 所謂的新手任務,說穿了就是給掛機使用者方便,省下了新腳色創立的前置動作,自動依照設定決定暱稱(已經有人用的暱稱會出現錯誤)、性別(男 Male & 女 Female)以及御三家寶可夢,不過必須要輸入英文,分別為 妙蛙種子 Bulbasaur、小火龍 Charmander 以及傑尼龜 Squirtle,暫時沒有提供跑開五次抓皮卡丘的功能
1 2 3 4 | "SoftBanConfig": { "FastSoftBanBypass": false "ByPassSpinCount": 1 }, |
- 使用 Pokemon-Go-Rocket-API 來解決被 Softban 時,機器人無法取得伺服器資料的問題
1 2 3 4 5 6 7 8 | "GoogleWalkConfig": { "UseGoogleWalk": true, //是否啟用 Google Walk,預設為 true "DefaultStepLength": 1.3, //預設步伐長度(公尺) "GoogleHeuristic": "walking", //移動方式,預設是 "walking" "GoogleAPIKey": null, //Google API Key "Cache": true //是否快取圖資,預設為 true "GoogleElevationAPIKey": null //Google Elevation API Key }, |
- 主要是透過 Google Maps API 來取得地圖與位置資訊,預設為開啟,但是需填入申請好的 API 金鑰
- 另外若無申請 API 金鑰,最多只能 2500 次從 Google Map Request 資料,超過之後只能選擇換 IP
- Google Maps API 所提供的旅行方式包含 driving (公路網)、walking (人行道)、bicycling (單車道) 以及 transit (大眾運輸),台灣地區的 Google Map 尚無有完整的單車路線,不建議使用
- 另外一個隱性的小缺點,就是圖資太正確了,只會沿著路徑行走,不會切西瓜
1 2 3 4 5 6 | "MapzenWalkConfig": { "UseMapzenWalk": false, "MapzenTurnByTurnApiKey": null, "MapzenWalkHeuristic": "bicycle", "MapzenElevationApiKey": null }, |
- 主要是透過 Mapzen API 來取得導航與位置資訊,目前只需要申請一組就可以使用 Turn-By-Turn 以及 Elevation Service,若是要啟用服務,請於取得金鑰後將 false 更改為 true,並用 “mapzen-XXX” 取代 null (API 申請教學)
- 目前 NecroBot2 支援 Mapzen 的旅行方式包含 Auto、bicycle 以及 pedestrian (步行)
錯誤訊息說明
1 2 | MapQuest Elevation Service response not reliable: 0, and will be blacklisted for one hour. Falling back to next elevation strategy: Random Elevation Service (Necrobot Default). |
Elevation
- NecroBot2 從網路上相關地圖服務網站取得經緯度資訊的優先順序為 Mapzen -> MapQuest -> Google -> Random
- Mapzen 的反應速度最快且準確度可以信任,若是有申請 API Key 並無每日 Request 上限
- MapQuest 目前開放給所有使用者使用,對於大部分使用者來說,回應資訊是可以信賴的
- Google Map 必須申請 API Key,不然有每日 Request 上限
- 當某個地圖回應資訊有錯時,Necrobot 會自動關閉對其請求一小時,上述錯誤訊息代表並未開啟 Mapzen 以及 Google Map,且 MapQuest 回應資訊有誤,所以切換至隨機定位
Navigation
- NecroBot2 對於導航模式的優先順序為 Google -> Mapzen -> Yours -> Default Walking
- 使用 Mapzen 是目前團隊最推薦的圖資服務
NecroBot2 自帶 GUI
Necrobot2 在 GUI 圖形使用者介面開發也費了不少心力,初期已 PokeEase 和 PokeEase Fork By Necrobot2 Team 作為主要維護界面,後期開始著開始建構基於前者的 Electron,呈現畫面風格越來越別緻,提供資訊也非常豐富,管理界面也越來越成熟,提供了許多單純靠文字界面不易達成的操作界面,目前圖形界面的主要功能分頁置於畫面底部,以下由左至右簡單說明用途。
- 此分頁主要作為帳號管理,使用者可以快速的在不同帳號間作切換,已目前官方態度跟處理方式,不建議長時間掛機
- 此分頁主要是機器人的移動軌跡和寶可夢遭遇情形,點擊右上角的 Journal,可以展開詳細的紀錄資訊
- 此分頁為區域資訊,透過 SyncData 的方式已角色所在區域的大範圍資訊,其中包含寶可夢出現位置、補給站與道館
- 此分頁為內嵌式的文字界面,如果不習慣,可以點擊畫面最上方的 Show Console 切換到傳統模式
- 此分頁為捕獲的寶可夢完整資訊,同時提供批次傳送、升級與進化功能
- 此分頁為包包管理界面,使用者可以隨時調整各物品的保存數量
- 此分頁為孵蛋器的管理界面,同時可追蹤孵蛋時間或者要孵哪顆蛋