Jump to content

x[ إستفسار ]x كيفية حفظ التيمر اذا تم عمل رستارت للمود


Recommended Posts

اعتقد والله اعلم مب متأكد من كلامي, ان التايمر بملف سيرفر ينحفظ يعني ما يعيد من اول,

ع العموم تقدر تحفظ الوقت بعدة طرق داتا اواكاونت داتا او اكس ام ال او اس كيو ال ...

Link to comment
اعتقد والله اعلم مب متأكد من كلامي, ان التايمر بملف سيرفر ينحفظ يعني ما يعيد من اول,

ع العموم تقدر تحفظ الوقت بعدة طرق داتا اواكاونت داتا او اكس ام ال او اس كيو ال ...

ما المشكلة انا مش عارف استخدم ولا طريقة من دي غير كمان عايز طريقة متكنش فيها لاج

لو سمحت

Link to comment
لو سمحتم انا معايا مود مخالفات شغال زي الفل

عايز اعمل فيه لما اعطي حد مخالفة يتعمل تيمر

الحكاية سهله

لاكن ازاي اخلي التيمر ينفحظ لما المود يرستر

setElementData 
getElementData 
  

Link to comment
setElementData 
getElementData 
  

ما ينفع المنت داتا !!

استخدم

getTimerDetails 
executeSQLQuery 

setTimer( 
    function() 
        setElementData(resourceRoot,'Time',getTimerDetails ( theTimer )) 
    end, 
800,0) 
  

تحط داتا ع الريسورس ، والريسورس اذا سويت له ريستارت

ما تروح الداتا ؟

Link to comment

تحط داتا ع الريسورس ، والريسورس اذا سويت له ريستارت

ما تروح الداتا ؟

الداتا بتحطها على الاعب

حسب صاحب الموضوع كل لاعب له تايمر خاص فيه ، ولما تسوي ريستارت للمود الداتا ما راح يروح ^^

Link to comment
  • Moderators

:lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol::lol:

قلت نكتة انا عشان قاعد تضحكـ ولا كيف ؟

بعدين بالنسبة للـ SQL

عشان يحفظ التايمر لو خرج اللاعب من السيرفر !

مايحتاج تستخدم ( الاس كيو ال ) بما ان صاحب الموضوع قال ابي الوقت مايروح عند عمل ريستارت

فـ يقدر يستخدم الداتا وطبعا ( الاس كيو ال ) افضل بكثير عشان تضمن الوقت مايروح

Link to comment

set/get/removeSQLData

وظيفة مفيدة تسهل عملية استخدام قواعد البيانات

setSQLData(string data_name, string data_value) 
getSQLData(string data_name) 
removeSQLData(string data_name) 

( string ) قيمة الداتا تقبل السلسة النصية فقط

( tostring ) لتحويل الارقام قم باستخدام

( toJSON, fromJSON) JSON لتحويل الجداول استخدم دوال الـ

Code :

sql = executeSQLQuery 
sql "CREATE TABLE IF NOT EXISTS string_data(data_name TEXT, data_value TEXT)" 
function setSQLData(data, value) 
    assert(type(data) == "string", "Bad Argument @setStringData #1 [string expect, got "..type(data).."]") 
    assert(type(value) == "string", "Bad Argument @setStringData #2 [string expect, got "..type(value).."]") 
    local query = sql("SELECT * FROM string_data WHERE data_name=?", data) 
    if query and type(query) == "table" and #query == 1 then 
        sql("UPDATE string_data SET data_value=? WHERE data_name=?", value, data) 
    else 
        sql("INSERT INTO string_data(data_name, data_value) VALUES(?, ?)", data, value) 
    end 
    return true 
end 
  
function getSQLData(data) 
    assert(type(data) == "string", "Bad Argument @getStringData #1 [string expect, got "..type(data).."]") 
    local query = sql("SELECT data_value FROM string_data WHERE data_name=?", data) 
    return query and type(query) == "table" and #query == 1 and query[1]["data_value"] 
end 
  
function removeSQLData(data) 
    assert(type(data) == "string", "Bad Argument @removeSQLData #1 [string expect, got "..type(data).."]") 
    return sql("DELETE FROM string_data WHERE data_name=?", data) 
end 

Example :

setSQLData("money"..getPlayerSerial(player), tostring(getPlayerMoney(player))) -- نقوم بوضع داتا على سريال الاعب وقيمتها فلوس الاعب 
outputChatBox(getSQLData("money"..getPlayerSerial(player)) or "none") -- كتابة بالشات قيمة الداتا 
removeSQLData("money"..getPlayerSerial(player)) -- حذف الداتا 

+


Link to comment
ما يحتاج نزود بالكلام يعني واضحة

CPU عشان يحفظها بكل الاحوال سواء طلع او صار ريستارات وافضل من الداتا بحيث يوفر من الـ SQL الـ

اتمنى ما اشوف احد يتفلسف بعد ويزود ردود !!

SQL يعين انت تنصح بأيه الداتا ولا قاعدة البينات ولا

Link to comment

على حسب فكرتك, دام فيه امكانيه لطرق غير الإلمنت داتا استخدمها.

