引用 | 编辑
弑血
2019-06-15 18:26 |
楼主
▼ |
||
x2
今天教学课程是:1.插件要写的的方向 2.跟要做些什么 &怎么做 p.s以上都(废话) 首先举个例子,我如果要弄一个zp感染模式出英雄好了, 首先第一步,要知道英雄什么条件出现? 简单来说 倒数完出僵尸后 可以用set_task 或者直接 function 呼叫自己内容 然而 方向 直接找出 生成僵尸语法后 下一段 添加自己新增的 可以参考用 //宣告g_players为33空间阵列&player_count为变数 new g_players[33], player_count; //以回圈方式检查1~32个玩家id内是否有什么 for (new i=1; i<33; i++) { // 判断不是僵尸才执行的内容&g_zombie[33]只是一个条件检查 每个版本僵尸变数阵列名称都不一样喔~ if (!g_zombie[ i ]) { //把玩家id代号以回圈i 导入g_player阵列中储存&player_count为阵列顺序代号 g_players[player_count] = i; //顺序代号 由0+1以此类推直到宣告的33-1=32最大数 player_count ++; } } //宣告 g_random = 1~10范围乱数 new g_random = random_num(1,10); // 10-8 = 2 & 以100%来算是20%比例执行以下内容 if (g_random > 8) { //宣告一个变数名hero,取得算出不是僵尸的人数id编号,再以随机方式取得id编号,至于为什么要-1 因为 由0开始+下去 最后一个大于 阵列人数+1的位子&-1只是为了让她不会出现所谓的阵列值空数。 new hero = g_players[random_num(0, player_count-1)]; //然后 hero 就可以拿去做你要的事情 例如~ //宣告32空间阵列 new name[32]; //取得hero使用者名称储存至name & sizeof name -1 为 最大使用宣告空间0~31范围 get_user_name(hero, name, sizeof name-1); client_print(0, print_center, "某某某 %s成为了英雄", name); 也可以给予武器之类的 一推有没有的设定 // 这段语法 要使用到fun的 include喔~ give_weapon(hero, "weapon_ak47"); } 以上教学 给予一些想学但是不知道 如何下手的人看一下 所谓的方向目的 还有 达成使用 另外 首先要先有一些程式基础~不然 后续还有很多 if else while for switch new static const return 之类的要学 x2
|
引用 | 编辑
Nailaz
2019-06-15 18:37 |
1楼
▲ ▼ |
比较想知道static 跟 new 的差异
自己理解是static宣告比较省空间 也就是使用完后就会自动释出空间 但是new应该也具同等效力吧 假如都同样宣告在一个function内的话 x0 |
引用 | 编辑
弑血
2019-06-15 18:43 |
2楼
▲ ▼ |
下面是引用 Nailaz 于 2019-06-15 18:37 发表的 : static 比较广泛使用在 区域函数内 new 通常用在 广域 然而两者放在广域 其实都是一样的效果... 主要区别在于 区域内 两者分别在于 一个会释放记忆体位置一个不会释放位置 new = 放在 区域内的话 会自己释放 = 0 static 放在 区域内 不会释放 会永久叠加占据记忆体空间 不会归0 简单来说就是 new 每次 定义新的值都是0开始 static 可以让定义的值不断叠加喔~ 在某方面static 比new 还要猛 ps.之前在测试2者差异的时候 用print去弄数据才发现这有趣的事 x0 |