搜尋

《Garry's Mod》Nexus External ESP V2 免費下載與安裝教學 透視、自動瞄準、連跳腳本設定指南

瀏覽數: 16 | 評論數: 0 | 收藏 0
關燈 | 提示:支援鍵盤翻頁<-左 右->
    組圖開啟中,請稍候......
發佈時間: 2025-12-16 22:31

正文摘要:

《Garry's Mod》Nexus External ESP V2 快速閱讀精華 🔧 工具核心: 一款基於 Python 的外部輔助工具,主打 ESP (透視) 功能,相對安全。🎯 主要功能: 視覺輔助: 玩家透視 (ESP)、骨架、血量、名稱、距離顯示。自動功能: 自動開槍 (Triggerbot)、自動連跳 (Bhop)。實用工具: 動態準心、被觀戰提示。 💻 安裝需求: 環境: 64 位元的 Gmod (Gmod x64)。語言: 安裝 Python。模組: dearpygui, pywin32, PyMeow。 ⚠️ 重要提醒: 工具內建的「寫入記憶體」功能 (如 Bhop) 可能被某些反作弊系統偵測,使用前請詳閱內文說明並自行評估風險。 本文章目錄.article-toc {  border: 1px solid #ddd;  padding: 15px;  background: #f9f9f9;  border-radius: 6px;  margin: 20px 0;  width: 95%;}.toc-title {  /* --- 以下是合併進來的 H2 樣式 --- */  font-size: 1.25em; /* 125% */  border-left: 5px solid #2A98DA;  border-radius: 2px;  padding: 5px 0px 5px 10px;  font-weight: bold;  margin: 0 0 15px 0; /* 調整了 margin,只留下方 15px */  color: #333;  line-height: 1.5;  background-color: #f8f8f8;  /* --- 樣式合併結束 --- */}.toc-list {  list-style: none;  padding-left: 0;}.toc-list li {  margin: 8px 0;}.toc-list a {  color: #2A98DA;  text-decoration: none;}.toc-list a:hover {  text-decoration: underline;}.back-to-top {  display: block;  margin-top: 10px;  font-size: 0.9em;  color: #666;}Nexus ESP V2 功能一覽document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#features'; 重要提醒:使用前必讀document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#risk_warning'; 安裝教學:一步一步帶你飛document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#install_guide'; - 遇到黑畫面怎麼辦?document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#install_guide_blackscreen'; 如何啟動與使用document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#usage_guide'; 功能實機展示document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#screenshots'; 腳本原始碼 🔽document.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#source_code'; 常見問題Q&Adocument.currentScript.previousElementSibling.href = location.href.split('#')[0] + '#faq'; 想在 Gmod 的世界裡當個先知,洞察敵人的一舉一動嗎?或是覺得自己的反應跟不上戰況,需要一點點小小的幫助?別擔心,這篇教學要跟大家分享的「Nexus External ESP V2」,就是一款專為 Gmod x64 版本設計的強大輔助工具。 這款工具是「外部」的,意思就是它像一個獨立的程式在旁邊輔助你,而不是直接修改遊戲主程式,理論上更難被偵測。從基本的玩家透視到自動開槍,功能應有盡有。接下來,我們會從安裝環境到啟動使用,手把手帶你完成所有設定! Nexus ESP V2 功能一覽 這款工具的功能相當全面,底下我們整理了幾個最核心的亮點: 全方位 ESP (透視): 這是它的招牌功能!你可以自由設定顯示方框、骨架、血量、玩家名稱、武器、距離等資訊。還能根據敵人是否可見、是否在穿牆 (Noclipping) 狀態來改變顏色,讓你對戰場資訊瞭若指掌。動態準心: 一個會變色的智慧準心。平時是綠色,當你瞄準到敵人時會變成紅色,如果開啟了自動板機,顏色還會變成藍色,讓你清楚知道攻擊目標。被觀戰提示: 有人在偷偷看你第一人稱視角嗎?這個功能會在畫面上方跳出提示,讓你不再當冤大頭。自動連跳 (Bhop): 兔子跳的神器,讓你能在地圖上高速移動。自動板機 (Triggerbot): 只要準心瞄到敵人就會自動幫你開火,而且還能設定是要「按住」連射還是「單點」連發,反應力瞬間點滿! 重要提醒:使用前必讀 🚨 風險聲明 🚨 雖然這是一款外部工具,但並非所有功能都是 100% 安全的。 單純讀取遊戲記憶體的功能(例如 ESP 透視、準心)在 Gmod 這類遊戲中,被偵測的風險極低。但是,像是 Bhop (連跳) 或 Triggerbot (自動開槍) 這類需要「寫入記憶體」來模擬操作的高風險功能,就可能被比較厲害的反作弊系統發現。工具介面中已將這些高風險功能預設關閉,需要你手動勾選同意條款後才能啟用。請務必了解其中風險,並自行承擔後果。 安裝教學:一步一步帶你飛 別被看起來複雜的步驟嚇到,只要照著下面的流程,很快就能搞定。這就像是幫你的電腦準備好執行這個工具需要的「語言環境」和「零件」一樣。 安裝 Python: 首先,你的電腦需要 Python 這個程式語言環境。直接到 Python 官網下載並安裝即可。記得在安裝時,勾選「Add Python to PATH」這個選項,會方便很多。 安裝必要的 Pip 模組: 安裝好 Python 後,我們要來裝幾個必要的「工具包」。 打開你電腦的「命令提示字元 (CMD)」或「Windows Terminal」,然後輸入並執行以下指令: pip install dearpygui, pywin32 【小知識】`pip` 是 Python 的套件管理工具,你可以把它想像成 Python 的 App Store,這個指令就是告訴電腦去下載 `dearpygui` 和 `pywin32` 這兩個工具包。 下載並安裝 PyMeow 模組: 這是最關鍵的核心模組。 前往 PyMeow 的發布頁面(這是一個 unknowncheats 的論壇帖子,裡面有 Github 連結)。在 Github 頁面中找到「Releases」區塊,下載最新版的 `.zip` 檔案(例如:`pyMeow-1.73.42.zip`)。將下載的 .zip 檔案解壓縮,然後在同一個資料夾內打開「命令提示字元」,輸入並執行以下指令來安裝(記得把檔名換成你下載的版本): pip install pyMeow-1.73.42.zip 建立腳本檔案: 在你的電腦上找個喜歡的地方,新增兩個檔案,並將文章下方的原始碼完整複製貼上: app.py (這是主程式)gui.py (這是圖形介面) 請確保這兩個檔案放在同一個資料夾底下。 遇到黑畫面怎麼辦? 如果你是 NVIDIA 或 AMD 的顯示卡用戶,啟動後若遊戲畫面變黑,可以嘗試以下設定: NVIDIA 用戶: 前往 NVIDIA 控制面板,將「OpenGL GDI 相容性」選項設定為「偏好相容性」。AMD 用戶: 在 AMD 軟體中,啟用「OpenGL 三重緩衝」選項。 如何啟動與使用 安裝都搞定了嗎?那就可以準備進遊戲實戰囉! 啟動遊戲: 先打開你的 Garry's Mod (x64),然後隨便加入一個伺服器。執行腳本: 回到你存放 `app.py` 和 `gui.py` 的那個資料夾,在資料夾的路徑列輸入 `cmd` 並按下 Enter,快速打開命令提示字元。接著輸入以下指令來啟動工具: py app.py 成功的話,你就會看到工具的設定介面跳出來,同時遊戲畫面中也會出現 ESP 特效了! 功能實機展示 口說無憑,直接來看看實際運作的畫面長什麼樣子吧! 腳本原始碼 🔽 app.py ```python import pyMeow as pm import dearpygui.dearpygui as dpg from gui import * import threading import win32api import json import ctypes class Offsets:     LocalPlayer = 0x9497f0     EntityList = 0x96b788     ViewMatrix = 0xac2568     ForceJump = 0xA388F0     Crosshair = 0x3700     BoneMatrix = 0x1A98     m_hObserverTarget = 0x2CC8     m_hActiveWeapon = 0x2940     Weaponname = 0x1D00     Playername = 0x3744     SteamID = 0x37C8 class Colors:     red = pm.get_color("#FF0000")     orange = pm.get_color("orange")     green = pm.get_color("#00FF00")     white = pm.get_color("white")     blue = pm.get_color("#0000FF")     light_blue = pm.get_color("#00FFFF")     hud = pm.get_color("#f5f5ff")     hud_fade = pm.fade_color(pm.get_color("black"), 0.6) class Entity:     def __init__(self, addr, mem, gmod):         self.wts = None         self.addr = addr         self.mem = mem         self.gmod = gmod         self.health = pm.r_int(self.mem, self.addr + 0xC8)         self.team = pm.r_int(self.mem, self.addr + 0xD4)         self.dormant = pm.r_int(self.mem, self.addr + 0xB4)         self.noclipping = hex(pm.r_int(self.mem, self.addr + 0x84))         self.visiblity = hex(pm.r_int64(self.mem, self.addr + 0x88))         self.pos = pm.r_vec3(self.mem, self.addr + 0x308)         self.bone_base = pm.r_int64(self.mem, self.addr + Offsets.BoneMatrix)         try:             self.name = pm.r_string(self.mem, self.addr + Offsets.Playername)             self.steamid = pm.r_string(self.mem, self.addr + Offsets.SteamID)             self.get_spectated_player = pm.r_uint(self.mem, self.addr + Offsets.m_hObserverTarget) & 0xFFF             self.active_weapon = pm.r_uint(self.mem, self.addr + Offsets.m_hActiveWeapon) & 0xFFF         except:             pass     def bone_pos(self, bone_id):         return pm.vec3(             pm.r_float(self.mem, self.bone_base + bone_id * 0x30 + 0x0C),             pm.r_float(self.mem, self.bone_base + bone_id * 0x30 + 0x1C),             pm.r_float(self.mem, self.bone_base + bone_id * 0x30 + 0x2C),         ) class Local:     def __init__(self, addr, mem, gmod):         self.wts = None         self.addr = addr         self.mem = mem         self.gmod = gmod         self.pos = pm.r_vec3(self.mem, self.addr + 0x308) def get_players():     gmod_exe = pm.open_process("gmod.exe")     client_dll = pm.get_module(gmod_exe, "client.dll")     players = []         for i in range(0, 128):         ent_addr = pm.r_int64(gmod_exe, client_dll["base"] + Offsets.EntityList + i * 0x20)         if ent_addr:             ent = Entity(ent_addr, gmod_exe, client_dll["base"])             try:                 if ent.name and "STEAM_" in ent.steamid:                     players.append((ent.name, ent.steamid))             except:                 pass     return players def start():     gui.init_menu()     threading.Thread(target=main, name='main', daemon=True).start()     dpg.start_dearpygui() def main():     if not pm.process_exists("gmod.exe"):         ctypes.windll.user32.MessageBoxW(0, "Please make sure that gmod is open. And that you are using the Chromium x64 branch.", "Gmod x64 not found.", 48)         os._exit(0)     gmod_exe = pm.open_process("gmod.exe")     client_dll = pm.get_module(gmod_exe, "client.dll")     engine_dll = pm.get_module(gmod_exe, "engine.dll")     materialsystem_dll = pm.get_module(gmod_exe, "materialsystem.dll")     pm.overlay_init("Garry's Mod (x64)", fps=60)     holding = False     while pm.overlay_loop():         if not pm.process_running(gmod_exe):             os._exit(0)         pm.begin_drawing()         if dpg.get_value('c_hud'):             pm.draw_rectangle_rounded(5, 5, 248, 30, 0.2, 4, Colors.hud_fade)             pm.draw_rectangle_rounded_lines(5, 5, 248, 30, 0.2, 4, Colors.white, 2)             pm.draw_text(f"Nexus ESP | {pm.get_fps()} fps", 12, 11, 24, Colors.hud)             texts = []             if dpg.get_value('c_box'):                 texts.append("ESP")             if dpg.get_value('c_tracer'):                 texts.append("Tracer")             if dpg.get_value('c_crosshair'):                 texts.append("Crosshair")             if dpg.get_value('c_bhop'):                 texts.append("Bhop")             if dpg.get_value('c_triggerbot'):                 if dpg.get_value('c_click_method') == "Hold":                     texts.append("Triggerbot (Hold)")                 else:                     texts.append("Triggerbot (Tap)")             start_x = 5             start_y = 37             spacing = 27             for i, text in enumerate(texts):                 y_offset = start_y + (i * spacing)                 pm.draw_rectangle_rounded(start_x, y_offset, pm.measure_text(text, 20) + 14, 24, 0.2, 4, Colors.hud_fade)                 pm.draw_rectangle_rounded_lines(start_x, y_offset, pm.measure_text(text, 20) + 14, 24, 0.2, 4, Colors.hud, 2)                 pm.draw_text(text, start_x + 7, y_offset + 4, 20, Colors.hud)         try:             local_player_addr = pm.r_int64(gmod_exe, client_dll["base"] + Offsets.LocalPlayer)         except:             continue         if local_player_addr:             view_matrix_base = pm.r_int64(gmod_exe, engine_dll["base"] + Offsets.ViewMatrix) + 0x2D4             view_matrix = pm.r_floats(gmod_exe, view_matrix_base, 16)             notif_offset = 5             for i in range(0, 128):                 ent_addr = pm.r_int64(gmod_exe, client_dll["base"] + Offsets.EntityList + i * 0x20)                 if ent_addr == local_player_addr:                     local_id = i                 if ent_addr > 0 and ent_addr != local_player_addr:                     ent = Entity(ent_addr, gmod_exe, client_dll["base"])                     try:                         if not dpg.get_value('c_onlyplayer') or "STEAM_" in ent.steamid:                             if dpg.get_value('c_spectate'):                                 if ent.get_spectated_player == local_id:                                     if not isinstance(ent.name, bytes) and ent.name:                                         name = f" Spectated by: {ent.name} "                                         text_width = pm.measure_text(name, 24)                                         x = pm.get_screen_width() // 2 - text_width // 2                                         pm.draw_rectangle_rounded(x, notif_offset, text_width, 30, 0.2, 4, Colors.hud_fade)                                         pm.draw_rectangle_rounded_lines(x, notif_offset, text_width, 30, 0.2, 4, Colors.white, 2)                                         pm.draw_text(name, x, notif_offset + 6, 24, Colors.hud)                                         notif_offset += 35                             if not dpg.get_value('c_hidedormant') or ent.dormant != -65536:                                 if ent.health > 0:                                     try:                                         with open("friends.json", "r", encoding="utf-8") as f:                                             friends = json.load(f)                                     except:                                         friends = []                                     if not dpg.get_value('c_onlyfriends') or ent.steamid in friends:                                         if dpg.get_value('c_maxdistance') != 0:                                             local = Local(local_player_addr, gmod_exe, client_dll["base"])                                             distance = pm.vec3_distance(local.pos, ent.pos)                                             if int(distance / 32) > dpg.get_value('c_maxdistance') and ent.steamid not in friends:                                                 continue                                         if dpg.get_value('c_entcolor') == "Unicolor":                                             if ent.steamid in friends:                                                 color = dpg.get_value('c_friends_colors')                                                 r, g, b = map(int, color[:3])                                                 hex_color = "#{:02X}{:02X}{:02X}".format(r, g, b)                                                 ent.color = pm.get_color(hex_color)                                             else:                                                 color = dpg.get_value('c_unicolor')                                                 r, g, b = map(int, color[:3])                                                 hex_color = "#{:02X}{:02X}{:02X}".format(r, g, b)                                                 ent.color = pm.get_color(hex_color)                                         else:                                             if dpg.get_value('c_entcolor') == "Visibility":                                                 if ent.visiblity != "0xffffffff":                                                     ent.color = Colors.red                                                     if dpg.get_value('c_hideinvisible'):                                                         continue                                                 else:                                                     if ent.noclipping != "0xff00":                                                         ent.color = Colors.orange                                                         if dpg.get_value('c_hidenoclipping'):                                                             continue                                                     else:                                                         if ent.steamid in friends:                                                             color = dpg.get_value('c_friends_colors')                                                             r, g, b = map(int, color[:3])                                                             hex_color = "#{:02X}{:02X}{:02X}".format(r, g, b)                                                             ent.color = pm.get_color(hex_color)                                                         else:                                                             ent.color = Colors.green                                                 if dpg.get_value('c_showinvisible'):                                                     if ent.visiblity == "0xffffffff":                                                         continue                                                 if dpg.get_value('c_shownoclipping'):                                                     if ent.noclipping == "0xff00":                                                         continue                                             elif dpg.get_value('c_entcolor') == "Team":                                                 color = ((ent.team * 137) % 256 , (ent.team * 53) % 256, (ent.team * 197) % 256)                                                 r, g, b = map(int, color[:3])                                                 hex_color = "#{:02X}{:02X}{:02X}".format(r, g, b)                                                 ent.color = pm.get_color(hex_color)                                             else:                                                 health = max(0, min(ent.health, 100))                                                 g = int(health * 2.55)                                                 r = 255 - g                                                 b = 0                                                 ent.color = pm.get_color("#{:02X}{:02X}{:02X}".format(r, g, b))                                         if dpg.get_value('c_esp_method') == "BonesPos (experimental)":                                             try:                                                 if pm.vec3_distance(ent.pos, ent.bone_pos(7)) < 100:                                                     local = Local(local_player_addr, gmod_exe, client_dll["base"])                                                     dist = pm.vec3_distance(local.pos, ent.pos)                                                     ent.wts = pm.world_to_screen(view_matrix, ent.pos, 1)                                                     head_pos = pm.world_to_screen(view_matrix, ent.bone_pos(7), 1)                                                     head = ent.wts["y"] - head_pos["y"]                                                     width = head / 2                                                     center = width / 2                                                     text_offset = 5                                                     if dpg.get_value('c_box'):                                                         pm.draw_rectangle(                                                             posX=head_pos["x"] - center,                                                             posY=head_pos["y"] - center / 2,                                                             width=width,                                                             height=head + center / 2,                                                             color=pm.fade_color(ent.color, 0.3),                                                         )                                                         pm.draw_rectangle_lines(                                                             posX=head_pos["x"] - center,                                                             posY=head_pos["y"] - center / 2,                                                             width=width,                                                             height=head + center / 2,                                                             color=ent.color,                                                             lineThick=1.8,                                                         )                                                     if dpg.get_value('c_skeleton'):                                                         bones = {                                                             'neck': 5,                                                             'shoulderRight': 9,                                                             'shoulderLeft': 14,                                                             'elbowRight': 10,                                                             'elbowLeft': 15,                                                             'handRight': 11,                                                             'handLeft': 16,                                                             'crotch': 0,                                                             'kneeRight': 19,                                                             'kneeLeft': 23,                                                             'ankleRight': 21,                                                             'ankleLeft': 25,                                                         }                                                         screen_positions = {}                                                         for name, index in bones.items():                                                             bone_pos = ent.bone_pos(index)                                                             if pm.vec3_distance(ent.pos, bone_pos) < 100:                                                                 screen_positions[name] = pm.world_to_screen(view_matrix, bone_pos, 1)                                                         connections = [                                                             ('neck', 'shoulderRight'),                                                             ('neck', 'shoulderLeft'),                                                             ('shoulderLeft', 'elbowLeft'),                                                             ('shoulderRight', 'elbowRight'),                                                             ('elbowRight', 'handRight'),                                                             ('elbowLeft', 'handLeft'),                                                             ('neck', 'crotch'),                                                             ('crotch', 'kneeRight'),                                                             ('crotch', 'kneeLeft'),                                                             ('kneeLeft', 'ankleLeft'),                                                             ('kneeRight', 'ankleRight'),                                                         ]                                                         skeleton_color = ent.color                                                         if dpg.get_value('c_box'):                                                             skeleton_color = Colors.white                                                         for a, b in connections:                                                             if a in screen_positions and b in screen_positions:                                                                 p1, p2 = screen_positions[a], screen_positions                                                                 pm.draw_line(p1["x"], p1["y"], p2["x"], p2["y"], skeleton_color, 1)                                                 else:                                                     local = Local(local_player_addr, gmod_exe, client_dll["base"])                                                     dist = pm.vec3_distance(local.pos, ent.pos)                                                     width = 48000 / dist                                                     center = width / -2                                                     centerfix = center / 2                                                     ent.wts = pm.world_to_screen(view_matrix, ent.pos, 1)                                                     text_offset = 5                                                     if dpg.get_value('c_box'):                                                         pm.draw_rectangle(                                                             posX=ent.wts["x"] + centerfix,                                                             posY=ent.wts["y"] - width,                                                             width=width / 2,                                                             height=width,                                                             color=pm.fade_color(ent.color, 0.3),                                                         )                                                         pm.draw_rectangle_lines(                                                             posX=ent.wts["x"] + centerfix,                                                             posY=ent.wts["y"] - width,                                                             width=width/2,                                                             height=width,                                                             color=ent.color,                                                             lineThick=1.8,                                                         )                                                                                                          if dpg.get_value('c_tracer'):                                                     pm.draw_line(                                                         startPosX=pm.get_screen_width() // 2,                                                         startPosY=pm.get_screen_height() // 2,                                                         endPosX=ent.wts["x"],                                                         endPosY=ent.wts["y"] - width,                                                         color=ent.color,                                                         thick=1.1,                                                     )                                                 if dpg.get_value('c_hp_text'):                                                     pm.draw_text(                                                         text=f"{ent.health}",                                                         posX=ent.wts["x"],                                                         posY=ent.wts["y"] + text_offset,                                                         fontSize=15,                                                         color=ent.color,                                                     )                                                     text_offset += 15                                                 if dpg.get_value('c_name'):                                                     if ent.name:                                                         pm.draw_text(                                                             text=ent.name,                                                             posX=ent.wts["x"],                                                             posY=ent.wts["y"] + text_offset,                                                             fontSize=15,                                                             color=ent.color,                                                         )                                                         text_offset += 15                                                 if dpg.get_value('c_weapon'):                                                     weapon_handle = pm.r_int64(gmod_exe, client_dll["base"] + Offsets.EntityList + (ent.active_weapon - 1) * 0x20)                                                     weapon_name = pm.r_string(gmod_exe, weapon_handle + Offsets.Weaponname)                                                     if not isinstance(weapon_name, bytes) and weapon_name:                                                         pm.draw_text(                                                             text=weapon_name,                                                             posX=ent.wts["x"],                                                             posY=ent.wts["y"] + text_offset,                                                             fontSize=15,                                                             color=ent.color,                                                         )                                                         text_offset += 15                                                 if dpg.get_value('c_distance'):                                                     pm.draw_text(                                                         text=f"{int(dist/32)} m",                                                         posX=ent.wts["x"],                                                         posY=ent.wts["y"] + text_offset,                                                         fontSize=15,                                                         color=ent.color,                                                     )                                                     text_offset += 15                                             except Exception as err:                                                 continue                                         else:                                             try:                                                 local = Local(local_player_addr, gmod_exe, client_dll["base"])                                                 dist = pm.vec3_distance(local.pos, ent.pos)                                                 width = 48000 / dist                                                 center = width / -2                                                 centerfix = center / 2                                                 ent.wts = pm.world_to_screen(view_matrix, ent.pos, 1)                                                 text_offset = 5                                                 if dpg.get_value('c_box'):                                                     pm.draw_rectangle(                                                         posX=ent.wts["x"] + centerfix,                                                         posY=ent.wts["y"] - width,                                                         width=width / 2,                                                         height=width,                                                         color=pm.fade_color(ent.color, 0.3),                                                     )                                                     pm.draw_rectangle_lines(                                                         posX=ent.wts["x"] + centerfix,                                                         posY=ent.wts["y"] - width,                                                         width=width/2,                                                         height=width,                                                         color=ent.color,                                                         lineThick=1.8,                                                     )                                                 if dpg.get_value('c_tracer'):                                                     pm.draw_line(                                                         startPosX=pm.get_screen_width() // 2,                                                         startPosY=pm.get_screen_height() // 2,                                                         endPosX=ent.wts["x"],                                                         endPosY=ent.wts["y"] - width,                                                         color=ent.color,                                                         thick=1.1,                                                     )                                                 if dpg.get_value('c_hp_text'):                                                     pm.draw_text(                                                         text=f"{ent.health}",                                                         posX=ent.wts["x"],                                                         posY=ent.wts["y"] + text_offset,                                                         fontSize=15,                                                         color=ent.color,                                                     )                                                     text_offset += 15                                                 if dpg.get_value('c_name'):                                                     if ent.name:                                                         pm.draw_text(                                                             text=ent.name,                                                             posX=ent.wts["x"],                                                             posY=ent.wts["y"] + text_offset,                                                             fontSize=15,                                                             color=ent.color,                                                         )                                                         text_offset += 15                                                 if dpg.get_value('c_weapon'):                                                     weapon_handle = pm.r_int64(gmod_exe, client_dll["base"] + Offsets.EntityList + (ent.active_weapon - 1) * 0x20)                                                     weapon_name = pm.r_string(gmod_exe, weapon_handle + Offsets.Weaponname)                                                     if not isinstance(weapon_name, bytes) and weapon_name:                                                         pm.draw_text(                                                             text=weapon_name,                                                             posX=ent.wts["x"],                                                             posY=ent.wts["y"] + text_offset,                                                             fontSize=15,                                                             color=ent.color,                                                         )                                                         text_offset += 15                                                 if dpg.get_value('c_distance'):                                                     pm.draw_text(                                                         text=f"{int(dist/32)} m",                                                         posX=ent.wts["x"],                                                         posY=ent.wts["y"] + text_offset,                                                         fontSize=15,                                                         color=ent.color,                                                     )                                                     text_offset += 15                                             except Exception as err:                                                 continue                     except Exception as err:                         continue         if dpg.get_value('c_crosshair'):             try:                 if dpg.get_value('c_triggerbot'):                     target = pm.r_int(gmod_exe, local_player_addr + Offsets.Crosshair)                     if target <= 128 and target != 0:                         color = Colors.blue                         if dpg.get_value('c_click_method') == "Hold":                             if not holding:                                 pm.mouse_down(button="left")                                 holding = True                         else:                             pm.mouse_click(button="left")                     else:                         color = Colors.light_blue                         if dpg.get_value('c_click_method') == "Hold":                             if holding:                                 pm.mouse_up(button="left")                                 holding = False                 else:                     target = pm.r_int(gmod_exe, local_player_addr + Offsets.Crosshair)                     if target <= 128 and target != 0:                         color = Colors.red                     else:                         color = Colors.green                                      pm.draw_text(                     text="+",                     posX=pm.get_screen_width() // 2 - 10,                     posY=pm.get_screen_height() // 2 - 18,                     fontSize=40,                     color=color,                 )             except Exception as err:                 continue         pm.end_drawing()         if dpg.get_value('blatantcheck'):             if dpg.get_value('c_bhop'):                 if win32api.GetAsyncKeyState(0x20) == 0:                     continue                 noclipping = hex(pm.r_int(gmod_exe, local_player_addr + 0x84))                 if noclipping == "0xff00":                     flag = pm.r_int(gmod_exe, local_player_addr + 0x440)                     if flag == 257 or flag == 263 or flag == 33025 or flag == 1280 or flag == 1281:                         pm.w_int(gmod_exe, client_dll["base"] + Offsets.ForceJump, 5)                     else:                         pm.w_int(gmod_exe, client_dll["base"] + Offsets.ForceJump, 4) if __name__ == "__main__":     gui = GUI()     start() ``` gui.py ```python import dearpygui.dearpygui as dpg import app import json import os FRIENDS_FILE = "friends.json" def enableblatant():     dpg.configure_item("c_triggerbot", enabled=True)     dpg.configure_item("c_click_method", enabled=True)     dpg.configure_item("c_bhop", enabled=True)     dpg.configure_item("blatantcheck", show=False) def bone_mode():     if dpg.get_value('c_esp_method') == "BonesPos (experimental)":         dpg.configure_item("c_skeleton", enabled=True)     else:         dpg.configure_item("c_skeleton", enabled=False, default_value=False) def load_friends():     if os.path.exists(FRIENDS_FILE):         with open(FRIENDS_FILE, "r") as f:             return json.load(f)     return [] def save_friends(friends):     with open(FRIENDS_FILE, "w") as f:         json.dump(friends, f, indent=4) def toggle_friend(sender, app_data, user_data):     steam_id = user_data     friends = load_friends()     if steam_id in friends:         friends.remove(steam_id)     else:         friends.append(steam_id)     save_friends(friends)     get_playerlist() def get_playerlist():     player_data = app.get_players()     friends = load_friends()     if dpg.does_item_exist("player_table"):         children = dpg.get_item_children("player_table", 1)         if children:             for child in children:                 dpg.delete_item(child)         for player_name, steam_id in player_data:             with dpg.table_row(parent="player_table"):                 dpg.add_text(player_name)                 dpg.add_text(steam_id)                 label = "Unfriend" if steam_id in friends else "Friend"                 dpg.add_button(label=label, callback=toggle_friend, user_data=steam_id) class GUI():     def init_menu(self) -> None:         dpg.create_context()         dpg.create_viewport(title="Nexus External ESP - V2", decorated=True, width=600, height=400)         with dpg.window(tag='w_main'):             with dpg.tab_bar():                 with dpg.tab(label='Visuals'):                     dpg.add_checkbox(label='Box ESP', tag='c_box', default_value=True)                     with dpg.tooltip("c_box"):                         dpg.add_text("Draws a box over players.")                     dpg.add_checkbox(label='Skeleton ESP', tag='c_skeleton', enabled=False)                     with dpg.tooltip("c_skeleton"):                         dpg.add_text("Draws player skeletons.\nIf the server has a badly made model, it will show a messed up skeleton.")                     dpg.add_checkbox(label='Tracer ESP', tag='c_tracer')                     with dpg.tooltip("c_tracer"):                         dpg.add_text("Draws tracer lines to players.")                     dpg.add_checkbox(label='HP', tag='c_hp_text', default_value=True)                     dpg.add_checkbox(label='Name', tag='c_name', default_value=True)                     dpg.add_checkbox(label='Weapon', tag='c_weapon', default_value=True)                     with dpg.tooltip("c_weapon"):                         dpg.add_text("Draws the name of the held weapon.")                     dpg.add_checkbox(label='Distance', tag='c_distance')                     dpg.add_checkbox(label='Crosshair', tag='c_crosshair', default_value=True)                     with dpg.tooltip("c_crosshair"):                         dpg.add_text("Dynamic crosshair.\n\nWhen you look at a player the crosshair turns red.\nIf you activate the triggerbot:\nthe crosshair will be blue, if you look\nat a player it will be dark blue.")                     dpg.add_text("")                     dpg.add_checkbox(label='Hide Dormants', tag='c_hidedormant')                     with dpg.tooltip("c_hidedormant"):                         dpg.add_text("Hide Dormant Players on the ESP.\n\nPlayers become dormant when they leave\nthe Potential Visibility Set on the server.\nThis can also exclude fake players on the ESP.")                     dpg.add_checkbox(label='Hide Invisible', tag='c_hideinvisible')                     dpg.add_checkbox(label='Hide Noclipping', tag='c_hidenoclipping')                     dpg.add_checkbox(label='Only Real Players', tag='c_onlyplayer', default_value=True)                     with dpg.tooltip("c_onlyplayer"):                         dpg.add_text("Show only entities with a SteamID.\n\nAllows you to hide entities that are\nnot real players.\nMust be unchecked if you want to do\ntesting with bots.")                     dpg.add_checkbox(label='Only Friends', tag='c_onlyfriends')                     dpg.add_checkbox(label='Only Invisible', tag='c_showinvisible')                     dpg.add_checkbox(label='Only Noclipping', tag='c_shownoclipping')                 with dpg.tab(label='Players'):                     with dpg.group(horizontal=True):                         dpg.add_button(label="Refresh", callback=get_playerlist)                         dpg.add_color_edit(default_value=(0, 255, 255), tag='c_friends_colors', label="Friend Color",display_type=dpg.mvColorEdit_uint8, no_inputs=True, no_alpha=True)                     with dpg.table(tag="player_table", header_row=True, borders_innerH=True, borders_outerH=True, borders_innerV=True, borders_outerV=True, resizable=True):                         dpg.add_table_column(label="Name")                         dpg.add_table_column(label="SteamID")                         dpg.add_table_column(label="Action")                 with dpg.tab(label='Blatant'):                     with dpg.group(horizontal=True):                         dpg.add_checkbox(label='Triggerbot', tag='c_triggerbot', enabled=False)                         with dpg.tooltip("c_triggerbot"):                             dpg.add_text("Clicks for you when you are hovering over a target.")                         dpg.add_radio_button(tag="c_click_method", items=['Hold', 'Tap'], default_value="Hold", horizontal=True, enabled=False)                         with dpg.tooltip("c_click_method"):                             dpg.add_text("Should the triggerbot hold the click or spam click.")                     dpg.add_checkbox(label='Bhop', tag='c_bhop', enabled=False)                     dpg.add_text("")                     dpg.add_text("Detected by some anticheats!", color=(240, 47, 28))                     dpg.add_checkbox(label='Enable writing to game memory and other sensitive features', tag="blatantcheck", callback=enableblatant)                     with dpg.tooltip("blatantcheck"):                         dpg.add_text("By default, Nexus External only lets you\nenable cheats that only read game memory,\nwhich is undetectable for a game like gmod.\n\nBy checking this box, you will be able to use\nother cheats that write to the game's memory,\ngood anticheats can detect this.")                                 with dpg.tab(label='Config'):                     dpg.add_checkbox(label='Notification when someone is spectating you', tag="c_spectate", default_value=True)                     with dpg.tooltip("c_spectate"):                         dpg.add_text("Show a message if someone is spectating you.")                     dpg.add_checkbox(label='HUD', tag="c_hud", default_value=True)                     with dpg.group(horizontal=True):                         dpg.add_text("ESP Method")                         dpg.add_radio_button(tag="c_esp_method", items=['EntityPos', 'BonesPos (experimental)'], default_value="Normal", callback=bone_mode)                     with dpg.group(horizontal=True):                         dpg.add_text("ESP Color")                         dpg.add_radio_button(tag="c_entcolor", items=['Unicolor', 'Visibility', 'Team', 'Health'], default_value="Visibility")                         dpg.add_color_edit(default_value=(0, 255, 0), tag='c_unicolor', display_type=dpg.mvColorEdit_uint8, no_inputs=True, no_alpha=True)                     with dpg.group(horizontal=True):                         dpg.add_text("Max ESP Distance")                         dpg.add_slider_int(min_value=0, max_value=1000, tag="c_maxdistance", default_value=0)                 with dpg.tab(label='About'):                     dpg.add_text("[Nexus External ESP]")                     dpg.add_text("Version: 2.2.0-U1")                     dpg.add_text(f"UnknownCheats version.")                     dpg.add_text("")                     dpg.add_text("© Calvineries / Calvin Honecker.")         with dpg.theme() as global_theme:             with dpg.theme_component(dpg.mvAll):                 dpg.add_theme_style(dpg.mvStyleVar_FrameBorderSize, 1, category=dpg.mvThemeCat_Core)                 dpg.add_theme_style(dpg.mvStyleVar_FramePadding, 20, 7 , category=dpg.mvThemeCat_Core)                 dpg.add_theme_style(dpg.mvStyleVar_ScrollbarSize, 20 , category=dpg.mvThemeCat_Core)         dpg.bind_theme(global_theme)         #dpg.show_style_editor()         dpg.setup_dearpygui()         dpg.show_viewport()         dpg.set_primary_window("w_main", True) ``` 以下廣告滑動後還有帖子內容var custom_call_MIR = function (params) {if ( params === null || params.hasAd === false ) {var divRowSide;for (let index = 0; index < ONEADs.length; index++) {if (ONEADs[index].pub.player_mode === "mobile-inread") {divRowSide = ONEADs[index].pub.slotobj;}}var ins = document.createElement('ins');ins.className = 'clickforceads';ins.setAttribute('style', 'display:inline-block;');ins.setAttribute('data-ad-zone', '18264');divRowSide.appendChild(ins);var js = document.createElement('script');js.async = true;js.type = 'text/javascript';js.setAttribute('src', '//cdn.holmesmind.com/js/init.js');js.onload = function(){console.log('[ONEAD MIR] ClickForce Loaded');};divRowSide.appendChild(js);}};var _ONEAD = {};_ONEAD.pub = {};_ONEAD.pub.slotobj = document.getElementById("oneadMIRDFPTag");_ONEAD.pub.slots = ["div-onead-ad"];_ONEAD.pub.uid = "1000509";_ONEAD.pub.external_url = "https://onead.onevision.com.tw/";_ONEAD.pub.scopes = ["spotbuy", "speed"];_ONEAD.pub.player_mode_div = "div-onead-ad";_ONEAD.pub.player_mode = "mobile-inread";_ONEAD.pub.queryAdCallback = custom_call_MIR;var ONEAD_pubs = ONEAD_pubs || [];ONEAD_pubs.push(_ONEAD);var truvidScript = document.createElement('script'); truvidScript.async = true; truvidScript.setAttribute('data-cfasync','false'); truvidScript.type = 'text/javascript'; truvidScript.src = '//stg.truvidplayer.com/index.php?sub_user_id=597&widget_id=3309&playlist_id=2381&m=a&cb=' + (Math.random() * 10000000000000000); var currentScript = document.currentScript || document.scripts[document.scripts.length - 1]; currentScript.parentNode.insertBefore(truvidScript, currentScript.nextSibling); Nexus External ESP V2_常見問題Q&A Q:為什麼我一定要安裝 Python? A:因為這個工具是用 Python 語言寫的。你可以把 Python 想像成一種特殊的語言,而這個工具就是用這種語言寫成的說明書。你的電腦需要先安裝 Python「翻譯機」,才能讀懂這份說明書並執行它。 Q:什麼是「外部」工具?這樣用起來比較安全嗎? A:外部工具指的是它作為一個獨立的程式在背景執行,透過讀取遊戲的記憶體來取得資訊,而不是直接把檔案注入或修改遊戲本身。一般來說,這種方式比「內部」工具更難被反作弊系統偵測到,尤其是對於那些只讀取數據的功能(如 ESP)。 Q:我執行後跳出「Gmod x64 not found」的錯誤訊息,該怎麼辦? A:這個錯誤代表工具找不到正在執行的 64 位元 Gmod 遊戲。請確認以下幾點: 你是否已經先啟動了 Garry's Mod 遊戲?你執行的 Gmod 版本是否為「x64」分支?如果不是,請到 Steam 的遊戲庫設定中切換。確定你是在進入伺服器後才執行腳本。 Q:Triggerbot (自動開槍) 的「Hold」跟「Tap」模式有什麼不一樣? A:「Hold」模式是指當你準心對到敵人時,工具會幫你「按住」滑鼠左鍵,適合全自動武器連射。「Tap」模式則是會幫你瘋狂「單點」滑鼠左鍵,適合半自動武器或需要快速點發的場合。 Q:如果我用了 Bhop 或 Triggerbot 這些高風險功能,真的會被封鎖帳號嗎? A:有這個可能性。這些功能需要修改遊戲記憶體中的數值來達成,行為模式比較明顯。如果伺服器有安裝比較嚴格的反作弊系統,就有可能偵測到這種異常操作。因此我們強烈建議,在使用這些功能前,你要清楚了解風險,並最好在比較不重要的帳號上測試。

回覆

Copyright (C) 2010-2020 夢遊電玩論壇

廣告合作:請直接聯繫我們,並附上您預刊登位置的預算。  

快速回覆 返回頂端 返回清單