Pharaoh-Maplestory عبارة عن مجموعة من الأدوات لـ MapLestory ، والتي تحتوي على محرر عميل ، ومتصفح الملفات والعميل نفسه. تدعم ملفات .wz (تضمين GMS KMS CMS ).
يكتب منطق العمل من قبل لوا.
| Windows10 | آحرون |
|---|---|

يحتوي المحرر على متصفح نظام فلستوري ، بحيث يمكنك استخدامه للعثور على مورد وإضافته إلى مشهد اللعبة

بجانبها ، تدعم المرتبط بالبرنامج النصي مثل الوحدة. لذلك يمكنك سحب البرنامج النصي الخاص بك إلى بعض gameObject

إذا كنت ترغب في إضافة وظيفتك الخاصة ، فيرجى قراءة المزيد من Nativapi لـ Lua تحت المستند.
تلك الكود في هذا المستودع هي نص LUA. سيتم تحديث رمز C ++ في المستقبل لأنها فوضوية للغاية الآن.
يتضمن هذا المحرك جزأين ، أحدهما هو LUA الذي يستخدم لكتابة الأعمال الأساسية و Plugin
في الإطار الأصلي ، يدعم وظيفة المحرك الأساسية مثل الصوت والرسومات ، إلخ

في Lua Framework ، يشمل جميع مكونات المحرك العلوي (GameObject ، المشهد ، العفريت ، مكونات واجهة المستخدم الأخرى)


GameObject هي حاوية وقابلة للتحديث ، قابلة للرسم ، قابلة للتحويل ، قابلة للتنفيذ ، قابلة للنص ، قابلة للتسلسل. إنه كائن الجذر في المحرك بأكمله. لديها اتصال قوي مع المحرك والمحرر
Sprite هو كائن رسومي ثنائي الأبعاد يمكنه تغيير لونه ، وتحويله (نشر دوران المقياس ، إلخ)

المشهد هو أيضًا حاوية ، وهي مسؤولة عن إدارة منطق أعمال اللعبة بأكمله ومكونات أخرى مثل Sprite و UI. يمكنك إنشائها باستخدام المحرر ويمكن التبديل بسهولة.
واجهة المستخدم هي واجهة المستخدم ، فهذه مكونات مثل Button TextView EditText .
يقوم الزر بتنفيذ منطق زر MapLestory الأصلي ، بحيث يمكنك إضافة زر من التأثيرات بسهولة.
تقوم TextView بتنفيذ نص MapLestory Rich في الأصلي.

| منصة | النوافذ | ماك | Linux | Android | iOS | يُحوّل |
|---|---|---|---|---|---|---|
| عرض أساسي | تم (OpenGL 2.0) | - | - | تم (OpenGL ES 2.0) | تم (OpenGL ES 2.0) | - |
| الحدث الأصلي | تم (GLFW3) | |||||
| صوتي | Xaudio | - | - | يفتح | منفتح | - |
| نظام الملفات | منتهي | - | - | - | - | - |
| سيم | SSE | SSE | SSE | نيون | نيون | نيون |
| غلاف لوا | progrssing | |||||
| محرر | progrssing | |||||
| ملزمة النص | progrssing | |||||
| الفيزياء | مستقبل | |||||
| نظام الجسيمات | مستقبل | |||||
| أعمال اللعبة | مستقبل |
يتم إنشاء كائن المصفوفة بواسطة Native لأنه ينطوي على عدد كبير من الحساب.
-- 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
مكون الصوت هو محرك أصلي يتم تأسيسه لتشغيل الموسيقى والتأثير.
--- @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/>.