引用 | 編輯
弒血
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 |