C .
ODE
G
AMELET
# GLT One Paragraph of the game description goes here ## Getting Started ### Auth (Login) ```typescript // All action must wait until auth system is ready. CG.GLT.auth.onReady(user => { if(user.isLocalGuest()) { // not login yet } else { // logged in user } }); // auth event listener, triggered when auth user changed let authListener = CG.GLT.auth.onAuth(user => { if(user.isLocalGuest()) { // logged out } else { // logged in user } }); // auth event listener, triggered when validating a new auth action // a following onAuth event is expected. this.validatingListener = onAuthValidating(() => { // show loading animation }); ``` ### API The CG.GLT.api is responsible to communicate with glt.gamelet.online. CG.GLT.commands includes all comments to query/submit data from glt.gamelet.online. The commands has a function submit() that uses CG.GLT.api.submitCommand(), so most of the time, you don't need to call the api to submit. ```typescript CG.GLT.commands.scoreService.submitScore( 'challenge', // the name of the score to submit 10, // the score SubmitType.KEEP_HIGHEST, // submit only when the new score is greater than the one on server TimeRange.ALL // submit to all time-ranges (history and weekly) ) .submit(); // to receive the weekly high score list CG.GLT.commands.scoreService.listScores( 'challenge', // the name of the scores to get TimeRange.WEEKLY, // in which time range OrderType.HIGH_TO_LOW, // how to order the scores CG.GLT.api.lastUpdatedServerTimestamp, // tell the server which week to see 0, // start index 10, // how many to get (list: UserScoreList) => { // do something with the scorelist }, (error) => { // deal with error } ) ``` ## Authors **[Haskasu](/profile/113321052805704333314@google)**
# TwilightWarsLib A Top-down view shooting game framework. ## Getting Started These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. To start a .event ```typescript CG.TwilightWarsLib.initialize() .then(() => { CG.TwilightWarsLib.events.startEvents('test/test.events', 'arena'); }) ``` To manually setup the game: ```typescript CG.TwilightWarsLib.initialize() .then(() => let mapSource = 'test/test.twmap'; CG.Base.resourceManager.addAppSource(mapSource); CG.Base.resourceManager.load(() => { let mapResource = new CG.TWMap.resources.MapResource(); mapResource.importBase64(CG.Base.resourceManager.getText(mapSource)); mapResource.loadTextures(() => { CG.Base.pixi.initialize(600, 500); let game = new CG.TwilightWarsLib.games.Game(); CG.Base.pixi.root.addChild(game); game.initResources(mapResource); game.start(); console.log('tw game created'); let me = new CG.TwilightWarsLib.games.actors.Actor(game, 'me'); game.addActor(me, new MyActorController(me), 32, 100, 0, null); game.gameCamera.setFocus(me); game.interface.setMe(me); let ai = new CG.TwilightWarsLib.games.actors.Actor(game, 'ai'); ai.camp = CG.TwilightWarsLib.games.datas.Camp.CAMP2; ai.actorClip.headClip.clip.gotoAndStop(5); game.addActor(ai, new CG.TwilightWarsLib.games.actors.controllers.AIController(ai), 160, 300, 0, null); game.createStuff(null, 64 + 16, 128 + 16, CG.TwilightWarsLib.games.items.StuffInfo.getByCode('sword'), game.stuffManager.useNextStuffId(), true); }); }); }) ``` ## Versioning We use [SemVer](http://semver.org/) for versioning. ## Authors * **[Haskasu](/profile/Haskasu)** ## Acknowledgments * Hat tip to anyone who's code was used * Inspiration * etc
# CG.Base Provide tool kits that helps you fast build an app on Code.Gamelet. Key features include: 1. initialize [pixi.js](#pixi.init) environment 1. load and access resources that are imported via Code.Gamelet IDE 1. manage update functions that are called every frame 1. provide debug utilities ## Getting Started Follow the steps below to fast start an app with [PixiJS](#pixi.init). We will implement a box2d environment to demo the usage of Base. <a name="pixi.init"></a> ## Start with Pixi.js<a name="pixi.init"></a> ```typescript class App { constructor() { // initialize pixi CG.Base.pixi.initialize(600, 400); CG.Base.pixi.physicsDebugDraw.setActive(true); // make a physics wall var wall = CG.Base.physics.createPhysicsObject('wall', {type: 'static'}); wall.addEdge(new CG.Base.geom.Point(10, 300), new CG.Base.geom.Point(500, 330)); // make a dynamic physics ball var ball = CG.Base.physics.createPhysicsObject('ball', {type: 'dynamic'}); ball.addCircle(0, 0, 10, {friction: 0.1, density: 0.1, restitution: 0.3}); ball.setPosition(100, 10); } } new App(); ``` @see [Demo](/edit/Base_Start_with_PIXI) ## Load and play with Resources To load resources that are imported from IDE: ```typescript // tell resources what resources to load (using the alias names) CG.Base.resourceManager.addAppResource('Game1.button'); CG.Base.resourceManager.addAppResource('Game1.music'); // start loading CG.Base.resourceManager.load(() => { // all loaded callback // create button with the image "Game1.button" alias name var button = new CG.Base.pixis.interactive.Button(CG.Base.resourceManager.createPixiSprite('Game1.button', 20, 20)); // set the position of the button button.displayObject.position.set(100, 100); // add the button to pixi.root, so pixi can render the button CG.Base.pixi.root.addChild(button.displayObject); // add a click event listener button.on(CG.Base.pixis.interactive.Button.EVENT.CLICK, () => { // when the button is clicked, play sound with "Game1.music" alias name CG.Base.resourceManager.playSound('Game1.music') }); }); ``` @see [Demo](/edit/Base_Load_Resources) ## Manage update functions Take advantage of CG.Base.addUpdateFunction to make a function called every frame ```typescript class App { constructor() { CG.Base.pixi.initialize(600, 400); CG.Base.addUpdateFunction(this, this.update); } // this function will be called every frame(called 60 times per second normally) private update(deltaTime:number):void { // do something } } new App(); ``` @see [Demo](/edit/Base_Update_and_Delay_Func) You can call a function in the future by CG.Base.addDelayFunction ```typescript class App { constructor() { CG.Base.pixi.initialize(600, 400); // call this.delayAction in 1000 milliseconds(= one second) CG.Base.addDelayFunction(this, this.delayAction, 1000); } private delayAction():void { // do something } } new App(); ``` @see [Demo](/edit/Base_Update_and_Delay_Func) ## Interact with Keyboard Use CG.Base.keyboard package to interact with keyboard events. ```typescript export class App { constructor() { // make the window focused, so we can receive keyboard events. window.focus(); // initialize pixi CG.Base.pixi.initialize(600, 400); // tell resourceManager to load the resource 'Game1.button' CG.Base.resourceManager.addAppResource('Game1.button'); // load resources, and wait callback when resources are all loaded CG.Base.resourceManager.load(() => { // add keyboard event listener, when a key is pressed CG.Base.keyboardManager.on(CG.Base.keyboard.KeyboardManagerEvent.PRESSED, key => { // if the pressed key is space, we call this.createSprite() if (key == CG.Base.keyboard.Key.SPACE) { this.createSprite(); } }); }); } private createSprite(): void { // create a sprite with the image 'Game1.button' var sprite: PIXI.Sprite = CG.Base.resourceManager.createPixiSprite('Game1.button'); // set the position of the sprite sprite.position.set(CG.Base.utils.IntUtil.randomBetween(100, 500), CG.Base.utils.IntUtil.randomBetween(100, 300)); // add the sprite to pixi.root, so it can be rendered CG.Base.pixi.root.addChild(sprite); } } new App(); ``` @see [Demo](/edit/Base_PIXI_Keyboard) ## Debugging The best debug tool on browser is the [developer tools](https://developer.chrome.com/devtools) in Chrome (F12). To find your source code in developer tools, first open developer tools(F12), click "Sources" tab, and search the Network tree as below: > top => {projectCode} => gameFrame => code.gamelet.com => gassets => file/{projectCode}/src for example, if the projectCode is 'Game1', source code is located at > top => Game1 => gameFrame => code.gamelet.com => gassets => file/Game1/src ![Source Network Tree](https://code.gamelet.com/gassets/asset/Base/Base.networktree/networktree.png "Source Network Tree") ### Add Watch In addition to browser's debugging tools, CG.Base provides other useful tools. CG.Base.addWatch() adds objects or objects' properties to Watch panel in CG IDE. ```typescript export class App { constructor() { // initialize pixi CG.Base.pixi.initialize(600, 400); // tell resourceManager to load the resource 'Game1.button' CG.Base.resourceManager.addAppResource('Game1.button'); CG.Base.resourceManager.load(() => { // add the created sprite into Watch panel, the alias name in Watch panel is 'sprite' CG.Base.addWatch('sprite', this.createSprite()); }); // add this(App)'s 'time' property into Watch panel. The alias name for this property is 'now' CG.Base.addWatch('now', this, 'time'); } private createSprite(): PIXI.Sprite { // create a sprite with the image 'Game1.button' var sprite: PIXI.Sprite = CG.Base.resourceManager.createPixiSprite('Game1.button'); // set the position of the sprite sprite.position.set(CG.Base.utils.IntUtil.randomBetween(100, 500), CG.Base.utils.IntUtil.randomBetween(100, 300)); // add the sprite to pixi.root, so it can be rendered CG.Base.pixi.root.addChild(sprite); return sprite; } // a getter function, that works like a property of App object. get time(): number { return CG.Base.time(); } } new App(); ``` @see [Demo](/edit/Base_Add_Watch) ## Versioning We use [SemVer](http://semver.org/) for versioning. ## Links and Resources This library is running with the libraries below. * [Pixi.js](http://www.pixijs.com/) - 2D rendering engine * [API reference](http://pixijs.download/release/docs/index.html) * [Examples](http://pixijs.io/examples/) * [Pixi keyboard](https://github.com/Nazariglez/pixi-keyboard) - Keyboard utility * [Pixi sound](https://github.com/pixijs/pixi-sound) - Sound utility * [Pixi filters](https://github.com/pixijs/pixi-filters) - Filters Collections * [Pixi GafPlayer](https://github.com/mathieuanthoine/PixiGAFPlayer) - [GafMedia](https://gafmedia.com/) Player * [Liquidfun](http://google.github.io/liquidfun/) - Box2D based physics engine * [MD5](http://www.myersdaily.org/joseph/javascript/md5-text.html) - MD5 implementation by Joseph Myers ## Authors **Haska Su** - *Initial work*
# 光暈事件擴充 # 光暈資料:[光暈資料](https://discord.gg/ZEdGFDnthe) ## 本專案已進入慢速更新模式 ## 請幫忙評分以利範例文章推出(需先玩3分鐘):[我要遊玩3分鐘](https://tweventsalt.gamelet.online/play) [我要評分](https://gamelet.online/review/TWEventsAlt) ## 更新日誌:[CHANGELOG](https://tweventsalt.gamelet.online/) ## README - 部分功能需要用到監聽作業,請於事件最一開始執行一次監聽作業,參數空白或是填0即可。 - 如果想要讓你的專案開放點數購買功能,請留言(Links的地方)告知 ## Links - 同人陣範例檔:[我的同人陣](https://code.gamelet.com/edit/TWSample) - 同人陣功能示範(只是示範,不用認真玩):[愛的教育](https://twmission001.gamelet.online) - 同人相關問題可到以下地點詢問: - 留言板:[留言板](https://gamelet.online/user/111398298135310219180@google/board) - 討論區:[該專案的討論區](https://code.gamelet.com/discuss/p/TWEventsAlt/0) - 注意:在其他地方(談程式設計、談遊戲設計、discord)詢問,將會看情況回答 ## 事件功能: - 觸發:角色 - 觸發:角色攻擊 - 觸發:說話內容 - 觸發:角色受傷Alt - 觸發:武器道具 - 觸發:拾取武器道具 - 觸發:使用自創商店武器道具 - 檢查:取得盾牌屬性 - 觸發:地圖機關 - 觸發:石塊移動 - 觸發:變數 - 觸發:匯入變數 - 觸發:顯示 - 觸發:關閉彈出視窗 - 觸發:確認彈出視窗 - 檢查:角色 - 檢查:找出所有角色(隨機排列) - 檢查:找出所有角色 - 檢查:比對距離 - 檢查:面向角度 - 檢查:角色狀態Alt - 檢查:隨機取得演員代碼 - 檢查:區域內的角色數量 - 檢查:地圖 - 檢查:隨機取得可行走座標 - 檢查:取得TWLoc - 檢查:系統 - 檢查:取得現在時間 - 檢查:變數 - 檢查:取得數字部分 - 動作:角色 - 動作:發動武器攻擊 - 動作:角色裝備或移除武器道具 - 動作:角色發動技能 - 動作:玩家按空白鍵跳躍 - 動作:設定預設武器 - 動作:移動人物位置 - 動作:設定角色屬性[註1] - 動作:設定角色演員[支援部分開放式遊戲房:除自訂以外都支援] - 動作:思考模式 - 動作:思考間隔 - 動作:角色伺服器狀態 - 動作:角色暫停 - 動作:角色繼續 - 動作:新增角色Alt - 動作:補充彈藥 - 動作:玩家應用傷害特效 - 動作:進入技能狀態 - 動作:停止說話 - 動作:設定暱稱[註1] - 動作:給遊戲幣 - 動作:角色跳躍 - 動作:中毒 - 動作:角色死亡叫聲[註1] - 動作:武器道具 - 動作:新增武器道具 - 動作:設定武器道具屬性[註1] - 動作:放置可拾取道具Alt - 動作:移除武器道具 - 動作:設定武器技能[註1] - 動作:連結自訂商店武器道具[註1] - 動作:新增自創近距武器 - 動作:盾牌設定 - 動作:角色特效 - 動作:噴火[註1] - 動作:電擊[註3] - 動作:人物濾鏡 - 動作:角色著火 - 動作:角色衝擊波 - 動作:殘影 - 動作:集氣[註1] - 動作:自訂角色GAF特效 - 動作:血條[註1] - 動作:角色火箭 - 動作:角色圓形範圍 - 動作:角色影分身[註1] - 動作:角色散發粒子 - 動作:角色光彈[註1] - 動作:角色散發光環[註1] - 動作:角色進度條 - 動作:腳印[註1] - 動作:角色中箭[註3] - 動作:角色反衝箭 - 動作:擊退 - 動作:角色居合斬 - 動作:角色波動拳 - 動作:人物天火 - 動作:角色武器濾鏡 - 動作:名字條[註1] - 動作:集氣濾鏡[註1] - 動作:技能條 - 動作:地圖特效 - 動作:衝擊波 - 動作:震地[註3] - 動作:噴氣[註1] - 動作:煙霧[註1] - 動作:爆炸[註1] - 動作:自訂地圖GAF特效 - 動作:快跳文字[註1] - 動作:煙火[註1] - 動作:龍波[支援部分開放式遊戲房:出現位置、路徑、大小、每格停留時間] - 動作:火箭 - 動作:定時炸彈 - 動作:真氣風暴[支援部分開放式遊戲房:除大小以外都支援] - 動作:濺起水花[註1] - 動作:揚起塵土[註1] - 動作:圓形範圍 - 動作:散發粒子 - 動作:散發光環[註1] - 動作:進度條 - 動作:光印[支援部分開放式遊戲房:除濾鏡以外都支援] - 動作:天箭[註1] - 動作:反衝箭 - 動作:任務流程 - 動作:可使用的武器道具[註1] - 動作:任務完成Alt - 動作:完成任務章節Alt - 動作:自動上傳角色分數[註1] - 動作:死後自動觀戰[註1] - 動作:畫面特效 - 動作:畫面震動[註1] - 動作:畫面色調[註1] - 動作:畫面濾鏡 - 動作:錐形視界[註1] - 動作:畫面遮色 - 動作:畫面遊戲結束 - 動作:顯示 - 動作:彈出確認視窗 - 動作:更新文字 - 動作:更新顯示物件 - 動作:彈出遊戲通知 - 動作:彈出選項視窗 - 動作:彈出遊戲錯誤通知 - 動作:彈出字串輸入視窗 - 動作:顯示可拖曳面板 - 動作:顯示遊戲倒數 - 動作:顯示商店 - 動作:前置作業 - 動作:監聽作業 - 動作:攝影機 - 動作:觀戰模式 - 動作:縮放玩家視野 - 動作:地圖 - 動作:新增可行走座標[註1] - 動作:新增洞[註1] - 動作:靜態物件 - 動作:地圖機關 - 動作:告示牌[註1] - 動作:新增可推石塊 - 動作:新增蠋火 - 動作:新增噴火孔[註1] - 動作:新增旋轉斧 - 動作:新增飛箭機關 - 動作:變數 - 動作:延遲設定變數[註1] - 動作:匯出變數 - 動作:匯入變數 - 動作:獲取外部變數 - 動作:儲存區域變數 - 動作:物件特效 - 動作:物件震動[註1] - 動作:物件標示箭頭 - 動作:物件震盪[註1] - 動作:黑科技 - 動作:斷線 - 動作:關閉視窗 - 動作:視窗當機 - 動作:系統 - 動作:執行光暈事件表 - 動作:取得IPv4位址 - 動作:嘗試關閉視窗時顯示警告 - 動作:音樂 - 動作:播放音樂 - 動作:停止音樂 - 動作:靜音官方音樂 - 動作:Cutting Edge - 動作:Add Green Dragon Crescent Blade[不支援開放式遊戲房] - 動作:多媒體 - 動作:網頁多媒體 - 動作:事件 - 動作:設定事件JSON - 動作:天啟 - 動作:地裂 - 動作:洪水 - 動作:挖寶 - 動作:GIF - 動作:新增GIF - 動作:移除GIF - 動作:角色GIF - 動作:地圖GIF - 動作:播放GIF - 動作:停止GIF ### 可能不支援開放式遊戲房原因: - 註1:未同步,後來的玩家看不到該特效,但在該玩家進來後之後執行的動作當然可以看到。所以假如是短暫的動作(例如震地這種1、2秒內做完的動作),影響不大。 - 註2:同註1,且之後將會支援(預定施工項目) - 註3:同註1,此部分功能為TwilightWarsLib提供,需要小哈片刻更新才會支援 ## 額外功能 - 設定商店道具武器狀態: - 請在你的專案的README.md內加上: - ※setItemStatus:※§itemCode§AAA※§itemStatus§BBB※§end§ - AAA為道具武器代碼 - BBB為狀態:dev,disabled,hidden,pub,pubToOwner - 可選取該文字,然後按Ctrl + / 來隱藏文字 - 範例:※setItemStatus:※§itemCode§TwilightWarsLib.grenadeBomb※§itemStatus§hidden※§end§ - 設定玩家勳章: - 請在你的專案的README.md內加上: - ※setPlayerBadge:※§username§AAA※§badgeCode§BBB※§badgeSet§CCC※§note§DDD※§end§ - AAA為玩家ID - BBB為勳章代碼 - CCC為設定:award,remove - DDD為註記 - 可選取該文字,然後按Ctrl + / 來隱藏文字 - 範例:※setPlayerBadge:※§username§haskasu※§badgeCode§kills10k※§badgeSet§award※§note§congratulation!※§end§ - 提交玩家分數: - 請在你的專案的README.md內加上: - ※submitPlayerScore:※§username§AAA※§scoreKey§BBB※§score§CCC※§note§DDD※§end§ - AAA為玩家ID - BBB為分數代碼 - CCC為提交的分數 - DDD為註記 - 可選取該文字,然後按Ctrl + / 來隱藏文字 - 範例:※submitPlayerScore:※§username§haskasu※§scoreKey§kills※§score§3000※§note§congratulation!※§end§ - 停權: - 請在你的專案的README.md內加上: - ※suspendPlayer:※§username§AAA※§days§BBB※§suspendSet§CCC※§note§DDD※§end§ - AAA為玩家ID - BBB為天數 - CCC為設定:suspend,unsuspend - DDD為註記 - 可選取該文字,然後按Ctrl + / 來隱藏文字 - 範例:※suspendPlayer:※§username§haskasu※§days§3※§suspendSet§unsuspend※§note§congratulation!※§end§ - 玩家登入紀錄: - 本模組提供作者在dev mode查看玩家登入紀錄,只要執行專案即可在console看到(F12 -> Console) - 設定最大Fps: - 請在你的專案的README.md內加上: - ※setMaxFps:※§maxFps§AAA※§end§ - AAA為最大Fps - 可選取該文字,然後按Ctrl + / 來隱藏文字 - 範例:※setMaxFps:※§maxFps§1000※§end§ ## Versioning - We use [SemVer](http://semver.org/) for versioning. ## Authors - **[hyper_code_gamelet](https://code.gamelet.com/profile/hyper_code_gamelet)** ## Acknowledgments - Hat tip to anyone who's code was used - Inspiration - etc
# PixiGif Add [GIF](https://en.wikipedia.org/wiki/GIF) 89a (animated GIF) support for pixi.js. ## Getting Started Add GIF image alias to resourceManager as regular resources, and create a GifSprite by CG.PixiGif.createGifSprite(); ```typescript let resourceAlias = 'PixiGif.anim'; CG.Base.resourceManager.addAppResource(alias); CG.Base.resourceManager.load(() => { CG.Base.pixi.initialize(300, 300); // create a GifSprite, attach to pixi.root and play the animation let sprite = CG.PixiGif.createGifSprite(resourceAlias); CG.Base.pixi.root.addChild(sprite); sprite.play(); }); ``` You can setup custom sequences by any combination of frames. ```typescript let sprite = CG.PixiGif.createGifSprite(resourceAlias); sprite.addSequence('jump', [1,3,5]); // define a sequence named jump sprite.setSequence('jump', true); // set jump as the current sequence, and play ``` You can listen to events from GifSprite ```typescript let sprite = CG.PixiGif.createGifSprite(resourceAlias); sprite.on('frameChanged', (sp) => console.log('the frame is just changed')); sprite.on('complete', (sp) => console.log('the animation is complete and stopped')); sprite.on('play', (sp) => console.log('just starts playing the animation')); sprite.on('stop', (sp) => console.log('the animation is stopped')); sprite.on('end', (sp) => console.log('the animation plays to the end of the sequence')); ``` #### References - [GIF reader by Dean McNamee](https://github.com/deanm/omggif) - [GIF Format](http://www.onicos.com/staff/iz/formats/gif.html)
# CgEventsLib The engine of CgEvents. CgEvents is a great way to build your own games with with a CG.built-in editor. ## Live Demo <a href="cg://source/test/physics.events" class="mat-raised-button mat-primary">Open Demo Events Sheet</a> ## Concept The engine takes a *.events file to run. The .events file is an encoded json which contains a config field and a events field. ```json { config: { stage: { width: "number", height: "number", resolutionPolicy: "showAll" | "exactFit" | "fixedWidth" | "fixedHeight" | "origin", alignHorizontal: "left" | "center" | "right", alignVertical: "top" | "middle" | "bottom" } }, events: [ { id: "string", triggers: [], checks: [], actions: [] }, ... ] } ``` Yon can edit the json with CG.built-in editor to control all your game events. ## How Events Work Each event contains a TRIGGER, some CHECKS, and some ACTION. The event flow works like this: 1. The TRIGGER of the event is triggered by the engine (keyboard pressed, event over, or maybe the hero collides with an enemy) 1. Once the trigger is triggered, the engine then goes check the CHECKS. 1. If all CHECKS pass, the engine executes all the ACTIONS in the event. ## Getting Started ```typescript let manager = new CgEventManager(); manager.importFromSource('CG.YourProject/yourGame.events') .then(() => manager.preload()) .then(() => manager.start()) ; ``` ## Versioning We use [SemVer](http://semver.org/) for versioning. ## Authors * **[Haskasu](/profile/Haskasu)**
# TwilightWarsEventsExp 本專案為光暈戰記的擴充模組,目前主要是在 **[TwilightWarsEvents](/edit/TwilightWarsEvents)** 的基礎之上,添加一些小東西。 希望未來自己程式的能力提升之後,也可以自己新增一些已經可以做,但官方模組還沒有出來的動作。 本模組並不會覆蓋原有的動作、檢查,所有本模組新增的檢查、動作等,都會被整合在**光暈戰記 / 擴充包**內,且不會新增任何跟光暈無關的檢查或動作,希望是一個純淨的光暈模組,跟光暈無關的相關事件,有需要的話會在 **[CgEventsExp](/edit/CgEventsExp)** 做更新。 本專案開放查詢原始碼,所有的檢查、動作,皆有在本專案的 **Test** 資料夾內做實際範例,歡迎自行查看使用方法,也歡迎自行進入程式區內,看各個檢查、動作是如何完成。 本人希望弄一個可以讓大家互相交流,一起維護,甚至更新的這麼一個光暈同人模組,我覺得這樣共同成長,才會讓嘎母變得更成熟,所以如果你有什麼好想法,也都歡迎提供給我。 另外個人創了一個第三方的 **[嘎母討論區(Discord)](https://discord.gg/hZKQzRfPJM)** ,主要是希望大家有一個好的交流平台,可以一起討論一些設計,除了光暈,還有其他非光暈的專案等等,甚至是能夠一起合作,讓作者們有機會推出更多優質的作品。 ## 動作 - 角色 - 新增角色 - 角色說話 - 清除角色對話 - 角色持有金幣 - 取得角色屬性 - 角色發動攻擊 - 角色跳至定點 - 取得角色身體動畫 - 設定角色身體動畫 - 移動角色位置 - 任務流程 - 任務完成 - 任務失敗 - 特效 - 角色 - 初始人物色調 - 技能 - 光彈特效 - 地圖 - 場景色調 - 地圖 - 視野縮放 - 武器道具 - 新增武器道具 - 地圖 - 取得滑鼠相對位置 - 增加可走區域 - 地圖機關 - 新增燭火 - 系統 - 離開遊戲 - 下一場遊戲 - 執行光暈事件表 ## 檢查 - 角色 - 角色位置 - 角色數值比較 - 人物面向 - 地圖 - 可行走座標 - 滑鼠位置 ## 觸發 - 角色 - 角色進入戰場 - 角色死亡 ## 作者 **[cook1470](/profile/cook1470)** ### **[More modes](/profile/64897095@github)**
# 簡化版的光暈Lib,並附有中文解釋! ## Getting Started: 1.Load this module. 2.Copy the following code and paste on your project: import Action = CG.TWLibEasyEdition.Gamecode.Action; import Check = CG.TWLibEasyEdition.Gamecode.Check; import Sever_GLT = CG.TWLibEasyEdition.Gamecode.Sever_GLT; 3.See https://code.gamelet.com/view/TWSampleEZlife/0.0.22 for some samples. ## 目前擁有的功能: 遊戲設定 - 地圖 - 遊戲模式 - 單房間最大玩家上限 - 玩家血量 - 玩家生命數 - 玩家聲望 - 參與陣營 事件 - 延遲 檢查 - 人物自訂按鍵 - 人物是否活著 - 人物屬性狀態(集氣狀態、出生階段狀態、跳躍狀態) - 人物是否是NPC - 人物是否是玩家 - 人物是否正在移動 - 人物是否正在切換武器 - 人物是否正在裝填子彈 - 人物是否正在攻擊 - 人物是否可被擊中[傷害類型] - 人物重量 - 人物位置 動作 - 新增角色[陣營、出生點、延遲出現、最大血量、重量、行為、演員、角色型態、分數、淡入時間、定身時間、面向角度、武器、預設武器] - 設定人物屬性(名字、面向角度、團隊號碼、聲望、視野範圍、活動範圍、重量、角色大小、角色氣量、演員、最大血量、最小血量、目前血量) - 新增武器道具[種類、位置] - 角色說話 - 播放音效 - 角色裝備武器 - 人物死亡 - 發動武器攻擊 - 人物消失[消失動畫長度] - 人物特效(閃光[威力、是否顯示"?"特效、實際遮色時間長度、顏色]、跳出驚嘆號、噴火) - 移動人物位置 - 人物減血[傷害者、傷害值、傷害類型] - 人物發動技能 - 人物按空白鍵跳躍 - 人物跳躍[最小速度、最大速度、初始跳高速度、閃避率、耗氣量] - 設定預設武器 - 任務暫停 - 任務繼續 - 畫面特效(畫面遮色[亮度、對比、飽和、色調、畫面震動]) - 地圖特效(爆炸、震地) - 重設人物血量 - 攝影機焦點 - 攝影機焦點人物 - 任務完成 - 地圖機關(噴火孔、旋轉斧) - 人物走至定點 - 啟動計時器 - 靜態物件(新增(地板層、地板層(自訂)、天空層、天空層(自訂))、移除) 動作2 - 設定人物屬性2(演員(自訂)) - 畫面特效2(浮雕、膨脹與收縮、陰極射線管) - 地圖機關(移除地圖機關) Sever/GLT - 顯示商店 - 顯示背包 - 獲得道具武器 - 消耗道具武器 - 頒發勳章 - 上傳遊戲分數 - 增加遊戲幣 ## Authors CGpara
ⒸCode.Gamelet.com | Privacy Policy | Terms of Service