Pharaoh-Maplestory est une collection d'outils pour MapleStory, qui contient un éditeur client, un navigateur de fichiers et le client lui-même. Il prend en charge les fichiers .wz (incluez GMS KMS CMS ).
La logique commerciale est écrite par Lua.
| Windows10 | Autres |
|---|---|

L'éditeur contient un MapleStory-FileSystem-Browser, afin que vous puissiez l'utiliser trouver une ressource et l'ajouter dans la scène du jeu

À côté, il prend en charge la liaison au script comme l'unité. afin que vous puissiez faire glisser votre propre script vers un jeu de jeu spécifique

Si vous souhaitez ajouter votre propre fonction, veuillez en savoir plus Nativeapi pour LUA dans le document.
Ces code de ce référentiel sont le script LUA. Le code C ++ sera mis à jour à l'avenir car ils sont si désordonnés maintenant.
Ce moteur comprend deux parties, l'une est la LUA qui est utilisée pour écrire des affaires et un éditeur-Plugin
Dans le cadre natif, il prend en charge la fonction de base du moteur tel que l'audio, les graphiques, etc.

Dans Lua Framework, il inclut tous les composants du moteur supérieur (GameObject, Scène, Sprite, autres composants d'interface utilisateur)


GameObject est un conteneur et un objet de base à jour, dessinable, transformable, en vedette, scriptable, sérialisable. C'est l'objet racine dans le moteur entier. Il a une connexion solide avec le moteur et l'éditeur
Sprite est un objet graphique 2D qui peut changer sa couleur, transformer (postion de rotation d'échelle, etc.)

Scène est également un conteneur, qui est responsable de la gestion de l'ensemble du jeu Business Logic et d'autres composants comme Sprite et UI. Vous pouvez le créer en utilisant l'éditeur et peut être commandé facilement.
L'interface utilisateur est l'interface utilisateur, ce sont des composants comme Button TextView EditText .
Le bouton implémente la logique du bouton MapleStory d'origine, vous pouvez donc ajouter facilement le bouton à partir des affirmations.
Le TextView met en œuvre le texte Rich-Text MapleStory en natif.

| Plate-forme | Fenêtre | Mac | Linux | Androïde | ios | Changer |
|---|---|---|---|---|---|---|
| Rendu de base | Fait (OpenGL 2.0) | - | - | Fait (OpenGL ES 2.0) | Fait (OpenGL ES 2.0) | - |
| Événement natif | Fait (GLFW3) | |||||
| Audio | Xaudio | - | - | Opensles | Ouvert | - |
| Système de fichiers | Fait | - | - | - | - | - |
| Simd | SSE | SSE | SSE | NÉON | NÉON | NÉON |
| Lua Wrapper | Programmation | |||||
| Éditeur | Programmation | |||||
| Liaison du script | Programmation | |||||
| Physique | Avenir | |||||
| Système de particules | Avenir | |||||
| Entreprise de jeu | Avenir |
L'objet matriciel est créé par natif car il implique un grand nombre de calculs.
-- create a zero matrix
local matrix = Matrix . new ()
-- or
local matrix = Matrix . new ({
1 , 0 , 0 , 0 ,
0 , 1 , 0 , 0 ,
0 , 0 , 1 , 0 ,
0 , 0 , 0 , 1
})
-- create an identity
local matrix = Matrix . identity ()
-- there are others apis for transform
function setTranslation ( x , y , z ) end
function setRotation ( Quaternion ) end
function setScale ( x , y , z ) end
function setOrthographic ( l , r , t , b , zNearPlane , zFarPlane ) end
-- get a inverse matrix
-- @ return a new matrix
function invert () end
-- matrix also support the mul operator
local m = Matrix . new () * Matrix . new ()
-- create a Quaternion
local q = Quaternion . new ()
-- or
local q = Quaternion . identity ()
-- set euler angle
function setEulerAngles ( x , y , z ) end
-- combine with matrix
local q = Quaternion . new ()
q : setEulerAngles ( x , y , z )
local rotationMatrix = Matrix . new ()
rotationMatrix : setRotation ( self . rotation ) -- get a wz-node under UI.wz/UIWindow.img/AdminClaim
-- @ return the WzNode which is a lua object
local node = WzFile . ui [ " UIWindow.img " ][ " AdminClaim " ][ " BtPClaim " ] local node = ......
-- create a sprite with given node
local sprite = Sprite . new ( node )
-- add into you scene
scene : addChild ( sprite )
-- parse the path resource
wz . flat ( string path ) -> table {
name -> WzNode ( lightuserdata ),
name2 -> WzNode ( lightuserdata )
.....
}
-- expand the rawPtr, get all sub node in it
wz . expand ( rawPtr ) -> table {
name -> WzNode ( lightuserdata ),
name2 -> WzNode ( lightuserdata )
.....
}
-- convert the current node into different data type
wz . toInt (@ lightuserdata rawPtr , default ) -> lua_number
wz . toReal (@ lightuserdata rawPtr , default ) -> lua_number
wz . toString (@ lightuserdata rawPtr , default ) -> lua_string
wz . toVector (@ lightuserdata rawPtr ) -> lua_number
Le composant audio est un moteur natif désigné pour jouer de la musique et de l'effet.
--- @param nodePath string
audio . playBGM ( nodePath )
--- @param node string or id ( which is pre-defined )
audio . playEffect ( node )
-- there are all pre-defined audio effects
audio . BUTTONCLICK ,
audio . BUTTONOVER ,
audio . SELECTCHAR ,
audio . GAMESTART ,
audio . SCROLLUP ,
audio . ATTACK ,
audio . ALERT ,
audio . JUMP ,
audio . DROP ,
audio . PICKUP ,
audio . PORTAL ,
audio . LEVELUP ,
audio . DIED ,
audio . INVITE ,
audio . BUY_SHOP_ITEM ,
audio . USE ,
audio . TRANSFORM ,
audio . QUEST_ALERT ,
audio . QUEST_CLEAR ,
audio . ENCHANT_FAILURE ,
audio . ENCHANT_SUCCESS ,
This file is part of the PharaohStroy MMORPG client
Copyright ?2020-2022 Prime Zeng
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http:www.gnu.org/licenses/>.