-
Posts
999 -
Joined
-
Last visited
Everything posted by K1NG
-
-- Server Side # local MarkerOne = createMarker ( 2751.0087890625, -1826.0322265625, 11.847807884216, "cylinder", 2, 255, 0, 0, 255 ) local MarkerTwo = createMarker ( -1464.6643066406, 1556.5723876953, 1052.53125, "cylinder", 2, 255, 0, 0, 255 ) setElementInterior ( MarkerTwo, 6 ) addEventHandler ( "onMarkerHit", resourceRoot, function ( plr ) if ( getElementType ( plr ) ~= "player" ) or ( isPedInVehicle ( plr ) ) then return end if ( source == MarkerOne ) then setElementInterior ( plr, 6, -1464.689453125, 1558.5723876953, 1052.53125 ) elseif ( source == MarkerTwo ) then setElementInterior ( plr, 0, 2751.1240234375, -1828.0322265625, 11.842135429382 ) end end )
-
-- Client Side # if ( source == Button1 ) and ( getElementData ( localPlayer, "Sa" ) ) and ( getElementData ( localPlayer, "Saa" ) ) then triggerServerEvent ( "RemoveData", localPlayer ) end -- Server Side # addEvent ( "RemoveData", true ) addEventHandler ( "RemoveData", root, function ( ) removeElementData ( client, "Sa" ) removeElementData ( client, "Saa" ) end )
-
-- Client Side # if ( source == Button1 ) and ( getElementData ( localPlayer, "Sa" ) ) then triggerServerEvent ( "RemoveData", localPlayer ) end -- Server Side # addEvent ( "RemoveData", true ) addEventHandler ( "RemoveData", root, function ( ) removeElementData ( client, "Sa" ) end )
-
.. كودكـ ناقص كثييير وكله اخطاء، ماني فاضي اعددها لكـ الحين : بالنسبة لصاحب الموضوع، جرب هذا local GroupName = "KK" -- اسم القروب حقك / حطه بين علامات التنصيص local gateID = 980 -- الأيدي ( المعرف ) حق الأوبجكت ( البوابة )ء local Gx, Gy, Gz = x, y, z -- x, y, z / إحداثيات البوابة الطبيعية، ضعها مكان المتغيرات local Grx, Gry, Grz = x, y, z -- x, y, z / إحداثيات دوران البوابة، ضعها مكان المتغيرات local Gx1, Gy2, Gz3 = x, y, z -- x, y, z / إحداثيات البوابة بعد التحريك، ضعها مكان المتغيرات local Time = 2 -- وقت فتح وإقفال البوابة ( بالثانية )ء local gate = createObject ( gateID, Gx, Gy, Gz, Grx, Gry, Grz ) local marker = ( Gx, Gy, Gz, "cylinder", 7, 0, 0, 0, 0 ) addEventHandler ( "onMarkerHit", marker, function ( plr ) if ( getElementType ( plr ) == "player" ) and ( getElementData ( plr, "Group" ) == GroupName ) then moveObject ( gate, Time * 1000, Gx1, Gy2, Gz3 ) end end ) addEventHandler ( "onMarkerLeave", marker, function ( plr ) if ( getElementType ( plr ) == "player" ) and ( getElementData ( plr, "Group" ) == GroupName ) then moveObject ( gate, Time * 1000, Gx, Gy, Gz ) end end ) addEventHandler ( "onPlayerQuit", root, function ( ) if ( isElementWithinMarker ( source, marker ) ) and ( getElementData ( plr, "Group" ) == GroupName ) then moveObject ( gate, Time * 1000, Gx, Gy, Gz ) end end ) .عوض مكان المتغيرات وردلي خبر لأني ماجربت الكود صراحةً
-
والبوابة شلون بتعرف انك قربت منها ؟ لازم تسوي شي مُلصق بالبوابة عشان يوم يدخله اللاعب تتحرك البوابة، مثل الماركر او الكول شيب والوظايف طرحتها لكـ بردي إلي بالصفحة الأولى
-
اها معناها شكلكـ ماتعرف وش يعني بوابة مقر
-
بس ابيك تفهمني وين طلب "بوابه يوم تقرب تفتح" " قروب معين" ؟؟؟؟؟؟؟؟؟؟؟؟ =--------------= انت تعرف وش معنى بوابة مقر يا عمري ؟ عندكـ صعوبة في فهم الخطأ ولا كيف وضعكـ ؟
-
الله يشفيك بس الحمد لله والشكر ومن قال ان الكود حقي ,؟؟؟ لاتتكلم كلام من عندك وبعدين ماني شايف خطأ في الكود خل عنك الفلسفه والكود الي طرحته كود اسامه نفس طلب الرجال وبعدين الرجال ما طلب ما حدد نوع الكود كيف بيكون عطيته الكود ذا وجاي تقول ماله علاقه !! ياحبي ماقلت لك الكود غلط، بس الكود ماله علاقة بـ إلي يبيه صاحب الموضوع، هو يبي بوابة يوم تقرب منها تفتح ويوم تبعد عنها تقفل وتكون خاصة بقروب معين . لكن انت الكود الي طرحته ذا مثل فكرة بوابة السجن يوم تكون بداخل الماركر وتكبس تاب يفتح الباب ويقفله / اتمنى وصلت المعلومة
-
ماله علاقة بالموضوع ^ : بالنسبة لصاحب الموضوع، استخدم createObject createMarker getElementData moveObject Event: "onMarkerHit" Event: "onMarkerLeave" Event: "onPlayerQuit" وش الي ماله علاقه ؟ (= لو انكـ انت مسوي الكود ومنت ناسخه ولاصقه كان عرفت كيف ماله علاقة
-
.عشان ما يصير تعارض بين السباون الأصلي والسباون حق الجروب onPlayerWasted بدلاً من onPlayerSpawn المفروض تستخدم حدث
-
ماله علاقة بالموضوع ^ : بالنسبة لصاحب الموضوع، استخدم createObject createMarker getElementData moveObject Event: "onMarkerHit" Event: "onMarkerLeave" Event: "onPlayerQuit"
-
بلا تخريف الكود ماهو ناقص، لكن الكود فكرته مختلفة كلياً عن الي يبيه هو .بالنسبة لصاحب الموضوع، الكود ذا ماله دخل بإلي تبيه، ذا يفتح و يغلق البوابة من خلال زر تاب اذا كنت فداخل الماركر
-
https://community.multitheftauto.com/index.php?p=resources&s=details&id=44
-
isElementWithinMarker ما يحتاج تسوون حدث يوم يدخل الماركر يسوي بايند كي ويوم يخرج يشيل الزر ي الي فوقي، تقدرون تختصرون كل ذا ب وظيفة bindKey -- ربط زر التاب بالوظيفة isElementWithinMarker -- تحقق من ان اللاعب بداخل الماركر setPedAnimation -- تحديد حركة اللاعب ( حركة فتح الباب )ء
-
guiCreateGridList -- المثال الأول -- Client Side # function createPlayerList () --Create the grid list element local playerList = guiCreateGridList ( 0.80, 0.10, 0.15, 0.60, true ) --Create a players column in the list local column = guiGridListAddColumn( playerList, "Player", 0.85 ) if ( column ) then --If the column has been created, fill it with players for id, player in ipairs(getElementsByType("player")) do local row = guiGridListAddRow ( playerList ) guiGridListSetItemText ( playerList, row, column, getPlayerName ( player ), false, false ) end end end
-
# تفضضل ههذا مثأل بسيط , ولأكن مو مجربهه Y = 1020.55122 function ZA7F ( ) createPed ( 120, 5540.6654, Y, 1240.545 ) end addEventHandler ( "onResourceStart", getResourceRootElement(), ZA7F) setTimer ( function ( ) Y = 5032.4567 end ,2000,0 ) طريقتكـ مارح تضبط أخ زآحف لانه اول ماتشغل السكربت ياخذ قيمة المتغير ويحط البيد بمكانها، لكن يوم تسوي التايمر وتغير قيمة المتغير مارح يتأثر فيها مكان البيد، لأنكـ انت اخذت قيمة المتغير عند تشغيل السكربت فقط .. بالنسبة لصاحب الموضوع، شوف المثال ذا -- Client & Server Side # local ThePed = createPed ( 120, 5540.6654, 1020.55122, 1240.545 ) setTimer ( function ( ) local x, y, z = getElementPosition ( ThePed ) setElementPosition ( ThePed, x, y + 2, z ) end, 1000, 0 )
-
شرح مختصر للسنايكس للمبتدئ والي مايفهم يجي سكايب
K1NG replied to |~| ALCKASER |~|'s topic in دروس في البرمجة
https://forum.multitheftauto.com/viewtopic.php?f=164&t=50863 انت ناسخ الموضوع ذا مع ردودهـ .. يعني ماجبت شي جديد، حاول تشرح شي مانشرح من قبل او لما تشرحه ع طريقتك اشرحه زين مهو شرح ما ينفهم -
والله ي الطيب ماحد يقدر يحل مشكلتكـ غير انت بنفسكـ أو اذا فيه واحد فاضي يشيك لك ع 2000 سطر لول انت راجع نفسكـ وش عدلت فيه وشيك ع التعديلات الي تختص بإخراج سيارة مرة ثانية، والأرجح يكون عندكـ خطأ بملف السيرفر اذا انت معدله او شي .. راجع نفسكـ + بالأكواد ذي، ماني متأكد بتضبط ولا لأ بس مجرد تجربة fr_server.lua جرب استبدل اكواد ملف .. g_Root = getRootElement() g_ResRoot = getResourceRootElement(getThisResource()) g_PlayerData = {} g_VehicleData = {} local chatTime = {} local lastChatMessage = {} g_ArmedVehicles = { [425] = true, [447] = true, [520] = true, [430] = true, [464] = true, [432] = true } g_Trailers = { [606] = true, [607] = true, [610] = true, [590] = true, [569] = true, [611] = true, [584] = true, [608] = true, [435] = true, [450] = true, [591] = true } g_RPCFunctions = { addPedClothes = { option = 'clothes', descr = 'Modifying clothes' }, addVehicleUpgrade = { option = 'upgrades', descr = 'Adding/removing upgrades' }, fadeVehiclePassengersCamera = true, fixVehicle = { option = 'repair', descr = 'Repairing vehicles' }, giveMeVehicles = { option = 'createvehicle', descr = 'Creating vehicles' }, giveMeWeapon = { option = 'weapons.enabled', descr = 'Getting weapons' }, givePedJetPack = { option = 'jetpack', descr = 'Getting a jetpack' }, killPed = { option = 'kill', descr = 'Killing yourself' }, removePedClothes = { option = 'clothes', descr = 'Modifying clothes' }, removePedFromVehicle = true, removePedJetPack = { option = 'jetpack', descr = 'Removing a jetpack' }, removeVehicleUpgrade = { option = 'upgrades', descr = 'Adding/removing upgrades' }, setElementAlpha = { option = 'alpha', descr = 'Changing your alpha' }, setElementPosition = true, setElementInterior = true, setMyGameSpeed = { option = 'gamespeed.enabled', descr = 'Setting game speed' }, setMySkin = { option = 'setskin', descr = 'Setting skin' }, setPedAnimation = { option = 'anim', descr = 'Setting an animation' }, setPedFightingStyle = { option = 'setstyle', descr = 'Setting fighting style' }, setPedGravity = { option = 'gravity.enabled', descr = 'Setting gravity' }, setPedStat = { option = 'stats', descr = 'Changing stats' }, setTime = { option = 'time.set', descr = 'Changing time' }, setTimeFrozen = { option = 'time.freeze', descr = 'Freezing time' }, setVehicleColor = true, setVehicleHeadLightColor = true, setVehicleOverrideLights = { option = 'lights', descr = 'Forcing lights' }, setVehiclePaintjob = { option = 'paintjob', descr = 'Applying paintjobs' }, setVehicleRotation = true, setWeather = { option = 'weather', descr = 'Setting weather' }, spawnMe = true, warpMe = { option = 'warp', descr = 'Warping' } } g_OptionDefaults = { alpha = true, anim = true, clothes = true, createvehicle = true, gamespeed = { enabled = true, min = 0.0, max = 3 }, gravity = { enabled = true, min = 0, max = 0.1 }, jetpack = true, kill = true, lights = true, paintjob = true, repair = true, setskin = true, setstyle = true, spawnmaponstart = true, spawnmapondeath = true, stats = true, time = { set = true, freeze = true }, upgrades = true, warp = true, weapons = { enabled = true, vehiclesenabled = true, disallowed = {} }, weather = true, welcometextonstart = true, vehicles = { maxidletime = 60000, idleexplode = true, maxperplayer = 2, disallowed = {} } } function getOption(optionName) local option = get(optionName:gsub('%.', '/')) if option then if option == 'true' then option = true elseif option == 'false' then option = false end return option end option = g_OptionDefaults for i,part in ipairs(optionName:split('.')) do option = option[part] end return option end addEventHandler('onResourceStart', g_ResRoot, function() table.each(getElementsByType('player'), joinHandler) end ) function joinHandler(player) if not player then player = source end local r, g, b = math.random(50, 255), math.random(50, 255), math.random(50, 255) setPlayerNametagColor(player, r, g, b) g_PlayerData[player] = { vehicles = {} } g_PlayerData[player].blip = createBlipAttachedTo(player, 0, 2, r, g, b) if g_FrozenTime then clientCall(player, 'setTimeFrozen', true, g_FrozenTime[1], g_FrozenTime[2], g_FrozenWeather) end if getOption('welcometextonstart') then outputChatBox('Welcome to Freeroam', player, 0, 255, 0) outputChatBox('Press F1 to show/hide controls', player, 0, 255, 0) end end addEventHandler('onPlayerJoin', g_Root, joinHandler) addEvent('onLoadedAtClient', true) addEventHandler('onLoadedAtClient', g_ResRoot, function(player) if getOption('spawnmaponstart') and isPedDead(player) then clientCall(player, 'showWelcomeMap') end end, false ) addEventHandler('onPlayerWasted', g_Root, function() if not getOption('spawnmapondeath') then return end local player = source setTimer( function() if isPedDead(player) then clientCall(player, 'showMap') end end, 2000, 1 ) end ) addEvent('onClothesInit', true) addEventHandler('onClothesInit', g_Root, function() local result = {} local texture, model -- get all clothes result.allClothes = {} local typeGroup, index for type=0,17 do typeGroup = {'group', type = type, name = getClothesTypeName(type), children = {}} table.insert(result.allClothes, typeGroup) index = 0 texture, model = getClothesByTypeIndex(type, index) while texture do table.insert(typeGroup.children, {id = index, texture = texture, model = model}) index = index + 1 texture, model = getClothesByTypeIndex(type, index) end end -- get current player clothes { type = {texture=texture, model=model} } result.playerClothes = {} for type=0,17 do texture, model = getPedClothes(source, type) if texture then result.playerClothes[type] = {texture = texture, model = model} end end triggerClientEvent(source, 'onClientClothesInit', source, result) end ) addEvent('onPlayerGravInit', true) addEventHandler('onPlayerGravInit', g_Root, function() triggerClientEvent('onClientPlayerGravInit', source, getPedGravity(source)) end ) function setMySkin(skinid) if isPedDead(source) then local x, y, z = getElementPosition(source) if isPedTerminated(source) then x = 0 y = 0 z = 3 end local r = getPedRotation(source) local interior = getElementInterior(source) spawnPlayer(source, x, y, z, r, skinid) setElementInterior(source, interior) setCameraInterior(source, interior) else setElementModel(source, skinid) setElementHealth(source, 100) end setCameraTarget(source, source) setCameraInterior(source, getElementInterior(source)) end function spawnMe(x, y, z) if not x then x, y, z = getElementPosition(source) end if isPedTerminated(source) then repeat until spawnPlayer(source, x, y, z, 0, math.random(9, 288)) else spawnPlayer(source, x, y, z, 0, getPedSkin(source)) end setCameraTarget(source, source) setCameraInterior(source, getElementInterior(source)) end function warpMe(targetPlayer)
-
. مشكور ع السكربت، بس حبيت انوهـ إلى نقطة، الطريقة ذي ماتمسح الشات للكل، الشات ينمسح للي كتب الأمر فقط
-
هاذي الوظيفة ياطويل العمر تجلب لك الكلام من عناصر واجهة المستخدم الرسومية بما فيها من ازرار، ليبلات .. الخ : توضيح لمثال الويكي * -- Client Side # -- هنا نقوم بإنشاء ليبل لجلب الكلام منه local dummyGUIElement = guiCreateLabel ( 0.45, 0.48, 0.10, 0.04, "Hello world", true ) -- هنا يخرج لك الكلام الي موجود بداخل الليبل في الشات outputChatBox ( "Text in the GUI label: " .. guiGetText ( dummyGUIElement ) ) لو تلاحظ ف السطر السادس من الكود مكتوب كذا outputChatBox ( "Text in the GUI label: " .. guiGetText ( dummyGUIElement ) ) معناها انه رح يجيب الكلام الي بداخل الليبل " .. guiGetText ( dummyGUIElement ) هنا مكان الـ : يعني النتيجة عندكـ بالشات راح تصير كـ التالي Text in the GUI label: Hello world : مثال آخر على إيديت، هاذ المثال فكرته هي أنه يوم تكتب كلام بالإيديت يجي الكلام بالليبل تلقائي * -- Client Side # -- انشاء ايديت local editBox = guiCreateEdit( 0.3, 0.1, 0.4, 0.1, "Hi Man", true ) -- انشاء ليبل local labelBox = guiCreateLabel ( 0.45, 0.48, 0.10, 0.04, "Hi Man", true ) -- اضافة حدث : عند تغيُر الكلام في الإيديت addEventHandler ( "onClientGUIChanged", editBox, -- صناعة وظيفة function ( ) -- هنا نجلب الكلام الي بالإيديت ونحطه بالليبل guiSetText ( labelBox, guiGetText ( editBox ) ) -- اغلاق الوظيفة مع تكملة رابع ارقمنت من وظيفة اضافة الحدث end, false -- اغلاق قوس اضافة الحدث )
- 1 reply
-
- 1
-
-
فاهم غلط ^ المقصود بالكلام ذا انه التشفيرة ذي مارح تشتغل بالإصدارات القادمة لكن بالإصدار ذا تشتغل عادي .. ولاتفكر ان المقصود بالإصدارات القادمة هي التحديثات الي تشوفها كل اسبوع، المقصود بالإصدارات القادمة يعني لين يجي اصدار 1.4 والي بعدهـ ليه تبي حل وهي ما تأثر ع السكربت من أصله !؟ خل الرسالة تجي بالديبق مافي مشكلة ماتأثر عليكـ ولا ع السكربت أما إذا تبي تخلي الرسالة من أصله ما تجي بالديبق ف يبغالك تشفر المود بالتشفيرة الجديدة من خلال الموقع ذا https://luac.multitheftauto.com
-
هذا مجرد تنبيه لا اكثر ولا أقل، عشان الناس تصير تشفر بالتشفيرة الجديدة وتتفادى فكـ التشفير لأن تشفير الموقع ذا ماحد قدر يفكه لحد الآن https://luac.multitheftauto.com # تنبيه # لأ م تشوف وش يقول , المود ما يشتغل # ولله معاه الحق البندر ... السكربت يشتغل وكل شي تمام لكن كل ماتشغل سكربت مشفر ع التشفيرة القديمة يجيك التنبيه ذا فقط لا غير، يعني ما يأثر ع السكربت أبداً
-
هذا مجرد تنبيه لا اكثر ولا أقل، عشان الناس تصير تشفر بالتشفيرة الجديدة وتتفادى فكـ التشفير لأن تشفير الموقع ذا ماحد قدر يفكه لحد الآن https://luac.multitheftauto.com
-
يقولكـ ان المتغير الخاص بالنافذة ماهو معرف يعني انت مستخدم كود guiSetVisible ( ???, true/false ) هنا انت مكان علامات الاستفاهم حاط متغير لنافذة ماهي معرفة، يعني لازم تحط متغير النافذة الصحيح : مثال -- Client Side # win = guiCreateWindow ( ... ) guiSetVisible ( win, false ) بس المشكله من اي مود ؟؟ ماهو مكتوب من أي مود، بس شكلكـ انت يوم تكبس زر فتح النافذة او امر او اي شي يجيك الكلام ذا .. انت شوف المود حقكـ الي يفتح بنفس الزر أو بالأمر المعين وشيك عليه