example
example

教程 去墙教程

Cata_a

论坛名人
管理成员
FiveM版主
论坛元老
高级用户
认证用户

前言​

首先我们要了解什么是“墙”,这个视频很好的解释了墙的原理以及“科学上网”和“梯子”如何绕开墙。

问:那么什么情况下需要去墙?
答:当界面出现显示混乱或无法交互时需要去墙。
问:去墙到底去的是什么?或者说什么东西被墙屏蔽了?
答:一些插件引用的国外前端库。

所以,FiveM圈子中大家经常说到的去墙就是让原本被GFW屏蔽的前端库可以正常访问。

常见的去墙方式有以下这几种:
  • 使用相同的国内源
  • 科学上网后把文件下载到插件内加载
  • 给所有玩家发一个梯子,挂着梯子玩(雾)

教程​

请注意,这需要你对HTML稍微有一点了解,如果没有的话可以去看这个教程。
https://www.runoob.com/html/html-intro.html

第一步:找到需要去墙的链接​

首先找到这个插件的HTML主页面文件,在资源清单(fxmanifest.lua/__resource.lua)中搜索ui_page,打开它后面目录对应的HTML文件。
搜索http,并逐个检查以下标签中的链接能否正常访问。
HTML:
<!-- CSS -->
<link href="http://example.com" rel="stylesheet">
<!-- JavaScript -->
<script src="https://example.com"></script>
上面只展示了最基础和必须的属性,如果你看到下面这样的标签,不用担心,它们的作用是一样的。
HTML:
<!-- CSS -->
<link href="http://example.com" rel="stylesheet" integrity="XXXX" crossorigin="anonymous">
<!-- JavaScript -->
<script src="https://example.com" integrity="XXXX" crossorigin="anonymous"></script>

第二步:替换为可以使用的链接​

如果你发现这个标签中的链接被墙了,可以选择下面任意一种方式,将它替换为可以使用的链接。
还记得上面展示的“integrity”属性吗?在替换为其他链接后,建议将它移除,防止哈希值验证失败导致无法加载。

方法一:使用相同的国内源​

优点:节省玩家和服务器的硬盘空间,方便快速
缺点:有可能会失效

首先我们需要找一个收录开源库的国内CDN代理,这里推荐两个我在用的:
https://www.staticfile.net/
https://www.bootcdn.cn/

搜索此项目的名称,如“jquery”;并选择与原来相同的版本,如“3.5.1”。复制链接并替换。
HTML:
<!-- 原始链接 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- Staticfile CDN 国内源 -->
<script src='https://cdn.staticfile.net/jquery/3.5.1/jquery.min.js'></script>

方法二:科学上网后把文件下载到插件内加载​

优点:永远不会失效
缺点:占用玩家和服务器的硬盘空间,操作麻烦

科学上网并在浏览器中打开此链接,Ctrl+S保存为文件,将文件复制到插件文件夹内你想要的位置,在资源清单中引入该文件。
HTML:
<!-- 原始链接 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- 本地 -->
<script src='./lib/jquery.min.js'></script>
文件夹结构
代码:
├─插件
│ ├─html
│ │ ├─lib
│ │ │ ├─jquery.min.js
│ │ ├─index.html
│ │ ├─fxmanifest.lua
资源清单
lua:
files {
'html/lib/jquery.min.js',
'html/index.html',
}

结语​

去墙教程到这里就结束了,有问题欢迎大家在评论区留言讨论
 
最后编辑:

Yann

站长
管理成员
GTAOS管理组
认证卖家
认证用户
本 月 名 人 榜 最 佳
感谢分享
 

KNA7022

用户
高级用户
认证用户
类似谷歌的字体文件怎么办呢,不去墙会导致某些符号变成口口
 

Cata_a

论坛名人
管理成员
FiveM版主
论坛元老
高级用户
认证用户
类似谷歌的字体文件怎么办呢,不去墙会导致某些符号变成口口
先尝试找国内源CDN,实在不行就下载到本地,和CSS、JavaScript一样
 

KNA7022

用户
高级用户
认证用户
先尝试找国内源CDN,实在不行就下载到本地,和CSS、JavaScript一样
好的我尝试一下我找到的
fonts.gstatic.com fonts-gstatic.proxy.ustclug.org
fonts.googleapis.com fonts.proxy.ustclug.org
ajax.googleapis.com ajax.proxy.ustclug.org
 

tsmjdz

新用户
认证用户
老哥,本地去墙那种方式 我有点问题想请教一下,
src=后面关于绝对路径和相对路径的问题,还有“”和‘’的问题是否有区别,
我自己去了一个,用替换CDN源的方式成功了,但是放本地就失败,不知道为啥。
 

Cata_a

论坛名人
管理成员
FiveM版主
论坛元老
高级用户
认证用户
老哥,本地去墙那种方式 我有点问题想请教一下,
src=后面关于绝对路径和相对路径的问题,还有“”和‘’的问题是否有区别,
我自己去了一个,用替换CDN源的方式成功了,但是放本地就失败,不知道为啥。
这个涉及到FiveM NUI和前端相关知识,三言两语讲不清楚。
后续有机会的话我准备做相关的文字/视频教程,可以先自己去了解一下NUI以及前端知识。
这里推荐看看这篇文章,重点看前四个网站,FiveM大部分的知识都可以通过这些渠道了解到。
 

tsmjdz

新用户
认证用户
这个涉及到FiveM NUI和前端相关知识,三言两语讲不清楚。
后续有机会的话我准备做相关的文字/视频教程,可以先自己去了解一下NUI以及前端知识。
这里推荐看看这篇文章,重点看前四个网站,FiveM大部分的知识都可以通过这些渠道了解到。
这样说吧,按照你的文件目录来说,比如html和js两个文件夹,他们在同一级目录下,我引入的时候写./*.js还是../*.js
 

Cata_a

论坛名人
管理成员
FiveM版主
论坛元老
高级用户
认证用户
这样说吧,按照你的文件目录来说,比如html和js两个文件夹,他们在同一级目录下,我引入的时候写./*.js还是../*.js
在HTML里写
HTML:
<script src='./js/xxx.js'></script>
在资源清单里写
lua:
files {
    'html/js/xxx.js',
}
 

Yann

站长
管理成员
GTAOS管理组
认证卖家
认证用户
本 月 名 人 榜 最 佳
这样说吧,按照你的文件目录来说,比如html和js两个文件夹,他们在同一级目录下,我引入的时候写./*.js还是../*.js
js和html文件夹是同一级目录的时候,使用..跳到相对路径的上一级目录,然后在选择js文件夹,再到目录下的所有js文件
这是html文件中引入文件的source=后的写法
JavaScript:
"../js/*.js"
 

Yann

站长
管理成员
GTAOS管理组
认证卖家
认证用户
本 月 名 人 榜 最 佳
老哥,本地去墙那种方式 我有点问题想请教一下,
src=后面关于绝对路径和相对路径的问题,还有“”和‘’的问题是否有区别,
我自己去了一个,用替换CDN源的方式成功了,但是放本地就失败,不知道为啥。
双引号和单引号没区别
 
顶部