#STZ Posted July 20, 2019 Share Posted July 20, 2019 السلام عليكم لو سمحتم محتاج طريقة اني اتحقق ان كل اللاعبين في العالم الوهمي معاهم نفس الالمنت داتا اية احسن طريقة ؟ Link to comment
Mr.Mostafa Posted July 20, 2019 Share Posted July 20, 2019 7 minutes ago, #STZ said: السلام عليكم لو سمحتم محتاج طريقة اني اتحقق ان كل اللاعبين في العالم الوهمي معاهم نفس الالمنت داتا اية احسن طريقة ؟ سوي لوب واتحقق Link to comment
#STZ Posted July 20, 2019 Author Share Posted July 20, 2019 اكيد حاولت محتاج كود او مثال Link to comment
HassoN Posted July 20, 2019 Share Posted July 20, 2019 for i, v in ipairs(getElementsByType("player")) do if (getElementDimension(v) == 6969 and getElementData(v, "DATA") == "DATA") then -- your code end end Link to comment
Mr.Mostafa Posted July 20, 2019 Share Posted July 20, 2019 Just now, HassoN said: for i, v in ipairs(getElementsByType("player")) do if (getElementDimension(v) == 6969 and getElementData(v, "DATA") == "DATA") then -- your code end end مب كدا تقريبا اذا شخص واحد بس بالعالم ومعه داتا بيرجع الكود الي يبيه هو يبي لو كل الاعبين الي بالعالم معاهم نفس الداتا Link to comment
HassoN Posted July 20, 2019 Share Posted July 20, 2019 2 minutes ago, Mr.Mostafa said: مب كدا تقريبا اذا شخص واحد بس بالعالم ومعه داتا بيرجع الكود الي يبيه هو يبي لو كل الاعبين الي بالعالم معاهم نفس الداتا "لو سمحتم محتاج طريقة اني اتحقق ان كل اللاعبين في العالم الوهمي معاهم نفس الالمنت داتا" ^ ذي طريقة التحقق ولو قصده شي ثاني خليه يوضح عشان مافهمت Link to comment
#STZ Posted July 20, 2019 Author Share Posted July 20, 2019 1 hour ago, HassoN said: for i, v in ipairs(getElementsByType("player")) do if (getElementDimension(v) == 6969 and getElementData(v, "DATA") == "DATA") then -- your code end end حبيبي انا عارف الكود دا انا مبرمج برضو هههه انا اقصد انه يتحقق ان كل اللاعبين معاهم نفس قيمة الداتا فهمتني ؟ لكن انا مش هكتب قيمة Link to comment
#STZ Posted July 20, 2019 Author Share Posted July 20, 2019 انا عايز اعمل طريقة زي يوسفل فانكشن for i, v in ipairs(getElementsByType("player")) do if isPlayersHaveSameElementData(v,"DataName") then end end اتمني تكون فهمتني Link to comment
HassoN Posted July 20, 2019 Share Posted July 20, 2019 (edited) 32 minutes ago, #STZ said: انا عايز اعمل طريقة زي يوسفل فانكشن for i, v in ipairs(getElementsByType("player")) do if isPlayersHaveSameElementData(v,"DataName") then end end اتمني تكون فهمتني isPlayersHaveSameElementData (v,"DataName") مثالك غير منطقي ، تبي تتحقق ان اللاعب عنده نفس الالمنت داتا .. طيب مقارنتاً مع من؟ ناقصك ارقمنت اللاعب الثاني الي قاعد تقارن معاه .. ولا انا غلطان؟ المفروض شي زي doPlayersHaveSameElementData(player1, player2, "dataName") على كل حال لو تريد تجيب اللاعبين الي معهم نفس الالمنت داتا جرب تسوي لوب داخل لوب عشان تجيب كل اللاعبين وتقارنهم بكل اللاعبين واذا تطابق الداتا تسوي الي تريده شي مثل for i, player1 in ipairs(getElementsByType("player")) do for i, player2 in ipairs(getElementsByType("player")) do if (player1 ~= player2 and getElementData(player1, "data") == getElementData(player2, "data") and getElementDimension(player1) == getElementDimension(player2)) then -- your code end end end بس الطريقة ابداً غير جيدة وما انصح فيها Edited July 20, 2019 by HassoN 1 Link to comment
N3xT Posted July 21, 2019 Share Posted July 21, 2019 (edited) الكود ينقصه بعض التحققات والتعديلات, لكن عموماً فكرته كذا تقريباً function doesPlayersHaveTheSameDataInDimension ( dataName, dataValue, dimension ) for k, v in ipairs ( getElementsByType ( "player" ) ) do if ( getElementDimension ( v ) == dimension ) then if ( getElementData ( v, dataName ) ~= dataValue ) then return false end end end return true end -- doesPlayersHaveTheSameDataInDimension ( العالم الوهمي, القيمة اللي المفروض الجميع عنده هي, اسم الداتا ) Edited July 21, 2019 by N3xT Link to comment
nxFairlywell Posted July 21, 2019 Share Posted July 21, 2019 (edited) : ارقمنتات اجباريه dimension data : ارقمنتات اختيارية players تقدر تحط جدول وتتحقق من اللاعبين المحددين اللي فيه dimension وتقدر ماتحط جدول وتتحقق من كل اللاعبين في السيرفر طبعاً اللي في العالم المحدد اللي هو function doPlayersHaveSameData(players,dimension,data) if dimension and type(dimension)=="number" and data and type(data) == "string" then if players and type(players) == "table" and #players > 0 then local playersHaveData = {}; for key, player in ipairs (players) do if player and isElement(player) and getElementType(player) == "player" and getElementDimension(player) == dimension then local plrData = getElementData(player,data); if plrData then table.insert(playersHaveData,player); end end end if #playersHaveData == #players then return true else return false end else local players = getElementsByType("player"); local playersHaveData = {}; for key, player in ipairs (players) do if player and isElement(player) and getElementType(player) == "player" and getElementDimension(player) == dimension then local plrData = getElementData(player,data); if plrData then table.insert(playersHaveData,player); end end end if #playersHaveData == #players then return true else return false end end end return false end -- Example : مثال players = {} players[1] = localPlayer; players[2] = localPlayer; if doPlayersHaveSameData(players,5,"myData") then outputChatBox("TRUE"); end -- مثال 2 : if doPlayersHaveSameData(5,"myData") then outputChatBox("TRUE"); end Edited July 21, 2019 by NX_CI 1 Link to comment
nxFairlywell Posted July 21, 2019 Share Posted July 21, 2019 أما إذا كنت تريد تجيب اللاعبين بدون ماتحدد الداتا إستخدم هذا ملف سيرفر فقط , لا يعمل في الكلينت * function table.findKey(tbl,key) if tbl and type(tbl) == "table" then if key and type(key) == "string" then for tblKey, _ in pairs (tbl) do if tblKey == key then return true end end return false else return false end end return false end function getPlayersInDimensionHaveSameData(players,dimension) if players and type(players) =="table" then if dimension and type(dimension) == "number" then local __players = {}; for k, player in ipairs (players) do if getElementDimension(player) == dimension then for _, data in ipairs (getAllElementData(player)) do if not (table.findKey(players,data)) then __players[data] = {}; end table.insert(__players[data],player); end end end for data, _ in pairs (__players) do if #__players[data] < 2 then __players[data] = nil; end end return __players end return false end return false end -- مثال local players = getElementsByType("player"); local __players = getPlayersInDimensionHaveSameData(players,5); for data, player in pairs (__players) do outputChatBox("Data name : "..data.." & Player name : "..getPlayerName(player):gsub("#%x%x%x%x%x%x",""),root); end Link to comment
#STZ Posted July 21, 2019 Author Share Posted July 21, 2019 @NX_CI دا كان طلبي شكرا جزيلا Link to comment
#STZ Posted July 26, 2019 Author Share Posted July 26, 2019 On 21/07/2019 at 13:36, NX_CI said: : ارقمنتات اجباريه dimension data : ارقمنتات اختيارية players تقدر تحط جدول وتتحقق من اللاعبين المحددين اللي فيه dimension وتقدر ماتحط جدول وتتحقق من كل اللاعبين في السيرفر طبعاً اللي في العالم المحدد اللي هو function doPlayersHaveSameData(players,dimension,data) if dimension and type(dimension)=="number" and data and type(data) == "string" then if players and type(players) == "table" and #players > 0 then local playersHaveData = {}; for key, player in ipairs (players) do if player and isElement(player) and getElementType(player) == "player" and getElementDimension(player) == dimension then local plrData = getElementData(player,data); if plrData then table.insert(playersHaveData,player); end end end if #playersHaveData == #players then return true else return false end else local players = getElementsByType("player"); local playersHaveData = {}; for key, player in ipairs (players) do if player and isElement(player) and getElementType(player) == "player" and getElementDimension(player) == dimension then local plrData = getElementData(player,data); if plrData then table.insert(playersHaveData,player); end end end if #playersHaveData == #players then return true else return false end end end return false end -- Example : مثال players = {} players[1] = localPlayer; players[2] = localPlayer; if doPlayersHaveSameData(players,5,"myData") then outputChatBox("TRUE"); end -- مثال 2 : if doPlayersHaveSameData(5,"myData") then outputChatBox("TRUE"); end دا كان المطلوب لكن لم يعمل للاسف Link to comment
#STZ Posted July 26, 2019 Author Share Posted July 26, 2019 لا مفيش لكن كل اللاعبين بيكونو نفس الداتا و يدي قيمة فولس Link to comment
nxFairlywell Posted July 26, 2019 Share Posted July 26, 2019 12 minutes ago, #STZ said: لا مفيش لكن كل اللاعبين بيكونو نفس الداتا و يدي قيمة فولس شوف يا صاحبي , هو الكود المفروض يكون شغال 100% لكن تأكد انت من اللاعبين هل جميعهم بنفس العالم اللي انت محدده أو لا Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now