w7sH Posted May 16, 2016 Share Posted May 16, 2016 (edited) عندي ذا مود الساعات مشكلته اذا اعطيت واحد توزيع مره المره الثانيه مقدر اعطيه وش المشكله هنا يعني مثلا اذا وزعت ساعات واستلمها هو يستلمها المره الاولى واذا جا بعد فتره سويت توزيع م يقدر يستلم وش المشكله؟ هذا الكود كود سيرفر exports.scoreboard:addScoreboardColumn('PlayTime') local t = { } local Groups = { "Admin" } function isPlayerAdmin(player) for k,v in ipairs ( Groups ) do if ( isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(player)), aclGetGroup(v)) ) then return true end end end function checkValues( source,arg1,arg2) if (arg2 >= 60) then t[ source ][ 'min' ] = tonumber( t[ source ][ 'min' ] or 0 ) + 1 t[ source ][ 'sec' ] = 0 end if (arg1 >= 60) then t[ source ][ 'min' ] = 0 t[ source ][ 'hour' ] = tonumber( t[ source ][ 'hour' ] or 0 ) + 1 end return arg1, arg2 end setTimer( function( ) for _, v in pairs( getElementsByType( "player" ) ) do if (not t[ v ]) then t[ v ] = { ["hour"] = 0, ["min"] = 0, ["sec"] = 0 } end t[ v ][ 'sec' ] = tonumber( t[ v ][ 'sec' ] or 0 ) + 1 local min,sec = checkValues ( v, t[ v ][ 'min' ] or 0, t[ v ][ 'sec' ] or 0 ) local hour = tonumber( t[ v ][ 'hour' ] or 0 ) setElementData( v, "PlayTime", tostring( hour )..':'..tostring( min )..':'..tostring( sec ) ) end end, 1000, 0 ) function onPlayerQuit ( ) local playeraccount = getPlayerAccount ( source ) if ( playeraccount ) and not isGuestAccount ( playeraccount ) then local sValue = getElementData( source,'PlayTime' ) local hour = tonumber( t[ source ][ 'hour' ] or 0 ) local min = tonumber( t[ source ][ 'min' ] or 0 ) local sec = tonumber( t[ source ][ 'sec' ] or 0 ) setAccountData ( playeraccount, "PlayTime-hour", tostring(hour) ) setAccountData ( playeraccount, "PlayTime-min", tostring(min) ) setAccountData ( playeraccount, "PlayTime-sec", tostring(sec) ) setAccountData ( playeraccount, "PlayTime", tostring(sValue) ) local row = executeSQLQuery ( "SELECT * FROM TopTime WHERE serial = ?", getPlayerSerial ( source ) ) if ( #row ~= 0 ) then executeSQLQuery("UPDATE TopTime SET hour = ?, min = ?, scou = ? WHERE serial = ?", tostring ( t [ source ] [ "hour" ] ), tostring ( t [ source ] [ "min" ] ), tostring ( t [ source ] [ "sec" ] ), tostring ( getPlayerSerial ( source ) ) ) end end t[ source ] = nil end function onPlayerLogin (_, playeraccount ) if ( playeraccount ) then local time = getAccountData ( playeraccount, "PlayTime" ) local hou = getAccountData ( playeraccount, "PlayTime-hour") local min = getAccountData ( playeraccount, "PlayTime-min") local sec = getAccountData ( playeraccount, "PlayTime-sec") if ( time ) then setElementData ( source, "PlayTime", time ) t[ source ]["hour"] = tonumber(hou) t[ source ]["min"] = tonumber(min) t[ source ]["sec"] = tonumber(sec) else setElementData ( source, "PlayTime",0 ) setAccountData ( playeraccount, "PlayTime",0 ) t[ source ]["hour"] = 0 t[ source ]["min"] = 0 t[ source ]["sec"] = 0 end end end addEventHandler ( "onPlayerQuit", root, onPlayerQuit ) addEventHandler ( "onPlayerLogin", root, onPlayerLogin ) addEventHandler ( "onPlayerLogout", root, function ( acc ) local sValue = getElementData( source,'PlayTime' ) local hour = tonumber( t[ source ][ 'hour' ] or 0 ) local min = tonumber( t[ source ][ 'min' ] or 0 ) local sec = tonumber( t[ source ][ 'sec' ] or 0 ) setAccountData ( acc, "PlayTime-hour", tostring(hour) ) setAccountData ( acc, "PlayTime-min", tostring(min) ) setAccountData ( acc, "PlayTime-sec", tostring(sec) ) setAccountData ( acc, "PlayTime", tostring(sValue) ) local row = executeSQLQuery ( "SELECT * FROM TopTime WHERE serial = ?", getPlayerSerial ( source ) ) if ( #row ~= 0 ) then executeSQLQuery("UPDATE TopTime SET hour = ?, min = ?, scou = ? WHERE serial = ?", tostring ( t [ source ] [ "hour" ] ), tostring ( t [ source ] [ "min" ] ), tostring ( t [ source ] [ "sec" ] ), tostring ( getPlayerSerial ( source ) ) ) end t[ source ]["hour"] = 0 t[ source ]["min"] = 0 t[ source ]["sec"] = 0 end ) addEventHandler("onResourceStart", resourceRoot, function () for k,v in ipairs ( getElementsByType ( "player" ) ) do if not ( isGuestAccount ( getPlayerAccount ( v ) ) ) then if ( getAccountData ( getPlayerAccount ( v ), "PlayTime" ) ) then local hou = getAccountData ( getPlayerAccount ( v ), "PlayTime-hour") local min = getAccountData ( getPlayerAccount ( v ), "PlayTime-min") local sec = getAccountData ( getPlayerAccount ( v ), "PlayTime-sec") if not ( t [ v ] ) then t[ v ] = { ["hour"] = 0, ["min"] = 0, ["sec"] = 0 } end t[ v ]["hour"] = tonumber(hou) t[ v ]["min"] = tonumber(min) t[ v ]["sec"] = tonumber(sec) end end end end) addEventHandler("onResourceStop", resourceRoot, function () for k,v in ipairs ( getElementsByType ( "player" ) ) do if not ( isGuestAccount ( getPlayerAccount ( v ) ) ) then local sValue = getElementData( v,'PlayTime' ) local hour = tonumber( t[ v ][ 'hour' ] or 0 ) local min = tonumber( t[ v ][ 'min' ] or 0 ) local sec = tonumber( t[ v ][ 'sec' ] or 0 ) setAccountData ( getPlayerAccount ( v ), "PlayTime-hour", tostring(hour) ) setAccountData ( getPlayerAccount ( v ), "PlayTime-min", tostring(min) ) setAccountData ( getPlayerAccount ( v ), "PlayTime-sec", tostring(sec) ) setAccountData ( getPlayerAccount ( v ), "PlayTime", tostring(sValue) ) local row = executeSQLQuery ( "SELECT * FROM TopTime WHERE serial = ?", getPlayerSerial ( v ) ) if ( #row ~= 0 ) then executeSQLQuery("UPDATE TopTime SET hour = ?, min = ?, scou = ? WHERE serial = ?", tostring ( t [ v ] [ "hour" ] ), tostring ( t [ v ] [ "min" ] ), tostring ( t [ v ] [ "sec" ] ), tostring ( getPlayerSerial ( v ) ) ) end end end end) function setPlayerTime ( Player, Type, Hour ) if ( Type == "-" ) then t[ Player ][ "hour" ] = t [ Player ][ "hour" ] - tonumber ( Hour ) else t[ Player ][ "hour" ] = t [ Player ][ "hour" ] + tonumber ( Hour ) end end function getPlayerHours ( Player ) return t [ Player ][ "hour" ] or 0 end addCommandHandler("giveTimeacc", function ( player, _, accname, time ) if ( accname ) then if ( time ) then if ( tonumber ( time ) <= 600 ) then if not ( isGuestAccount ( getPlayerAccount ( player ) ) ) then if ( isPlayerAdmin ( player ) ) then if ( getAccount ( tostring ( accname ) ) ) then setAccountData ( getAccount ( tostring ( accname ) ), "PlayTime-hour", tostring ( time ) ) for k,v in ipairs ( getElementsByType("player") ) do if not ( isGuestAccount ( getPlayerAccount ( v ) ) ) then if ( getAccountName ( getPlayerAccount ( v ) ) == tostring ( accname ) ) then t [ v ] [ "hour" ] = tonumber ( time ) end end end outputChatBox("* ok", player, 255, 255, 0, true) else outputChatBox("* No Account With This Name !", player, 255, 0, 0, true) end else outputChatBox("* You Are Not Admin !", player, 255, 0, 0, true) end else outputChatBox("* Please Login To Use This Command !", player, 255, 0, 0, true) end else outputChatBox("* U Can't Give Time More 100 Hour !", player, 255, 0, 0, true) end else outputChatBox("* Please Write a Hour !", player, 255, 0, 0, true) end else outputChatBox("* Please Write Name of Account !", player, 255, 0, 0, true) end end) addCommandHandler("TimeF", function ( player, _, enable, time ) if ( enable ) then if ( time ) then if ( tonumber ( time ) <= 100 ) then if not ( isGuestAccount ( getPlayerAccount ( player ) ) ) then if ( isPlayerAdmin ( player ) ) then if ( enable == "true" ) then if ( getElementData ( resourceRoot, "enabledTwaged" ) == true ) then for k,v in ipairs ( getAccounts () ) do setAccountData ( v, "getatime", false ) end setElementData ( resourceRoot, "hoursTwaged", tonumber ( time ) ) outputChatBox ("* Ok !", player, 255, 255, 0, true) else setElementData ( resourceRoot, "enabledTwaged", true ) for k,v in ipairs ( getAccounts () ) do setAccountData ( v, "getatime", false ) end setElementData ( resourceRoot, "hoursTwaged", tonumber ( time ) ) outputChatBox ("* Ok !", player, 255, 255, 0, true) end else setElementData ( resourceRoot, "enabledTwaged", false ) end else outputChatBox("* You Are Not Admin !", player, 255, 0, 0, true) end else outputChatBox("* Please Login To Use This Command ! / الرجاء التسجيل لإستلام الساعات .", player, 255, 0, 0, true) end else outputChatBox("* U Can't Give Time More 100 Hour !", player, 255, 0, 0, true) end else outputChatBox("* Please Write a Hours !", player, 255, 0, 0, true) end else outputChatBox("* Please Write a Type of Give Time !", player, 255, 0, 0, true) end end) addCommandHandler("تواجد", function ( player ) if not ( isGuestAccount ( getPlayerAccount ( player ) ) ) then if ( getAccountData ( getPlayerAccount ( player ), "getatime" ) == false ) then if ( getElementData ( resourceRoot, "enabledTwaged" ) == true ) then setPlayerTime ( player, "+", getElementData ( resourceRoot, "hoursTwaged" ) ) Edited May 19, 2016 by Guest Link to comment
#|_oskar_|# Posted May 16, 2016 Share Posted May 16, 2016 لو تبي تفتح او تقفل التوزيع تكتب ب اف 8 TimeF true -- مفتوح TimeF false -- مقفول Link to comment
w7sH Posted May 16, 2016 Author Share Posted May 16, 2016 اقولك مشكلتي اذا سويت توزيع الكل يستلم تمام؟ لكن اذا جيت بسوي توزيع مره ثانيه واذا احد بيستلم التوزيع م يقدر , ليه؟ Link to comment
w7sH Posted May 17, 2016 Author Share Posted May 17, 2016 ي شباب محتاج الكود ضروري , عطونا الفائدة .. Link to comment
ALw7sH Posted May 17, 2016 Share Posted May 17, 2016 مو فاهم ليش الاكاونت داتا تحطها ترو وفولس ؟ لول فنكشن سيت اكاونت داتا يطلب سترنق في القيمة عدل هذا الشي واذا ماكان المشكلة ورنا الدي بق عشان نعرف وش الخطا بالضبط Link to comment
w7sH Posted May 18, 2016 Author Share Posted May 18, 2016 نفس المشكلهه .. لم تزبط معنا Link to comment
w7sH Posted May 19, 2016 Author Share Posted May 19, 2016 ي ليت احد يرد محتاج الكود ضروري.. 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