AR/setElementData
Jump to navigation
Jump to search
هذه الوظيفة تحفظ بيانات العنصر على مفتاح معين، يتبع لعنصر. يتم تعيين بيانات العنصر باستخدام هذا ثم يتم مزامنتها مع جميع العملاء والخادم. يمكن أن يحتوى الخادم على عناصر البيانات التي تم إنشاؤها ، ولكن يجب تجنب تمرير البيانات الغير قادرة على أن تكون متمازنه مثل xmlnodes، قوائم ACL، aclgroups الخ.
كما يتم ممازنة بيانات العنصر مع جميع العملاء، يمكن أن تولد الكثير من الضغط على الشبكة وتستهلك وحدة المعالجة المركزية للخادم. الأحداث أكثر كفاءة لإرسال البيانات من العميل إلى الملقم فقط، أو من ملقم إلى عميل خاص.
Tip: A simple and efficient way to make a variable known to the server and clients is to use setElementData on the root element. |
تركيب الجملة البرمجية
bool setElementData ( element theElement, string key, var value [, bool synchronize = true ] )
OOP Syntax Help! I don't understand this!
- Method: element:setData(...)
- Counterpart: getElementData
العناصر المطلوبة
- theElement: العنصر الذي تود بتعيين بيانات له.
- key: اسم مفتاح بيانات العنصر الذي تود تعيين البيانات عليه . x ( 31 حرف كحد أقصى للمفتاح )
- value: للحصول على قائمة من أنواع البيانات المقبولة element data القيمة التي تود بحفظها , انظر
العناصر الاختيارية
- synchronize: يحدد ما إذا كان سيتم مزامنة البيانات مع الخادم (تغير العميل) والعملاء عن بعد (كلا الاختلافات) أو لا
النواتج
إرجاع صحيح إذا تم تعيين البيانات بنجاح، خطأ على خلاف ذلك.
Issues
Issue ID | Description |
---|---|
#7389 | [Fixed in 1.3.5-7389] Problem with floating numbers |
مثال
Click to collapse [-]
سيرفريسمح هذا المثال لللاعب لإضافة علامة مخصصة على لقبه، وأيضا يرجعه مرة أخرى إلى وضعه الطبيعي إذا رغب في ذلك.
function addPlayerCustomTag ( thePlayer, command, newTag ) -- لنتأكد من علامة التاج الجديد المدخلة ... if ( newTag ) then -- جلب اسمه الحالي للحفظ local sPlayerNickname = getPlayerName ( thePlayer ) -- انشاء اسمه المستعار الجديد مع التاج local sNewPlayerNickname = newTag .. " " .. sPlayerNickname --دعونا أولا نجلب بيانات العنصر، لمعرفة ما اذا كان هنالك بيانات بالفعل --مرتين / addtag والسبب في ذلك هو أنه إذا كان لاعب قام بعمل --التاج يرفق مسبقاً للمره الثانية local sOldNick = getElementData( thePlayer, "tempdata.originalnick" ) if ( sOldNick == false ) then -- حفظ اسمه الاصلي في بياناته setElementData ( thePlayer, "tempdata.originalnick", sPlayerNickname ) end -- تعيين الاسم المستعار الجديد كأسم للاعب setPlayerName ( thePlayer, sNewPlayerNickname ) --اخباره بانه تم outputChatBox ( "Your new nickname has been set, to put it back to its original state you can use /deltag", thePlayer ) else --علامة التاج الجديد لم يتم ادخالها , اعطاء رسالة خطأ outputChatBox ( "/addtag - Incorrect syntax, Correct: /addtag <newtag>", thePlayer ) end end addCommandHandler ( "addtag", addPlayerCustomTag ) function removePlayerCustomTag ( thePlayer, command ) --لنقوم به الان, /addtag نحن اولاً نحتاج الى التحقق من انهم مسبقاً استخدمو local sOldNick = getElementData( thePlayer, "tempdata.originalnick" ) if ( sOldNick ) then -- جيد , لديه تاج مضاف , لنقوم بإعادة تعيينه لهم --( false يجب ان تكون ) x اولاً نحن نريد ان نعيد تعيين بيانات العنصر لإرجاعه الى الافتراضي setElementData ( thePlayer, "tempdata.originalnick", false ) -- الآن تعيين اسم العميل الى القديم setPlayerName( thePlayer, sOldNick ) -- عمل تنبيه له outputChatBox ( "Your old nickname has been set", thePlayer ) end end addCommandHandler ( "deltag", removePlayerCustomTag )
أنظر أيضا
- attachElements
- createElement
- destroyElement
- detachElements
- getAttachedElements
- getElementAlpha
- getElementAttachedOffsets
- getElementAttachedTo
- getElementByIndex
- getElementByID
- getElementChild
- getElementChildren
- getElementChildrenCount
- getElementCollisionsEnabled
- getElementColShape
- getElementData
- getAllElementData
- hasElementData
- getElementDimension
- getElementHealth
- getElementID
- getElementInterior
- getElementMatrix
- getElementModel
- getElementParent
- getElementPosition
- getElementRotation
- getElementsByType
- getElementsWithinColShape
- getElementsWithinRange
- getElementType
- getElementVelocity
- getLowLODElement
- getRootElement
- isElement
- isElementAttached
- isElementCallPropagationEnabled
- isElementDoubleSided
- isElementFrozen
- isElementInWater
- isElementLowLOD
- isElementWithinColShape
- isElementWithinMarker
- setElementAlpha
- setElementAngularVelocity
- getElementAngularVelocity
- setElementAttachedOffsets
- setElementCallPropagationEnabled
- setElementCollisionsEnabled
- setElementData
- setElementDimension
- setElementDoubleSided
- setElementFrozen
- setElementHealth
- setElementID
- setElementInterior
- setElementModel
- setElementParent
- setElementPosition
- setElementRotation
- setElementVelocity
- setLowLODElement
- getPedContactElement
- getResourceDynamicElementRoot
- getResourceRootElement