-
Posts
513 -
Joined
-
Last visited
-
Days Won
1
Posts posted by xX|KeMo|Xx
-
-
2 hours ago, maged said:
لم يعمل ايضا
يعمل عن تجربه تاكد انه عليك الالمنت داتا دا
if getElementData (player, "Group") == "[MiCrO]" then
-
يب بدي الجزء الي يرسل فيه الرساله ويحفظ في قاعده البينات
لنه بهاد الجزء رح تحط التحقق انه ما يسوي نفس الرساله
-
هات كود الارسال الي الجزء الي يحفظ بقاعده البيانات
Just now, Deativated said:المهم انا مسوي كل ذا
بس ابي اتحقق
القلت لك فوق
-
12 hours ago, maged said:
لم يعمل ايضا
اخوي اعذرني كتبت حرف كابيتل وهوا يجب يكون سمول بالسطر الرابع بكلمه Player
عدلتها تفضل
local marker = createMarker (2229.6000976563,487.39999389648,20.8, "cylinder", 2, 255, 0, 0) addEventHandler ("onMarkerHit", marker, function (player) if getElementType (player) == "player" then if getElementData (player, "Group") == "[MiCrO]" then local veh = getPedOccupiedVehicle (player) if veh then fixVehicle (veh) end end end end )
- 1
-
On 7/21/2017 at 01:06, Deativated said:
واجل message ?
طيب كذا صح ؟
onCheckForMessage = function ( subject, player ) if subject then local result = dbPoll(dbQuery(db,"SELECT * FROM reportsystem WHERE accname=?",getAccountName(getPlayerAccount(player))),-1) for i,v in ipairs ( result ) do if v.MsgSubject == subject then return outputChatBox ( "cant", player, 255, 0, 0, true ) end end end
-- سويت كذا -- واجي اسوي بكود الإرسال onCheckForMessage (subject,source)
ممكن توضح باختصار لشو بدك يصير حتى افيدك لني ما فهمت ولا اي شيء
-
local marker = createMarker (2229.6000976563,487.39999389648,20.8, "cylinder", 2, 255, 0, 0) addEventHandler ("onMarkerHit", marker, function (player) if getElementType (player) == "Player" then if getElementData (player, "Group") == "[MiCrO]" then local veh = getPedOccupiedVehicle (player) if veh then fixVehicle (veh) end end end end )
-
triggerClientEvent ( root, "setINF", root, true, false, false, message, false, false, 255, 255, 255 ) triggerClientEvent ( root, "setINF", root, m1, m2, m3 )
-
obj = 980 -- غيره لرقم الاوبجكت الي بتركب عليه شكل كنز ... addCommandHandler ("kemo", function (ply, _, mon) if not isGuestAccount(getPlayerAccount(ply)) then if ( isObjectInACLGroup ( "user."..getAccountName(getPlayerAccount(ply)), aclGetGroup ( "Console" ) ) ) then if tonumber(mon) then if isElement(themarker) then return end local x, y, z = getElementPosition ( ply ) themarker = createMarker(x, y, z, "corona") object = createObject ( obj, x, y, z ) money = mon playerr = ply outputChatBox("تم انشاء ماركر الكنز",ply) else if isElement(themarker) and isElement(object) then destroyElement(themarker) destroyElement(object) outputChatBox("تم حذف ماركر الكنز",ply) end end end end end ) addEventHandler( "onMarkerHit", root, function(ply) if source ~= themarker then return end if getElementType(ply) == "player" then if playerr == ply then return end givePlayerMoney ( ply, money ) destroyElement(themarker) destroyElement(object) outputChatBox("حصلت على كنز بقيمه : "..money ,ply) end end )
- 1
-
مافي بس تقدر تسهل على نفسك استخدامها بهذي الطرييقه
for _,r in ipairs(getResources()) do -- جبت كل المودات for _,v in ipairs(getResourceExportedFunctions(r)) do -- جبت الموادات الي فيها export if v == "exportFunction" then -- حددت اسم الـexport exports[getResourceName (r)]:exportFunction(test) -- نفذت الامر end end end
قلت افيدك بالطريقه لنه فادتني كثير من ناحيه انه صار عندي حريه اغير اسم المود وانه انفذ الامر اذا موجود باكثر من مود بنفس الوقت وانه ما يجي لي اخطاء في حاله انه المود متوقف ...
- 3
-
سويت لك هاد الكود حتى تعدله وتطوره
مسوي الكلمه تكتبها باف 8 kemo غيرها للي بدك
وبعدها تحط الفلوس الي بدك ياخذها الي بيوصل للماركر
لتحذف الماركر اكتب باف 8 نفس الكومند بس من غير فلوس بعدها
وعدل رقم الاوبجكت للاوبجكت الكنز
obj = 980 -- غيره لرقم الاوبجكت الي بتركب عليه شكل كنز ... addCommandHandler ("kemo", function (ply, _, mon) if not isGuestAccount(getPlayerAccount(ply)) then if ( isObjectInACLGroup ( "user."..getAccountName(getPlayerAccount(ply)), aclGetGroup ( "Console" ) ) ) then if tonumber(mon) then local x, y, z = getElementPosition ( ply ) marker = createMarker(x, y, z, "corona") ) object = createObject ( obj, x, y, z ) money = mon outputChatBox("تم انشاء ماركر الكنز",ply) else if isElement(marker) and isElement(object) then destroyElement(marker) destroyElement(object) outputChatBox("تم حذف ماركر الكنز",ply) end end end end ) addEventHandler( "onMarkerHit", marker, function() if getElementType(source) == "player" then givePlayerMoney ( source, money ) destroyElement(marker) destroyElement(object) outputChatBox("حصلت على كنز بقيمه : "..money ,source) end end )
ملاحظه : غير مجرب جربه اذا فيه خطأ قولي اي سطر وبعدله لك
-
function closeButt() for i = 1 , 6 do guiSetEnabled(GUIEditor.button[i],false) end setTimer(function(i) for i = 1 , 6 do guiSetEnabled(GUIEditor.button[i],true) end end,3*60000,1,i) end
من كودك الي موجود في الموضوع الثاني حددت انه الازار اول 6 ازرار اذا مو هيك شيل
for i = 1 , 6 do guiSetEnabled(GUIEditor.button[i],false) end
وحط كل زر باسمه
guiSetEnabled(اسم الزر,false)
وطبعا الي بتايمر نفس الشيء
واستخدم
closeButt()
تحت كل زر يضغطه
-
--server addCommandHandler ("GG", function (p) if not isGuestAccount(getPlayerAccount(p)) then if ( isObjectInACLGroup ( "user."..getAccountName(getPlayerAccount(p)), aclGetGroup ( "Admin" ) ) ) then triggerClientEvent( p,"showPanel", p) end end end ) --client addEvent("showPanel", true) addEventHandler("showPanel",root,function () guiSetVisible(Home, not guiGetVisible(Home)) showCursor(guiGetVisible(Home)) end)
غير اسل
Admin
الى اسل الفيب الي مسويه عندك
-
local Skins = { [ 1 ] = { "Cj", 0 }, [ 2 ] = { "Skin1", 21 }, [ 3 ] = { "Skin2", 22 }, [ 4 ] = { "Kazm", 64 }, [ 5 ] = { "Skin4", 24 }, [ 6 ] = { "Skin5", 25 }, [ 7 ] = { "Skin6", 26 }, [ 8 ] = { "Skin7", 27 }, [ 9 ] = { "Skin8", 28 }, [ 10 ] = { "Army", 287 }, [ 11 ] = { "SWAT", 285 }, } GUIEditor = { tab = {}, tabpanel = {}, edit = {}, button = {}, label = {} } addEventHandler("onClientResourceStart", resourceRoot, function() Window = guiCreateWindow(270, 160, 432, 460, "HarD|Vip-System", false) guiWindowSetSizable(Window, false) guiSetVisible ( Window, false ) GUIEditor.tabpanel[1] = guiCreateTabPanel(9, 22, 413, 428, false, Window) GUIEditor.tab[1] = guiCreateTab("Informatiom", GUIEditor.tabpanel[1]) GUIEditor.label[1] = guiCreateLabel(219, 64, 188, 23, "معلومآآت كيف تحصل علي الفيب..", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[1], "default-bold-small") GUIEditor.label[2] = guiCreateLabel(167, 91, 246, 15, "يمككن الحصول علي الفيب من المسابقاآت مثل:", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[2], "default-bold-small") guiLabelSetColor(GUIEditor.label[2], 248, 234, 5) GUIEditor.label[3] = guiCreateLabel(279, 128, 106, 20, "1-هروب من الدبابة..", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[3], "default-bold-small") guiLabelSetColor(GUIEditor.label[3], 83, 252, 0) GUIEditor.label[4] = guiCreateLabel(279, 165, 106, 20, "2- هروب من خلاط ...", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[4], "default-bold-small") guiLabelSetColor(GUIEditor.label[4], 0, 251, 219) GUIEditor.label[5] = guiCreateLabel(279, 200, 106, 20, "3- مسابقة التيمات..", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[5], "default-bold-small") guiLabelSetColor(GUIEditor.label[5], 2, 31, 248) GUIEditor.label[6] = guiCreateLabel(243, 230, 142, 15, "4- مسابقة واحد ضد واحد ..", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[6], "default-bold-small") guiLabelSetColor(GUIEditor.label[6], 193, 1, 248) GUIEditor.label[7] = guiCreateLabel(253, 255, 142, 15, "5- مسابقة اسرع كاآتب..", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[7], "default-bold-small") guiLabelSetColor(GUIEditor.label[7], 248, 0, 0) GUIEditor.label[8] = guiCreateLabel(197, 280, 142, 15, "والكـثير غـير ذآالــكـ", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[8], "default-bold-small") GUIEditor.label[9] = guiCreateLabel(10, 375, 108, 18, "HarD| Vip-System V 1.0", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[9], "default-small") guiLabelSetColor(GUIEditor.label[9], 247, 0, 0) GUIEditor.edit[1] = guiCreateEdit(275, 365, 120, 24, "By:SAM!! V 1.0.0", false, GUIEditor.tab[1]) guiSetProperty(GUIEditor.edit[1], "NormalTextColour", "FFF50017") guiEditSetReadOnly(GUIEditor.edit[1], true) GUIEditor.label[10] = guiCreateLabel(10, 91, 172, 18, "مميزات الفيب:", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[10], "default-bold-small") GUIEditor.label[11] = guiCreateLabel(10, 109, 177, 14, "8 ثكنات جديدة وحصرية للفيب فقط", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[11], "default-bold-small") guiLabelSetColor(GUIEditor.label[11], 244, 219, 0) GUIEditor.label[12] = guiCreateLabel(10, 130, 172, 18, "اسلحة مجآنية", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[12], "default-bold-small") guiLabelSetColor(GUIEditor.label[12], 51, 243, 0) GUIEditor.label[13] = guiCreateLabel(10, 153, 172, 18, "امكانية ملئ الدم", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[13], "default-bold-small") guiLabelSetColor(GUIEditor.label[13], 0, 242, 222) GUIEditor.label[14] = guiCreateLabel(10, 181, 108, 15, "امكانية ملئ الدرع", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[14], "default-bold-small") guiLabelSetColor(GUIEditor.label[14], 0, 0, 241) GUIEditor.label[15] = guiCreateLabel(10, 206, 172, 18, "تآج فيب مميز بالشات العآمـ", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[15], "default-bold-small") guiLabelSetColor(GUIEditor.label[15], 226, 0, 240) GUIEditor.label[16] = guiCreateLabel(49, 237, 172, 18, "والكـــثير قريبآّ", false, GUIEditor.tab[1]) guiSetFont(GUIEditor.label[16], "default-bold-small") GUIEditor.tab[2] = guiCreateTab("Skin Panel..", GUIEditor.tabpanel[1]) GUIEditor.label[17] = guiCreateLabel(306, 378, 97, 16, "HarD| Vip System", false, GUIEditor.tab[2]) guiLabelSetColor(GUIEditor.label[17], 1, 245, 173) GridList = guiCreateGridList(8, 6, 183, 388, false, GUIEditor.tab[2]) guiGridListAddColumn(GridList, "Skin", 0.5) guiGridListAddColumn(GridList, "Id", 0.5) for i = 1, 9 do guiGridListAddRow(GridList) end guiGridListSetItemText(GridList, 0, 1, "Cj", false, false) guiGridListSetItemText(GridList, 0, 2, "0", false, false) guiGridListSetItemText(GridList, 1, 1, "Skin1", false, false) guiGridListSetItemText(GridList, 1, 2, "21", false, false) guiGridListSetItemText(GridList, 2, 1, "Skin2", false, false) guiGridListSetItemText(GridList, 2, 2, "22", false, false) guiGridListSetItemText(GridList, 3, 1, "Skin3", false, false) guiGridListSetItemText(GridList, 3, 2, "23", false, false) guiGridListSetItemText(GridList, 4, 1, "Skin4", false, false) guiGridListSetItemText(GridList, 4, 2, "24", false, false) guiGridListSetItemText(GridList, 5, 1, "Skin5", false, false) guiGridListSetItemText(GridList, 5, 2, "25", false, false) guiGridListSetItemText(GridList, 6, 1, "Skin6", false, false) guiGridListSetItemText(GridList, 6, 2, "26", false, false) guiGridListSetItemText(GridList, 7, 1, "Skin7", false, false) guiGridListSetItemText(GridList, 7, 2, "27", false, false) guiGridListSetItemText(GridList, 8, 1, "Skin8", false, false) guiGridListSetItemText(GridList, 8, 2, "28", false, false) GUIEditor.label[18] = guiCreateLabel(201, 38, 192, 96, "اضغط علي الشخصية المراد اختيارها \nثم اضغط علي زر اختيار \nلآختيار الشخصية\nتم صنع المود من قبل\nســام / SAM\nHarD|هآرد\n", false, GUIEditor.tab[2]) Button = guiCreateButton(202, 210, 160, 67, "اختيار", false, GUIEditor.tab[2]) guiSetFont(Button, "default-bold-small") guiSetProperty(Button, "NormalTextColour", "FFAAAAAA") GUIEditor.tab[3] = guiCreateTab("W&H", GUIEditor.tabpanel[1]) GUIEditor.button[1] = guiCreateButton(15, 26, 119, 38, "M4", false, GUIEditor.tab[3]) guiSetFont(GUIEditor.button[1], "default-bold-small") guiSetProperty(GUIEditor.button[1], "NormalTextColour", "FFE60000") GUIEditor.button[2] = guiCreateButton(271, 26, 119, 38, "Sawed-off", false, GUIEditor.tab[3]) guiSetFont(GUIEditor.button[2], "default-bold-small") guiSetProperty(GUIEditor.button[2], "NormalTextColour", "FFE3E600") GUIEditor.label[19] = guiCreateLabel(108, 6, 189, 15, "يمكنك استخدام الزر مرة كل 3 دقائق", false, GUIEditor.tab[3]) GUIEditor.button[3] = guiCreateButton(15, 121, 119, 38, "Combat SG", false, GUIEditor.tab[3]) guiSetFont(GUIEditor.button[3], "default-bold-small") guiSetProperty(GUIEditor.button[3], "NormalTextColour", "FF4BE500") GUIEditor.button[4] = guiCreateButton(271, 122, 119, 38, "Grenade", false, GUIEditor.tab[3]) guiSetFont(GUIEditor.button[4], "default-bold-small") guiSetProperty(GUIEditor.button[4], "NormalTextColour", "FF00E5D7") GUIEditor.label[20] = guiCreateLabel(5, 187, 402, 15, "__________________________________________________________", false, GUIEditor.tab[3]) guiSetFont(GUIEditor.label[20], "default-bold-small") guiLabelSetColor(GUIEditor.label[20], 163, 239, 0) GUIEditor.button[5] = guiCreateButton(15, 217, 119, 38, "Health", false, GUIEditor.tab[3]) guiSetFont(GUIEditor.button[5], "default-bold-small") guiSetProperty(GUIEditor.button[5], "NormalTextColour", "FF000AE5") GUIEditor.button[6] = guiCreateButton(271, 217, 119, 38, "Armor", false, GUIEditor.tab[3]) guiSetFont(GUIEditor.button[6], "default-bold-small") guiSetProperty(GUIEditor.button[6], "NormalTextColour", "FFCC00E5") GUIEditor.button[7] = guiCreateButton(109, 322, 172, 40, "Exit", false, GUIEditor.tab[3]) guiSetFont(GUIEditor.button[7], "default-bold-small") guiSetProperty(GUIEditor.button[7], "NormalTextColour", "FF727272") GridList = guiCreateGridList(8, 6, 183, 388, false, GUIEditor.tab[2]) guiGridListAddColumn(GridList, "Skin", 0.5) for k,v in ipairs ( Skins ) do local Row = guiGridListAddRow ( GridList ) guiGridListSetItemText( GridList, Row, 1, v[1], false, false ) guiGridListSetItemData( GridList, Row, 1, v[2] ) end Button = guiCreateButton(202, 210, 160, 67, "اختيار", false, GUIEditor.tab[2]) end ) addEventHandler('onClientGUIClick', root, function ( ) if ( source == Button ) then if ( guiGridListGetSelectedItem ( GridList ) ~= -1 ) then local Select = guiGridListGetItemText ( GridList, guiGridListGetSelectedItem ( GridList ), 1 ) local skinID = tonumber ( guiGridListGetItemData ( GridList, guiGridListGetSelectedItem ( GridList ), 1 ) ) triggerServerEvent ( "Getskin", localPlayer, skinID ) else outputChatBox ( "* الرجاء اختيار شخصيه", 255, 255, 255, true ) end elseif ( source == GUIEditor.button[1] ) then triggerServerEvent('giveWeapon_', localPlayer , 0 , 31, 99999 , "M4 " ) elseif ( source == GUIEditor.button[2] ) then triggerServerEvent('giveWeapon_', localPlayer , 0 , 26, 99999 , "Sawed-off" ) elseif ( source == GUIEditor.button[3] ) then triggerServerEvent('giveWeapon_', localPlayer , 0 , 27, 99999 , "Combat SG" ) elseif ( source == GUIEditor.button[4] ) then triggerServerEvent('giveWeapon_', localPlayer , 0 , 16, 3 , "Grenade" ) elseif source == GUIEditor.button[5] then -- ارسال ترايقر للسيرفر triggerServerEvent("Healt",getLocalPlayer()) elseif source == GUIEditor.button[6] then triggerServerEvent("Armor",getLocalPlayer()) elseif source == GUIEditor.button[7] then guiSetVisible (Window,false) showCursor (false) end end ) addEvent ( "CloseWindow", true ) addEventHandler ( "CloseWindow", root, function ( ) guiSetVisible ( Window, false ) showCursor ( false ) end ) function ControlSttas() if ( getElementData ( localPlayer, "Open" ) == true ) then guiSetVisible ( Window, not guiGetVisible ( Window ) ) showCursor ( guiGetVisible ( Window ) ) end end addCommandHandler ( "VIP", ControlSttas )
-
guiSetVisible ( Window, false )
تاكد من اسم النافذه
او ابحث على
guiSetVisible ( Window, true )
يمكن فيه واحده تفتح النافذه بعد ما تسكرها
-
-
-
elseif ( source == GUIEditor.button[3] ) then triggerServerEvent ( "mazzika", localPlayer )---ارسلت ترايقر وحطيت اسمك از و اي اسم تحدده حتى تستقبله من السيرفر
في السيرفر تستقبل الترايقر بهذي الطريقه
addEvent( "mazzika", true ) addEventHandler( "mazzika", root, function() end )
وطبعا تضيف كود يتحقق من فلوس الاعب
if getPlayerMoney(source) >= 100 then
واذا معه قيمه الشراء يخصمها
takePlayerMoney(source,100)
ومن ثم يعطيه اخفاء
setElementAlpha ( source , 0 )
-
-
addEventHandler("onResourceStart", resourceRoot, function() executeSQLQuery ( "CREATE TABLE IF NOT EXISTS PlayerData (Serial,Name)" ) end ) addEventHandler("onPlayerJoin", root, function() updateData(source) end) addEventHandler("onPlayerChangeNick", root, function() updateData(source) end) function updateData(P) if #executeSQLQuery ( "SELECT * FROM PlayerData WHERE Serial = ?", getPlayerSerial(P) ) == 0 then executeSQLQuery("INSERT INTO PlayerData (Serial,Name) VALUES (?,?)",getPlayerSerial(P),getPlayerName(P)) else executeSQLQuery("UPDATE PlayerData SET Name=? WHERE Serial = ?",getPlayerName(P),getPlayerSerial(P)) end end
وتجيب اسم الاعب من سيرياله
executeSQLQuery ( "SELECT * FROM PlayerData WHERE Serial = ?", getPlayerSerial(source) )["Name"]
غير مجرب نهائي ><
موفق ~
-
2 minutes ago, #,+( _xiRoc[K]; > said:
takePlayerMoney بتكون افضل لو كانت في السيرفر
تمام بسيطه صاحب الكود يظبها على الاكواد عنده مثل هيك ...
if isWorldSpecialPropertyEnabled ("extrajump") == false then --ضيفها وقت يضغط زر انه يشتري القفز وبعديها سوي الترايقر if getPlayerMoney(source) < 200000 then return end -- حطها سيرفر takePlayerMoney(source,200000) -- حطها سيرفر setWorldSpecialPropertyEnabled("extrajump", true) --ارسل ترايقر عوده للكلنت وحط فيها الكود end
-
if isWorldSpecialPropertyEnabled ("extrajump") == false then if getPlayerMoney() < 200000 then return end takePlayerMoney(200000) setWorldSpecialPropertyEnabled("extrajump", true) end
-
https://wiki.multitheftauto.com/wiki/AR/String
ماعتقد للوظيفه اي دخل بالاف بي سي
بيجوز اشي من المود بشكل عام والله اعلم يمكن تخريف
-
On 15/09/2016 at 10:06 AM, </Mr.Tn6eL> said:
Latent Eventsالآن سأشرح لكم ال
لكن ماهو هذا؟
أنه يشبه الحدث العادي لكن هذا الحدث يتحكم بمقدار البيانات التي يتم ارسالها
ما فائدتها ؟
لها فوائد كثيرة منها تحميل الملفات والبيانات الكبيرة
هذه الوظائف
triggerLatentClientEvent و triggerLatentServerEvent
triggerClientEventو triggerServerEvent نفس تركيب الجملة لدى
لكن يزداد بعض الارقمنات وهي
bool triggerLatentServerEvent ( string event, [int bandwidth=5000, bool persist=false,] element theElement, [arguments...] )
bandwidth: عدد البايتات التي يتم ارسالها بالثانية
persist: يتم وضع قيمة صحيحة اذا كنت تريد استمرار نقل البيانات بعد ايقاف المود
مثال لتحميل صورة من السيرفر وعرضها
يكون السيرفر هكذا
if fileExists("image.png") then -- نتحقق ان الصورة موجودة في المود local file = fileOpen("image.png", true) -- نفتح ملف الصورة على وضع القراءة فقط local data = fileRead(file, fileGetSize(file)) -- احظار محتويات الملف triggerLatentClientEvent("onClientSendImageData", 524288, false, root, data) -- ارسال البيانات للكلنت fileClose(file) -- اغلاق الملفend
اما الاستقبال بالكلنت يكون كأي استقبال
addEvent("onClientSendImageData")addEventHandler("onClientSendImageData", root, function(data) local file = fileCreate("image.png") -- صنع ملف fileWrite(file, data) -- كتابة بيانات الصورة التي تم تحميلها fileClose(file) -- اغلاق الملف guiCreateStaticImage(0, 0, 150, 150, "image.png", false) -- عرض الصورة على الشاشةend)
يتبع ليوم غد بإذن الله
اقدر احدد كم بايت تحمل وكم باقي بايت لينتهي؟!
-
فيه اكثر من لغه لبرمجه البرامج
انصحك بالvb.net
استخدمته وسهل بالتعلم والتطبيق على الفيجوال بيسك
Camera [ مشكلة ]
in البرمجة
Posted