Advertisement
Mjjstral

C&C Red Alert 3 scripts.lua

Nov 7th, 2017
140
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --- define lua functions
  2. function NoOp(self, source)
  3. end
  4.  
  5.  
  6. function kill(self) -- Kill unit self.
  7.     ExecuteAction("NAMED_KILL", self);
  8. end
  9.  
  10. function RadiateUncontrollableFear( self )
  11.     ObjectBroadcastEventToEnemies( self, "BeUncontrollablyAfraid", 350 )
  12. end
  13.  
  14. function RadiateGateDamageFear(self)
  15.     ObjectBroadcastEventToAllies(self, "BeAfraidOfGateDamaged", 200)
  16. end
  17.  
  18. function OnNeutralGarrisonableBuildingCreated(self)
  19.     ObjectHideSubObjectPermanently( self, "ARMOR", true )
  20. end
  21.  
  22. function OnGDITechCenterCreated(self)
  23.     ObjectHideSubObjectPermanently( self, "UG_Boost", true )
  24.     ObjectHideSubObjectPermanently( self, "UG_Mortar", true )
  25.     ObjectHideSubObjectPermanently( self, "B_MortarRound_1", true )
  26.     ObjectHideSubObjectPermanently( self, "UG_Rail", true )
  27.     ObjectHideSubObjectPermanently( self, "UG_Scan", true )
  28. end
  29.  
  30. function OnGDIMedicalBayCreated(self)
  31.     ObjectHideSubObjectPermanently( self, "UG_Armor", true )
  32.     ObjectHideSubObjectPermanently( self, "UG_StealthDetector", true )
  33.     ObjectHideSubObjectPermanently( self, "UG_StealthDetector01", true )
  34.     ObjectHideSubObjectPermanently( self, "UG_Injector", true )
  35. end
  36.  
  37. function OnGDIPowerPlantCreated(self)
  38.     ObjectHideSubObjectPermanently( self, "Turbines", true )
  39.     ObjectHideSubObjectPermanently( self, "TurbineGlows", true )
  40. end
  41.  
  42. function OnGDIZoneTrooperCreated(self)
  43.     ObjectHideSubObjectPermanently( self, "UGSCANNER", true )
  44.     ObjectHideSubObjectPermanently( self, "UGJUMP", true )
  45.     ObjectHideSubObjectPermanently( self, "UGINJECTOR", true )
  46. end
  47.  
  48. function OnGDIPredatorCreated(self)
  49.     ObjectHideSubObjectPermanently( self, "UGRAIL_01", true )
  50. end
  51.  
  52. function OnGDIMammothCreated(self)
  53.     ObjectHideSubObjectPermanently( self, "UGRAIL_01", true )
  54.     ObjectHideSubObjectPermanently( self, "UGRAIL_02", true )
  55.     ObjectHideSubObjectPermanently( self, "MuzzleFlash_01", true )
  56.     ObjectHideSubObjectPermanently( self, "MuzzleFlash_02", true )
  57. end
  58.  
  59. function OnGDIJuggernaughtCreated(self)
  60.     ObjectHideSubObjectPermanently( self, "MuzzleFlash_01", true )
  61.     ObjectHideSubObjectPermanently( self, "MuzzleFlash_02", true )
  62.     ObjectHideSubObjectPermanently( self, "MuzzleFlash_03", true )
  63.    
  64. end
  65.  
  66. function OnGDIWatchTowerCreated(self)
  67.     ObjectHideSubObjectPermanently( self, "MuzzleFlash_01", true )
  68.     ObjectHideSubObjectPermanently( self, "MuzzleFlash_02", true )
  69. end
  70.  
  71. function OnGDIFirehawkCreated(self)
  72.     -- bomb load by default.
  73.     ObjectGrantUpgrade( self, "Upgrade_SelectLoad_02" )
  74.     ObjectHideSubObjectPermanently( self, "Plane04", true )
  75. end
  76.  
  77. function OnGDIPitbullCreated(self)
  78.     ObjectHideSubObjectPermanently( self, "MortorTube", true )
  79. end
  80.  
  81. function OnGDIOrcaCreated(self)
  82.     ObjectHideSubObjectPermanently( self, "UG_PROBE", true )
  83. end
  84.  
  85. function OnGDISniperSquadCreated(self)
  86.     ObjectSetObjectStatus( self, "CAN_SPOT_FOR_BOMBARD" )
  87. end
  88.  
  89. function OnGDIOrcaClipEmpty(self)
  90.     ObjectHideSubObjectPermanently( self, "MISSILE01", true )
  91. end
  92.  
  93. function OnGDIOrcaClipFull(self)
  94.     ObjectHideSubObjectPermanently( self, "MISSILE01", false )
  95. end
  96.  
  97. function OnGDIV35Ox_SummonedForVehicleCreated(self)
  98.     ObjectHideSubObjectPermanently( self, "LOADREF", true )
  99. end
  100.  
  101. function OnNODShredderCreated(self)
  102.  
  103. end
  104.  
  105. function OnNODRaiderTankCreated(self)
  106.     ObjectHideSubObjectPermanently( self, "Gun_Upgrade", true )
  107.     ObjectHideSubObjectPermanently( self, "Turret2_Gun", true )
  108.     ObjectHideSubObjectPermanently( self, "Turret2", true )
  109.     ObjectHideSubObjectPermanently( self, "MuzzleFlash_01", true )
  110.     ObjectHideSubObjectPermanently( self, "DOZERBLADE", true )
  111. end
  112.  
  113. function OnNODAvatarCreated(self)
  114.     ObjectHideSubObjectPermanently( self, "NUBEAM", true )
  115.     ObjectHideSubObjectPermanently( self, "FLAMETANK", true )
  116.     ObjectHideSubObjectPermanently( self, "S_DETECTOR", true )
  117.     ObjectHideSubObjectPermanently( self, "S_GENERATOR", true )
  118. end
  119.  
  120. function OnNODAvatarGenericEvent(self, data)
  121.  
  122.     local str = tostring( data )
  123.  
  124.     if str == "upgrades_copied" then
  125.         ObjectRemoveUpgrade( self, "Upgrade_Veterancy_VETERAN" );
  126.         ObjectRemoveUpgrade( self, "Upgrade_Veterancy_ELITE" );
  127.         ObjectRemoveUpgrade( self, "Upgrade_Veterancy_HEROIC" );
  128.     end
  129. end
  130.  
  131. function OnNODScorpionBuggyCreated(self)
  132.     ObjectHideSubObjectPermanently( self, "EMP", true )
  133. end
  134.  
  135. function OnNODVenomCreated(self)
  136.     ObjectHideSubObjectPermanently( self, "SigGen", true )
  137. end
  138.  
  139. function OnNODTechAssembleyPlantCreated(self)
  140.     ObjectHideSubObjectPermanently( self, "UG_EMP", true )
  141.     ObjectHideSubObjectPermanently( self, "UG_Lasers", true )
  142.     ObjectHideSubObjectPermanently( self, "UG_SigGen", true )
  143.     ObjectHideSubObjectPermanently( self, "UG_DozerBlades", true )
  144. end
  145.  
  146. function OnNODSecretShrineCreated(self)
  147.     ObjectHideSubObjectPermanently( self, "GLOWS", true )  
  148.     ObjectHideSubObjectPermanently( self, "ConfUpgrd", true )
  149. end
  150.  
  151. function OnNODSecretShrinePowerOutage(self)
  152.     if ObjectHasUpgrade( self, "Upgrade_NODConfessorUpgrade" ) == 1 then
  153.         ObjectHideSubObjectPermanently( self, "GLOWS", true )  
  154.     end
  155. end
  156.  
  157. function OnNODSecretShrinePowerRestored(self)        
  158.     if ObjectHasUpgrade( self, "Upgrade_NODConfessorUpgrade" ) == 1 then
  159.         ObjectHideSubObjectPermanently( self, "GLOWS", false ) 
  160.     end
  161. end
  162.  
  163.  
  164. function OnAlliedAntiVehicleInfantryGenericEvent(self, data)
  165.     local str = tostring( data )
  166.  
  167.     if str == "laser_on" then
  168.         ObjectHideSubObjectPermanently( self, "FX_LASER", false )
  169.     elseif str == "laser_off" then
  170.         ObjectHideSubObjectPermanently( self, "FX_LASER", true )
  171.     end
  172. end
  173.  
  174. function OnAlliedBarracksCreated(self)
  175.     ObjectHideSubObjectPermanently( self, "Upgrade_02", true )
  176.     ObjectHideSubObjectPermanently( self, "Upgrade_03", true )
  177. end
  178.  
  179. function OnAlliedConstructionYardCreated(self)
  180.     ObjectHideSubObjectPermanently( self, "Upgrade_02", true )
  181.     ObjectHideSubObjectPermanently( self, "Upgrade_03", true )
  182. end
  183.  
  184. function onCreatedControlPointFunctions(self)
  185.     ObjectHideSubObjectPermanently( self, "TB_CP_ALN", true )
  186.     ObjectHideSubObjectPermanently( self, "TB_CP_GDI", true )
  187.     ObjectHideSubObjectPermanently( self, "TB_CP_NOD", true )
  188.     ObjectHideSubObjectPermanently( self, "LIGHTSF01", true )
  189.     ObjectHideSubObjectPermanently( self, "100", false)
  190.     ObjectHideSubObjectPermanently( self, "75", false)
  191.     ObjectHideSubObjectPermanently( self, "50", false)
  192.     ObjectHideSubObjectPermanently( self, "25", false )
  193. end
  194.  
  195. function onBuildingPowerOutage(self)
  196.     ObjectHideSubObjectPermanently( self, "LIGHTS", true )
  197.     ObjectHideSubObjectPermanently( self, "FXLIGHTS05", true )
  198.     ObjectHideSubObjectPermanently( self, "FXLIGHTS", true )
  199.     ObjectHideSubObjectPermanently( self, "FXGLOWS", true )
  200.     ObjectHideSubObjectPermanently( self, "FLASHINGLIGHTS", true )
  201.     ObjectHideSubObjectPermanently( self, "MESH01", true )
  202.     ObjectHideSubObjectPermanently( self, "POWERPLANTGLOWS", true )
  203.     ObjectHideSubObjectPermanently( self, "LIGHTL", true )
  204.     ObjectHideSubObjectPermanently( self, "LIGHTR", true )
  205.     ObjectHideSubObjectPermanently( self, "LIGHTS1", true )
  206.     ObjectHideSubObjectPermanently( self, "NBCHEMICALPTE1", true )
  207.     ObjectHideSubObjectPermanently( self, "LINKS", true )
  208.     ObjectHideSubObjectPermanently( self, "MESH28", true )
  209.     ObjectHideSubObjectPermanently( self, "TURBINEGLOWS", true )
  210.     ObjectHideSubObjectPermanently( self, "GLOWS", true )
  211. end
  212.  
  213. function onBuildingPowerRestored(self)
  214.     ObjectHideSubObjectPermanently( self, "LIGHTS", false )
  215.     ObjectHideSubObjectPermanently( self, "FXLIGHTS05", false )
  216.     ObjectHideSubObjectPermanently( self, "FXLIGHTS", false )
  217.     ObjectHideSubObjectPermanently( self, "FXGLOWS", false )
  218.     ObjectHideSubObjectPermanently( self, "FLASHINGLIGHTS", false )
  219.     ObjectHideSubObjectPermanently( self, "MESH01", false )
  220.     ObjectHideSubObjectPermanently( self, "POWERPLANTGLOWS", false )
  221.     ObjectHideSubObjectPermanently( self, "LIGHTL", false )
  222.     ObjectHideSubObjectPermanently( self, "LIGHTR", false )
  223.     ObjectHideSubObjectPermanently( self, "LIGHTS1", false )
  224.     ObjectHideSubObjectPermanently( self, "NBCHEMICALPTE1", false )
  225.     ObjectHideSubObjectPermanently( self, "LINKS", false )
  226.     ObjectHideSubObjectPermanently( self, "MESH28", false )
  227.     ObjectHideSubObjectPermanently( self, "TURBINEGLOWS", false )
  228.     ObjectHideSubObjectPermanently( self, "GLOWS", false )
  229. end
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237. function OnGenericJapanBuildingCreated(self)
  238.     ObjectHideSubObjectPermanently( self, "Upgrade_02", true )
  239.     ObjectHideSubObjectPermanently( self, "Upgrade_03", true )
  240. end
  241.  
  242. function OnNeutralGarrisonableBuildingGenericEvent(self,data)
  243. end
  244.  
  245. function onCreatedGDIOrcaAirstrike(self)
  246.     ObjectForbidPlayerCommands( self, true )
  247. end
  248.  
  249. function onCreatedAlienMCVUnpacking(self)
  250.     ObjectForbidPlayerCommands( self, true )
  251. end
  252.  
  253. function MakeMeAlert(self)
  254.     ObjectEnterAlertState(self)
  255. end
  256.  
  257. function BecomeUncontrollablyAfraid(self, other)
  258.     if not ObjectTestCanSufferFear(self) then
  259.         return
  260.     end
  261.  
  262.     ObjectEnterUncontrollableCowerState(self, other)
  263. end
  264.  
  265. function RadiateTerror(self, other)
  266.     ObjectBroadcastEventToEnemies(self, "BeTerrified", 180)
  267. end
  268.    
  269. function RadiateTerrorEx(self, other, terrorRange)
  270.     ObjectBroadcastEventToEnemies(self, "BeTerrified", terrorRange)
  271. end
  272.    
  273.  
  274. function BecomeTerrified(self, other)
  275.     ObjectEnterRunAwayPanicState(self, other)
  276. end
  277.  
  278. function BecomeAfraidOfGateDamaged(self, other)
  279.     if not ObjectTestCanSufferFear(self) then
  280.         return
  281.     end
  282.  
  283.     ObjectEnterCowerState(self,other)
  284. end
  285.  
  286.  
  287. function ChantForUnit(self) -- Used by units to broadcast the chant event to their own side.
  288.     ObjectBroadcastEventToAllies(self, "BeginChanting", 9999)
  289. end
  290.  
  291. function StopChantForUnit(self) -- Used by units to stop the chant event to their own side.
  292.     ObjectBroadcastEventToAllies(self, "StopChanting", 9999)
  293. end
  294.  
  295. function SpyMoving(self, other)
  296.     print(ObjectDescription(self).." spying movement of "..ObjectDescription(other));
  297. end
  298.  
  299. function OnGarrisonableCreated(self)
  300.     ObjectHideSubObjectPermanently( self, "GARRISON01", true )
  301.     ObjectHideSubObjectPermanently( self, "GARRISON02", true )
  302. end
  303.  
  304. function OnRubbleDropshipCreated(self)
  305.     ObjectHideSubObjectPermanently( self, "Loadref", true )
  306. end
  307.  
  308. function OnSovietAntiVehicleVehicleTech1Created(self)
  309.     ObjectHideSubObjectPermanently( self, "Upgrade_Athena_Cannon", true )
  310.     ObjectHideSubObjectPermanently( self, "Upgrade_AutoCannon", true )
  311.     ObjectHideSubObjectPermanently( self, "Upgrade_Big_Cannon", true )
  312.     ObjectHideSubObjectPermanently( self, "Upgrade_Cryo_Weapon", true )
  313.     ObjectHideSubObjectPermanently( self, "Upgrade_FlakCannon", true )
  314.     ObjectHideSubObjectPermanently( self, "Upgrade_FlakMissile", true )
  315.     ObjectHideSubObjectPermanently( self, "Upgrade_GaussCannon", true )
  316.     ObjectHideSubObjectPermanently( self, "Upgrade_Laser_Cannon", true )
  317.     ObjectHideSubObjectPermanently( self, "Upgrade_PrismCannon", true )
  318.     ObjectHideSubObjectPermanently( self, "Upgrade_Small_Cannon", true )
  319.     ObjectHideSubObjectPermanently( self, "Upgrade_TeslaCoil", true )
  320.     ObjectHideSubObjectPermanently( self, "Upgrade_V4Rocket_A", true )
  321.     ObjectHideSubObjectPermanently( self, "Upgrade_V4Rocket_Missile", true )
  322.     ObjectHideSubObjectPermanently( self, "Upgrade_Waveforce", true )  
  323. end
  324.  
  325. function OnAlliedInfantryFightingCreated(self)
  326.     ObjectHideSubObjectPermanently( self, "NUBEAM", true )
  327.     ObjectHideSubObjectPermanently( self, "FLAMETANK", true )
  328.     ObjectHideSubObjectPermanently( self, "S_DETECTOR", true )
  329.     ObjectHideSubObjectPermanently( self, "S_GENERATOR", true )
  330. end
  331.  
  332.  
  333. function OnAlliedBaseDefenseCreated(self)
  334.  
  335.     ObjectHideSubObjectPermanently( self, "Upgrade_Blaster_Rifles", true )
  336.     ObjectHideSubObjectPermanently( self, "Upgrade_Engineer", true )
  337.     ObjectHideSubObjectPermanently( self, "Upgrade_Flak", true )
  338.     ObjectHideSubObjectPermanently( self, "Upgrade_GoldenGun", true )
  339.     ObjectHideSubObjectPermanently( self, "Upgrade_MachineGun", true )
  340.     ObjectHideSubObjectPermanently( self, "Upgrade_MissileLauncher", true )
  341.     ObjectHideSubObjectPermanently( self, "Upgrade_Natasha_Sniper", true )
  342.     ObjectHideSubObjectPermanently( self, "Upgrade_Ninja_Star", true )
  343.     ObjectHideSubObjectPermanently( self, "Upgrade_Ninja_Turret", true )
  344.     ObjectHideSubObjectPermanently( self, "Upgrade_Plasma", true )
  345.     ObjectHideSubObjectPermanently( self, "Upgrade_Psyonic", true )
  346.     ObjectHideSubObjectPermanently( self, "Upgrade_Psyonic_Turret", true )
  347.     ObjectHideSubObjectPermanently( self, "Upgrade_Shotgun", true )
  348.     ObjectHideSubObjectPermanently( self, "Upgrade_Speakers", true )
  349.     ObjectHideSubObjectPermanently( self, "Upgrade_Tanya_Pistols", true )
  350.     ObjectHideSubObjectPermanently( self, "Upgrade_Tesla_Turret", true )
  351.     ObjectHideSubObjectPermanently( self, "Upgrade_Tesla", true )
  352.     ObjectHideSubObjectPermanently( self, "Upgrade_Turret", true )
  353.     ObjectHideSubObjectPermanently( self, "Tanya", true )
  354.    
  355. end
  356.  
  357. function OnAlliedAntiAirVehicleTech1Created(self)
  358.  
  359.     ObjectHideSubObjectPermanently( self, "Upgrade_Blaster_Rifles", true )
  360.     ObjectHideSubObjectPermanently( self, "Upgrade_Engineer", true )
  361.     ObjectHideSubObjectPermanently( self, "Upgrade_Flak", true )
  362.     ObjectHideSubObjectPermanently( self, "Upgrade_GoldenGun", true )
  363.     ObjectHideSubObjectPermanently( self, "Upgrade_MachineGun", true )
  364.     ObjectHideSubObjectPermanently( self, "Upgrade_MissileLauncher", true )
  365.     ObjectHideSubObjectPermanently( self, "Upgrade_Natasha_Sniper", true )
  366.     ObjectHideSubObjectPermanently( self, "Upgrade_Ninja_Star", true )
  367.     ObjectHideSubObjectPermanently( self, "Upgrade_Ninja_Turret", true )
  368.     ObjectHideSubObjectPermanently( self, "Upgrade_Plasma", true )
  369.     ObjectHideSubObjectPermanently( self, "Upgrade_Psyonic", true )
  370.     ObjectHideSubObjectPermanently( self, "Upgrade_Psyonic_Turret", true )
  371.     ObjectHideSubObjectPermanently( self, "Upgrade_Shotgun", true )
  372.     ObjectHideSubObjectPermanently( self, "Upgrade_Speakers", true )
  373.     ObjectHideSubObjectPermanently( self, "Upgrade_Tanya_Pistols", true )
  374.     ObjectHideSubObjectPermanently( self, "Upgrade_Tesla_Turret", true )
  375.     ObjectHideSubObjectPermanently( self, "Upgrade_Tesla", true )
  376.     ObjectHideSubObjectPermanently( self, "Upgrade_Turret", true )
  377.     ObjectHideSubObjectPermanently( self, "Tanya", true )
  378.    
  379. end
  380.  
  381. function OnAlliedInfantryFightingCreated(self)
  382.     ObjectHideSubObjectPermanently( self, "NUBEAM", true )
  383.     ObjectHideSubObjectPermanently( self, "FLAMETANK", true )
  384.     ObjectHideSubObjectPermanently( self, "S_DETECTOR", true )
  385.     ObjectHideSubObjectPermanently( self, "S_GENERATOR", true )
  386. end
  387.  
  388. function OnJapanAntiStructureShipCreated(self)
  389.     ObjectHideSubObjectPermanently( self, "Upgrade_01", true )
  390. end
  391.  
  392. -- this function expects an eventType of 'onDisguiseAs' and checks for various assetIDs, hiding the appropriate subObjects
  393. function OnJapanLightTransportVehicleGenericEvent(self, eventType, data)
  394.     local eTpye = tostring( eventType )
  395.    
  396.     if not eType == "onDisguiseAs" then
  397.         return
  398.     end
  399.    
  400.     local str = tostring( data )
  401.    
  402.     -- this is the assetID of an AlliedAntiAirVehicleTech1
  403.     if str == "3137747290" then
  404.         ObjectHideSubObjectPermanently( self, "Upgrade_Blaster_Rifles", true )
  405.         ObjectHideSubObjectPermanently( self, "Upgrade_Engineer", true )
  406.         ObjectHideSubObjectPermanently( self, "Upgrade_Flak", true )
  407.         ObjectHideSubObjectPermanently( self, "Upgrade_GoldenGun", true )
  408.         ObjectHideSubObjectPermanently( self, "Upgrade_MachineGun", true )
  409.         ObjectHideSubObjectPermanently( self, "Upgrade_MissileLauncher", true )
  410.         ObjectHideSubObjectPermanently( self, "Upgrade_Natasha_Sniper", true )
  411.         ObjectHideSubObjectPermanently( self, "Upgrade_Ninja_Star", true )
  412.         ObjectHideSubObjectPermanently( self, "Upgrade_Ninja_Turret", true )
  413.         ObjectHideSubObjectPermanently( self, "Upgrade_Plasma", true )
  414.         ObjectHideSubObjectPermanently( self, "Upgrade_Psyonic", true )
  415.         ObjectHideSubObjectPermanently( self, "Upgrade_Psyonic_Turret", true )
  416.         ObjectHideSubObjectPermanently( self, "Upgrade_Shotgun", true )
  417.         ObjectHideSubObjectPermanently( self, "Upgrade_Speakers", true )
  418.         ObjectHideSubObjectPermanently( self, "Upgrade_Tanya_Pistols", true )
  419.         ObjectHideSubObjectPermanently( self, "Upgrade_Tesla_Turret", true )
  420.         ObjectHideSubObjectPermanently( self, "Upgrade_Tesla", true )
  421.         ObjectHideSubObjectPermanently( self, "Upgrade_Turret", true )
  422.         ObjectHideSubObjectPermanently( self, "Tanya", true )
  423.     -- this is the assetID of a SovietAntiVehicleVehicleTech1
  424.     elseif str == "2494781707" then
  425.         ObjectHideSubObjectPermanently( self, "Upgrade_Athena_Cannon", true )
  426.         ObjectHideSubObjectPermanently( self, "Upgrade_AutoCannon", true )
  427.         ObjectHideSubObjectPermanently( self, "Upgrade_Big_Cannon", true )
  428.         ObjectHideSubObjectPermanently( self, "Upgrade_Cryo_Weapon", true )
  429.         ObjectHideSubObjectPermanently( self, "Upgrade_FlakCannon", true )
  430.         ObjectHideSubObjectPermanently( self, "Upgrade_FlakMissile", true )
  431.         ObjectHideSubObjectPermanently( self, "Upgrade_GaussCannon", true )
  432.         ObjectHideSubObjectPermanently( self, "Upgrade_Laser_Cannon", true )
  433.         ObjectHideSubObjectPermanently( self, "Upgrade_PrismCannon", true )
  434.         ObjectHideSubObjectPermanently( self, "Upgrade_Small_Cannon", true )
  435.         ObjectHideSubObjectPermanently( self, "Upgrade_TeslaCoil", true )
  436.         ObjectHideSubObjectPermanently( self, "Upgrade_V4Rocket_A", true )
  437.         ObjectHideSubObjectPermanently( self, "Upgrade_V4Rocket_Missile", true )
  438.         ObjectHideSubObjectPermanently( self, "Upgrade_Waveforce", true )  
  439.     end
  440. end
Advertisement
RAW Paste Data Copied
Advertisement