Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/09/17 in all areas

  1. DOWNLOAD: https://community.multitheftauto.com/index.php?p=resources&s=details&id=14512 This script allows you to detect Ban evaders who change IP or serial to try evade bans, it can fight:- Dynamic IP's (or static..)- changed (new) serialsHow? By resolving the IP hostname when they connect.You can choose to 'log' the connections (flag option) when a player connects with a defined hostname, which means Internet Provider hostname, so you can investigate if they are who you think they might be.VPN hostname: looks like; datacenter1.vpnworks.net (example; you would then block or log use of a specific proxy/VPN program if many ban evaders use it)Home internet connection; looks like: (develop a sense for how they often look) customer17135.ippool.t-mobile.com (you can both list the customer-or pool specific hostname (before the first dot); this to avoid logging or blocking innocent unrelated players, OR if they are (almost) the only using that Internet provider or VPN software, log or block general hostname ('ippool.t-mobile.com' as for fictive example) If you know one problematic ban evader uses one internet provider usually (ISP) you check the hostname of that IP and add it to the flag list, then when someone connects using this matching hostname, it will print a warning to server.log and you can investigate: - Does the player behave as the banned player? - Is he with the same friends or does he talk similarly, IS HE clearly the same person? This resource basically give you usable leads in order to identify these ban evaders; it provides you with suspects, based on Internet provider or customer account hostname, so you can start analyzing if they are the same person. It can also block the connection automatically instead of only logging a warning of the suspicious player connecting. Besides the lead-giving to investigate, if you got problematic ban evader(s) who mainly use the same VPN/proxy program that uses often specific hostnames of Datacenters/the VPN company, or the same Internet provider hostname or the evader himself has a Dynamic public IP, BUT.. a static hostname (like based upon f.e, customer82423.pool.telecomalgeria.com) you can define and nail them on this static hostname that belongs to the ISP provider customer who has the internet/DSL account. (aka, the same person). As said before, be careful by analyzing the specific use of hostnames to see how many potentially legit players you could hurt. It's the best choice to go for Flagging only and not refusing connections, so you can look on a case by case basis if the player seems to be the same as the ban evader; and then re-ban the new evading serial or IP's. This resource will prove to be a reliable tool. IMPORTANT!! You MUST have a bit of experience with web-hosting in order to get this resource working! It will NOT work straight out of the box, you'll need to host a resolver API (PHP) file on the web. This .php file is included, together with extensive README (documentation) for you to understand why this is required, and assist in setting the resource up. See below a copy of this documentation: (spoiler)
    1 point
  2. الله يسلمك حبيبي وحياك بأي وقت
    1 point
  3. تسلم والله انك كفوووووووووووووووووووووو ظبط مية مية تاني كان في غلط اخير بس صلحتو انا ~~سطر 87 Close = guiCreateButton(552, 478, 59, 27, "» ✘ «", false, qwanin) ~~سطر 89 GUIEditor.label[42] = guiCreateLabel(136, 350, 332, 19, "* محاولة التهكير أو تخريب الأسل = باند مؤبد + سحب الحساب *", false, qmanagermanagers) نتعلم منك يا وحشش
    1 point
  4. لانه هيعرفها فوق في الفنكشن و لما يستدعيها هيستدعيها جوا الايفينت و بعدين ممكن يعمل حاجة احسن setTimer ( Function ( ) --وهنا يحط اكواد الانتقال مع المنت hitElement ده اللي كنت اصده و ينهي end, time, 1)
    1 point
  5. طيب ليش ماتستخدم getRandomPlayer
    1 point
  6. addEvent ( 'lol' , true ) addEventHandler ( 'lol', root, function ( ) if ( getPlayerMoney ( source ) >= 20000 ) then takePlayerMoney ( source, 20000 ) outputChatBox ( 'لقد إشتريت تذكرة الدخول لألعاب الدراجات النارية', source, 0, 255, 0 ) setElementData ( source, 'tick', true ) else outputChatBox ( 'انت لا تملك المال الكافي !!!', source, 255, 0, 0 ) end end ) m1 = createMarker ( 2792.90430, -1721.76599, 12.8, 'arrow', 2, 255, 255, 100 ) addEventHandler ( 'onMarkerHit', m1, function ( hitElement ) if ( getElementType ( hitElement ) == 'player' ) then if ( getElementData ( hitElement, 'tick' ) ) then setElementPosition ( hitElement, 2792, -1721, 12.8 ) else outputChatBox ( 'انت لا تملك المال الكافي !!!', hitElement, 255, 0, 0, true ) end end end )
    1 point
  7. Works like a charm now, most unique RP server imo.
    1 point
  8. "onElementDataChange" اهئ
    1 point
  9. I released a fixed version @Mohamed Asad that detects Hydra and hunter-on vehicle kills (with rocket as you described...) and some other types of kills. Get it here, https://community.multitheftauto.com/index.php?p=resources&s=details&id=14801 Anyways, clientside; local explosionVehicles = { [432] = true, [520] = true, [425] = true } local possibleKillers = {} local killerTimer = false addEvent ("onClientPlayerKillMessage",true) function onClientPlayerKillMessage ( killer,weapon,wr,wg,wb,kr,kg,kb,width,resource ) if wasEventCancelled() then return end outputKillMessage ( source, wr,wg,wb,killer,kr,kg,kb,weapon,width,resource ) end addEventHandler ("onClientPlayerKillMessage",getRootElement(),onClientPlayerKillMessage) function outputKillMessage ( source, wr,wg,wb,killer,kr,kg,kb,weapon,width,resource ) if not iconWidths[weapon] then if type(weapon) ~= "string" then weapon = 999 end end local killerName local wastedName if not tonumber(wr) then wr = 255 end if not tonumber(wg) then wg = 255 end if not tonumber(wb) then wb = 255 end if not tonumber(kr) then kr = 255 end if not tonumber(kg) then kg = 255 end if not tonumber(kb) then kb = 255 end if ( source ) then if isElement ( source ) then if getElementType ( source ) == "player" then wastedName = getPlayerName ( source ) else outputDebugString ( "outputKillMessage - Invalid 'wasted' player specified",0,0,0,100) return false end elseif type(source) == "string" then wastedName = source end else outputDebugString ( "outputKillMessage - Invalid 'wasted' player specified",0,0,0,100) return false end if ( killer ) then if isElement ( killer ) then if getElementType ( killer ) == "player" then killerName = getPlayerName ( killer ) else outputDebugString ( "outputKillMessage - Invalid 'killer' player specified",0,0,0,100) return false end elseif type(killer) == "string" then killerName = killer else killerName = "" end else killerName = "" end --create the new text if not killerName then killerName = "" end return outputMessage ( {killerName, {"padding",width=3}, {"icon",id=weapon}, {"padding",width=3},{"color",r=wr,g=wg,b=wb}, wastedName}, kr,kg,kb ) end function getVehiclePassengerCount(vehicle) local n = 0 for _, v in pairs(getVehicleOccupants(vehicle)) do n = n + 1 end return n end function getNearbyVehicle(x, y, z) for _, vehicle in pairs(getElementsByType("vehicle", nil, true)) do local vx, vy, vz = getElementPosition(vehicle) local dist = getDistanceBetweenPoints3D(x, y, z, vx, vy, vz) if dist <= 10 and getVehiclePassengerCount(vehicle) > 0 then return vehicle end end end function tableCount(t) local n = 0 for _, v in pairs(t) do n = n + 1 end return n end addEventHandler("onClientExplosion", root, function(x, y, z, explosionType) -- Check if it is a rocket explosion and if rocket creator has hunter/hydra/rhino if getElementType(source) == "player" and (explosionType == 2 or explosionType == 10) and getPedOccupiedVehicle(source) and explosionVehicles[getElementModel(getPedOccupiedVehicle(source))] then local victimVehicle = getNearbyVehicle(x, y, z) if victimVehicle then -- Store occupants' possible killer only to occupants' client memory for _, occupant in pairs(getVehicleOccupants(victimVehicle)) do if occupant == localPlayer then if not killerTimer then killerTimer = setTimer(function() possibleKillers = {} end, 7000, 1) end if killerTimer and isTimer(killerTimer) then resetTimer(killerTimer) end possibleKillers = {} possibleKillers[getVehicleOccupants(victimVehicle)] = source end end end end end, nil, "high+10" ) addEventHandler("onClientVehicleDamage", root, function(attacker, weapon) -- Additionally check if weapon used to damage a vehicle was hunter minigun, which in that case, hunter is the real killer here if getVehiclePassengerCount(source) > 0 and attacker and getElementType(attacker) == "vehicle" and weapon == 38 and getElementModel(attacker) == 425 then for _, occupant in pairs(getVehicleOccupants(source)) do if occupant == localPlayer then if not killerTimer then killerTimer = setTimer(function() possibleKillers = {} end, 7000, 1) end if killerTimer and isTimer(killerTimer) then resetTimer(killerTimer) end possibleKillers = {} possibleKillers[getVehicleOccupants(source)] = getVehicleController(attacker) end end end -- Also check if killer had a rustler or rc baron if getVehiclePassengerCount(source) > 0 and attacker and getElementType(attacker) == "vehicle" and weapon == 31 and (getElementModel(attacker) == 464 or getElementModel(attacker) == 476) then for _, occupant in pairs(getVehicleOccupants(source)) do if occupant == localPlayer then if not killerTimer then killerTimer = setTimer(function() possibleKillers = {} end, 7000, 1) end if killerTimer and isTimer(killerTimer) then resetTimer(killerTimer) end possibleKillers = {} possibleKillers[getVehicleOccupants(source)] = getVehicleController(attacker) end end end end ) addEventHandler("onClientPlayerWasted", root, function(killer, weapon, bodypart) if source == localPlayer then if tableCount(possibleKillers) > 0 then local theKiller = false; for _, pkiller in pairs(possibleKillers) do theKiller = pkiller break end if theKiller then local veh = getPedOccupiedVehicle(theKiller); if veh then triggerServerEvent("outputKillFromClient", localPlayer, theKiller, getElementModel(veh)) end end if killerTimer and isTimer(killerTimer) then killTimer(killerTimer) end possibleKillers = {} end end end ) serverside; local config = { ["lines"] = 5, ["startY"] = 0.35, ["textHeight"] = 16, ["iconHeight"] = 20, ["iconSpacing"] = 4, ["defaultWeapon"] = 255, ["fadeTime"] = 5000, ["startFade"] = 15000, ["align"] = "right", ["startX"] = -10 } local default = { ["lines"] = 5, ["startY"] = 0.25, ["textHeight"] = 16, ["iconHeight"] = 20, ["iconSpacing"] = 4, ["defaultWeapon"] = 255, ["fadeTime"] = 5000, ["startFade"] = 15000, ["align"] = "right", ["startX"] = -10 } function KillMessages_onPlayerWasted(totalammo, killer, killerweapon, bodypart) local usedVehicle = nil local killerType = nil local killerweapon = killerweapon or 255 -- In very rare cases killer isn't nil or false but isn't an element. if (killer and not isElement(killer)) then killer = nil end if (killer) then killerType = getElementType(killer) end -- Sometimes the killer is returned as the driver instead of vehicle, like when driving a Rhino but we need the vehicle ID if (killerType == "player") then local vehicle = getPedOccupiedVehicle(killer) if (vehicle and getPedWeapon(killer) == 0) then usedVehicle = getElementModel(vehicle) end end -- Change the killer into the vehicle controller if (killer and killerType == "vehicle") then usedVehicle = getElementModel(killer) killer = getVehicleController(killer) or killer killerType = getElementType(killer) end -- If killed by rocket and was on foot player turn it into their current weapon if (killerweapon == 19 and killerType == "player" and not isPedInVehicle(killer)) then killerweapon = getPedWeapon(killer) or 51 end -- Got a killer? Print the normal "* X died" if not if (killer and killerType == "player") then local kr, kg, kb = getPlayerNametagColor(killer) if (getPlayerTeam(killer)) then kr, kg, kb = getTeamColor(getPlayerTeam(killer)) end -- Suicide? if (source == killer) then local triggered = triggerEvent("onPlayerKillMessage", source, false, killerweapon, bodypart) --outputDebugString("Cancelled: "..tostring(triggered)) if (triggered) then eventTriggered(source, false, killerweapon, bodypart, true, usedVehicle) return end end local triggered = triggerEvent("onPlayerKillMessage", source, killer, killerweapon, bodypart) --outputDebugString("Cancelled: "..tostring(triggered)) if (triggered) then eventTriggered(source, killer, killerweapon, bodypart, false, usedVehicle) end else if killerweapon ~= 63 then local triggered = triggerEvent("onPlayerKillMessage", source, false, killerweapon, bodypart) --outputDebugString("Cancelled: "..tostring(triggered)) if (triggered) then eventTriggered(source, false, killerweapon, bodypart, false, usedVehicle) end end end end addEventHandler("onPlayerWasted", root, KillMessages_onPlayerWasted) addEvent ( "onPlayerKillMessage" ) function eventTriggered ( source,killer,weapon,bodypart,suicide,usedVehicle,ignoreExplosions ) --outputDebugString("after: source = " .. getElementType(source) .. "killer = " .. getElementType(killer) .. " weapon = " .. tostring(weapon) .. " bodypart = " .. tostring(bodypart) .. " suicide = " .. tostring(suicide) .. "usedVehicle = " .. tostring(usedVehicle)) local wr,wg,wb = getPlayerNametagColor ( source ) if getPlayerTeam ( source ) then wr,wg,wb = getTeamColor ( getPlayerTeam ( source ) ) end local kr,kg,kb = false,false,false if ( killer ) then kr,kg,kb = getPlayerNametagColor ( killer ) if getPlayerTeam ( killer ) then kr,kg,kb = getTeamColor ( getPlayerTeam ( killer ) ) end end if ( usedVehicle ) then weapon = usedVehicle end outputKillMessage ( source, wr,wg,wb,killer,kr,kg,kb,weapon ) -- local extra = "" if ( usedVehicle ) then extra = " (Vehicle)" end if ( killer ) then if suicide then local weaponName = getWeaponNameFromID ( weapon ) if weaponName then outputConsoleKillMessage ( "* "..getPlayerName(source).." killed himself. ("..weaponName..")" ) else outputConsoleKillMessage ( "* "..getPlayerName(source).." killed himself."..extra ) end else local weaponName = getWeaponNameFromID ( weapon ) if weaponName then outputConsoleKillMessage ( "* "..getPlayerName(killer).." killed "..getPlayerName(source)..". ("..weaponName..")" ) else outputConsoleKillMessage ( "* "..getPlayerName(killer).." killed "..getPlayerName(source).."."..extra ) end end else outputConsoleKillMessage ( "* "..getPlayerName(source).." died."..extra ) end -- end function outputConsoleKillMessage ( text ) outputConsole ( text ) end addEvent("outputKillFromClient", true) addEventHandler("outputKillFromClient", root, function(killer, model) if source == client then --outputDebugString("before: client = " .. getElementType(client) .. " killer = " .. getElementType(killer).. " model = " .. tostring(model)) local triggered = triggerEvent("onPlayerKillMessage", client, killer, 19, nil) if (triggered) then eventTriggered(client, killer, 19, nil, false, model, true) end end end ) function outputKillMessage ( killed, wr,wg,wb,killer,kr,kg,kb,weapon,width,resource ) if ( resource ) then resource = getResourceName(resource) end if not isElement(killed) then outputDebugString ( "outputKillMessage - Invalid 'wasted' player specified",0,0,0,100) return false end if not getElementType(killed) == "player" then outputDebugString ( "outputKillMessage - Invalid 'wasted' player specified",0,0,0,100) return false end return triggerClientEvent(getRootElement(),"onClientPlayerKillMessage",killed,killer,weapon,wr,wg,wb,kr,kg,kb,width,resource ) end function outputMessage ( message, visibleTo, r, g, b, font ) if type(message) ~= "string" and type(message) ~= "table" then outputDebugString ( "outputMessage - Bad 'message' argument", 0, 112, 112, 112 ) return false end if not isElement(visibleTo) then outputDebugString ( "outputMessage - Bad argument", 0, 112, 112, 112 ) return false end --Turn any resources into resource names if type(message) == "table" then for i,part in ipairs(message) do if type(part) == "table" and part[1] == "image" then if part.resource then message[i].resourceName = getResourceName(part.resource) else part.resourceName = getResourceName(sourceResource) end end end end return triggerClientEvent ( visibleTo, "doOutputMessage", visibleTo, message, r, g, b, font ) end function setKillMessageStyle ( startX,startY,align,lines,fadeStart,fadeAnimTime ) if ( not startX ) then startX = default.startX end if ( not startY ) then startY = default.startY end if ( not align ) then startY = align.startY end if ( not lines ) then lines = default.lines end if ( not fadeStart ) then fadeStart = default.startFade end if ( not fadeAnimTime ) then fadeAnimTime = default.fadeTime end config.startX = startX config.startY = startY config.align = align config.lines = lines config.startFade = fadeStart config.fadeTime = fadeAnimTime for k,v in ipairs(getElementsByType"player") do triggerClientEvent(v,"doSetKillMessageStyle",v,config.startX,config.startY,config.alignX,config.lines,config.startFade,config.fadeTime) end return true end addEvent ("onClientKillmessagesLoaded",true) addEventHandler ( "onClientKillmessagesLoaded", getRootElement(), function() triggerClientEvent(client,"doSetKillMessageStyle",client,config.startX,config.startY,config.alignX,config.lines,config.startFade,config.fadeTime) end ) @Mohamed Asad Today 22th september i fixed a few bugs in code (bad outputting aka wrong killfeed data) i suggest you update version (or just watch the community resource page i linked regularly)
    1 point
  10. @Source|> تستهبل ؟
    1 point
  11. سسلآم عليكمم , سيرفر رائع , لنآ جيهه آن شاء الله بالتوفيق
    1 point
  12. Download MTA SE from here: https://mega.nz/#!Aw4wjAxL!75tSMz1CTenosiKBXi2ka9NTMvKDpkecAa3WyHobgl8
    1 point
  13. I can't wait for release date I'm very excited
    1 point
  14. سيرفر من الطراز العألي , بالتوفيق لكم .
    1 point
  15. كود رائع صراحة يعطييك العافيه
    1 point
  16. الوظائف التالية كلنت سايد فقط getRealMonthH فكرة الوظيفة: تجيب لك أسماء الأشهر الهجرية ملاحظة بسيطة: تغير الأشهر ممكن يتأخر أحياناً بـ 3 أيام كحد أقصى وبعدها راح تتعدل صيغة الوظيفة getRealMonthH ( ) كود الوظيفة monthTable = { ["10"] = "محرم", ["11"] = "صفر", ["12"] = "ربيع الأول", ["1"] = "ربيع الآخر", ["2"] = "جمادى الأول", ["3"] = "جمادى الآخر", ["4"] = "رجب", ["5"] = "شعبان", ["6"] = "رمضان", ["7"] = "شوال", ["8"] = "ذو الحجة", ["9"] = "ذو القعدة" } function getRealMonthH() local time = getRealTime() local month = time.month + 1 for i, v in pairs ( monthTable ) do if string.find ( i , month ) then if v ~= "" then m = v end end end return m end مثال ع الوظيفة addCommandHandler("month", function () local month = getRealMonthH() outputChatBox(month) end ) https://wiki.multitheftauto.com/wiki/GetRealMonthH :صفحة الويكي getRealMonthM فكرة الوظيفة: تجيب لك أسماء الأشهر الميلادية صيغة الوظيفة getRealMonthM() كود الوظيفة monthTable = { ["1"] = "January", ["2"] = "February", ["3"] = "March", ["4"] = "April", ["5"] = "May", ["6"] = "June", ["7"] = "July", ["8"] = "August", ["9"] = "September", ["10"] = "October", ["11"] = "November", ["12"] = "December" } function getRealMonthM() local time = getRealTime() local month = time.month + 1 for i, v in pairs ( monthTable ) do if string.find ( i , month ) then if v ~= "" then m = v end end end return m end مثال ع الوظيفة addCommandHandler("month", function () local month = getRealMonthM() outputChatBox(month) end ) https://wiki.multitheftauto.com/wiki/GetRealMonthM : صفحة الويكي أتمنى أن الوظيفة عجبتكم وتكون مفيدة لكم, في آمان الله
    1 point
  17. Hello dosto, mera server open ho rha h kal (10 May 2017), m aap sab logo ko invite karne aaya hu. Aap log iske baare m aur padh sakte h idhar pe:
    0 points
  18. بدل localPlayer بـ source
    0 points
  19. addEventHandler ( "onMarkerHit" , m1 , function (hitElement) if (hitElement == localPlayer) and ( getElementType ( hitElement ) == "player" ) then setTimer ( aa , 1440 , 1 ) end )
    0 points
  20. جرب addEventHandler ( "onClientResourceStart" , root , function () guiGridListClear( GridList ) for i,v in ipairs ( getElementsByType ( "player" )) do local Row = guiGridListAddRow ( GridList ) guiGridListSetItemText ( GridList, Row, 1, tostring( getPlayerName ( v )), false, false ) end end )
    0 points
  21. كيف حالكم ان شاء الله بخير وطلع فيه اخطاء والى اخره Guieditor Online قبل فترة نزل موضوع عن قبل 3 او 4 ايام تقريبا قررت اسوي واحد ببرنامج الفجوال بيسك ويكون دقيق نوعا ما من ناحية الاحداثيات او الى اخره والنتيجة طلعت كالأتي طبعا اللوحة هذي تختار فيها مقاسات شاشتك باللعبة بحيث راح تفتح لوحة ثانية تصمم فيها وتفتح لك قائمة يوم تضغط كلك يمين ( زي السكربت نفسه ) تختار منها الي تبي تسويه نافذة , زر , الخ (Window) طبعا الي بالرصاصي الي الحين بتشوفونه راح تكون النافذة النتيجة بتكون output وبعد ماتضغط كلك يمين وتظهر لك القائمة وتضغط طبعا الي مسويه حاليا فقط النوافذ والزر والباقي بيكون سهل بأذن الله فـ ابي رأيكم اكمل ولا اكنسل ع الفكرة مع السبب واذا كملت ان شاء الله راح اخليه يدعم الدي اكس ويكون شبيه لحق اللعبة بالضبط اعطونا ارائكم واقتراحاتكم تحت وبالتوفيق للجميع
    0 points
×
×
  • Create New...