:lol: والإلمنت داتا لو سويتها للمود اذا طفيته وشغلته بتروح الداتا, ولو سويتها للاعب وطلع ودخل بتروح, عشان كذا العب ع المضمون

.(JSON) عندك اكثر من طريقه, تقدر تحفظ على حساب اللاعب او قاعدة بيانات او اكس ام ال او جسون

Link to comment
ما يحتاج نزود بالكلام يعني واضحة

CPU عشان يحفظها بكل الاحوال سواء طلع او صار ريستارات وافضل من الداتا بحيث يوفر من الـ SQL الـ

اتمنى ما اشوف احد يتفلسف بعد ويزود ردود !!

لو طلع الاعب يستخدم

AccountData

وإذا الاعب موجود يستخدم

ElementData

وبعدين الـ

ElementData

هو الي يوفر من الـ

CPU

^^

:roll:

Link to comment
الاكاونت داتا كيف راح تجيبها دام اللاعب ما سجل دخوله؟

اغلب السيرفرات تجبر الاعبين على تسجيل الدخول

ماعدا الهجولة

في هاذي الحالة يستخدم

executeSQLQuery 

؟CPU واشرح لي كيف يوفر من الـ

بما ان الموضوع اساساً عن التايمر

جرب وشوف الفرق بنفسك

setTimer( 
function() 
outputChatBox(getElementData(player,"DataName")) 
end 
,50,0) 

setTimer( 
function() 
local Info = executeSQLQuery ( "SELECT * FROM Table WHERE Serial = ?", getPlayerSerial(player)) 
outputChatBox(Info[1]["Time"]) 
end 
,50,0) 

خرجنا خارج الموضوع

لحفظ التايمر بالسيريال ( طبعاً الافضل علشان لو غير الاعب حسابه او إذا كان الاعب ماعنده حساب من الاساس )

getTimerDetails 
executeSQLQuery 

لحفظ التايمر بالحساب

setElementData 
getElementData 
setAccountData 
getAccountData 
getTimerDetails 
  

ولا تزعل يا زاحف على الضحكه ض1

:wink:

Link to comment

,ماخرجنا خارج الموضوع, حنا نتكلم عن الموضوع اصلاً

,اولاً : انا اللعبه مب عندي عشان اجرب

,CPU ثانياً : انا ماجبت طاري قاعدة البيانات فـ الـ

تسألني كيف؟ CPU ثالثاً : انا اللي اعرفه ان الالمنت داتا ياخذ كثير من الـ

: ذي الإجابه

Whenever you change an Elementdata on the server/client the information will be synced to any connected client. This is often not necessary, but simply a waste of bandwidth. Why would a remote player be required to know the exact amount of fuel in a vehicle far away? That information is only useful for the driver of the vehicle, so you'd waste a ton of bandwidth which could be used by MTA for better synchronization.

. :D يمكن يكون كلامي خطأ وفاهم غلط, اشرح لي يمكن نستفيد

Link to comment

لو طلع الاعب يستخدم

AccountData

وإذا الاعب موجود يستخدم

ElementData

وبعدين الـ

ElementData

هو الي يوفر من الـ

CPU

^^

:roll:

CPU طيب انا قلت انه يستخدم السكل بدلأ من الداتا لتوفير الـ

CPU عشان يحفظها بكل الاحوال سواء طلع او صار ريستارات وافضل من الداتا بحيث يوفر من الـ SQL الـ

ع العموم انت عطيته الزبدهـ .

Link to comment
,ماخرجنا خارج الموضوع, حنا نتكلم عن الموضوع اصلاً

,اولاً : انا اللعبه مب عندي عشان اجرب

,CPU ثانياً : انا ماجبت طاري قاعدة البيانات فـ الـ

تسألني كيف؟ CPU ثالثاً : انا اللي اعرفه ان الالمنت داتا ياخذ كثير من الـ

: ذي الإجابه

Whenever you change an Elementdata on the server/client the information will be synced to any connected client. This is often not necessary, but simply a waste of bandwidth. Why would a remote player be required to know the exact amount of fuel in a vehicle far away? That information is only useful for the driver of the vehicle, so you'd waste a ton of bandwidth which could be used by MTA for better synchronization.

. :D يمكن يكون كلامي خطأ وفاهم غلط, اشرح لي يمكن نستفيد

synchronize يمديك تطفي

bool setElementData ( element theElement, string key, var value [, bool synchronize = true ] ) 

وهذا مو سبب مو مقنع انه ياخذ من المعالج

وانا مدري ليش خايفين على المعالج كلها عملية بسيطة ما تأثر على السيرفر بس انتو خايفين ياكثر الطرق اللي تحفظ :)

Link to comment
:lol: ايه والمعالج وش فيه ما يحس يعني؟

. :crazy: شف فكرة ان الالمنت داتا تاخذ من الس بي يو داخله براسي وما بتطلع

ههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه

اي عملية بتروح للمعالج يعني مابتشرد :)

والله انتو تضحكون

يتهاوشون هي تاخذ منن المعالج ولا لا

هههههههههه

اي عملية بتاخذ من المعالج

:D:lol::lol::lol::lol::lol:

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...