Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Mahmoud Tornado

#21
1-Sethp
else if( cmd == "sethp" )
{
if ( player.Name == "Your Name" || player.Name == "New Name" || player.Name == "New Name #2" )   // You Must Change Them To You Admins Names
{
      if( !text )
      MessagePlayer("Use /sethp <plr> <hp>", player);
      local params = split( text, " " );
      if( params.len() < 1 ) MessagePlayer("Wrong no. of parameters.", player);
      else if( !IsNum( params[1] ) ) return MessagePlayer("HP must be an integer.", player);
      else if( params[1].tointeger() > 100 || params[1].tointeger() < 0 ) return MessagePlayer("It can't be more than 100 or less than 0.", player);
      local plr = IsNum( params[0] ) ? FindPlayer( params[0].tointeger() ) : FindPlayer( params[0] );
      if( !plr ) return MessagePlayer( "Wrong player.", player );
      else plr.Health = params[1].tointeger();
}
        else MessagePlayer( "[#FF0000] You're not allowed to use this command. " , player )
}

2-Settime
else if ( cmd == "settime" )
    {
if ( player.Name == "Your Name" || player.Name == "New Name" || player.Name == "New Name #2" )   // You Must Change Them To You Admins Names
{
     if ( !text ) MessagePlayer( "[#ff0000]Correct syntax : /settime <hr> <min>", player );
      else if ( split(text, " ").len() < 2) return MessagePlayer("[#ff0000]Correct syntax : /settime <hr> <min>", player )
      else
   {
   local a = split(text, " ");
      if ( !IsNum( a[0] )) MessagePlayer( "[#ffbb00]Format: /settime <hr> <min>", player );
      else if ( !IsNum( a[1] )) MessagePlayer( "[#ffbb00]Format: /settime <hr> <min>", player );
      else SetTime( a[0].tointeger(), a[1].tointeger() ) ; 
      }
   }
        else MessagePlayer( "[#FF0000] You're not allowed to use this command. " , player )
}

3-SetWeather
A-SetWeather Command
else if ( cmd == "setweather" )
{
if ( player.Name == "Your Name" || player.Name == "New Name" || player.Name == "New Name #2" )   // You Must Change Them To You Admins Names
{
if ( !text ) return MessagePlayer( "[#ff0000]Usage: setweather [Weather/ID]", player );
if ( !IsNum(text) ) return MessagePlayer( "[#ff0000]Use integers/numbers", player );
SetWeather( text.tointeger() );
Message( "[#4acc0a] Admin "+ player.Name +" Set The Weather To "+GetWeatherName());
return;
}
        else MessagePlayer( "[#FF0000] You're not allowed to use this command. " , player )
}

B-SetWeather Functions  //Made By @zeus
function GetWeatherName( )
{
switch( GetWeather() )
  {
  case 0 : return "Clear Skies";
  case 1 : return "OverCast";
  case 2 : return "Rainy-Lightning";
  case 3 : return "Foggy";
  case 4 : return "Sunny";
  case 5 : return "Rainy";
  case 6 : return "Dark Sky Partly Cloudy";
  case 7 : return "Light Sky Partly Cloudy";
  case 8 : return "OverCast Partly Cloudy";
  case 9 : return "Grey Sky Black Clouds";
  case 10 : return "Fog And Gray";
  default : return "Unknown";
  }
}

4-Announcements
    else if (cmd == "ann")
    {
if ( player.Name == "Your Name" || player.Name == "New Name" || player.Name == "New Name #2" )   // You Must Change Them To You Admins Names
    {
        if (!text) return ClientMessage("[#FF0000][Syntax]/ann <ID> <All/Nick/ID> <Text>", player, 0, 0, 0);
        local v = split(text, " ");
        if (v.len() < 3) return ClientMessage("[#FF0000][Syntax]/ann <ID> <All/Nick/ID> <Text>", player, 0, 0, 0);
        if (v[1].tolower() == "all") AnnounceAll(text.slice(v[0].len() + v[1].len() + 2), v[0].tointeger());
        else Announce(text.slice(v[0].len() + v[1].len() + 2), FindPlayer(v[1]), v[0].tointeger());
    }
        else MessagePlayer( "[#FF0000] You're not allowed to use this command. " , player )
}

5-Kick
    else if ( cmd == "kick" )
    {
if ( player.Name == "Your Name" || player.Name == "New Name" || player.Name == "New Name #2" )   // You Must Change Them To You Admins Names
        {
            if ( text )
            {
                local plr = FindPlayer( text );
                if ( plr )
                {
                    KickPlayer( plr );
                }
                else MessagePlayer( "[#ff0000]Cannot find player "+text+"." , player );
            }
            else MessagePlayer( "[#ff0000]Usage: /"+cmd+" <player>" , player );
        }
        else MessagePlayer( "[#ff0000]You are not allowed to use this command." , player )
    }

6-SetArmour
else if( cmd == "setarmour" )
{
if ( player.Name == "Your Name" || player.Name == "New Name" || player.Name == "New Name #2" )   // You Must Change Them To You Admins Names
{
      if( !text )
      MessagePlayer("Use /setarmour <plr> <hp>", player);
      local params = split( text, " " );
      if( params.len() < 1 ) MessagePlayer("Wrong no. of parameters.", player);
      else if( !IsNum( params[1] ) ) return MessagePlayer("Armour must be an integer.", player);
      else if( params[1].tointeger() > 100 || params[1].tointeger() < 0 ) return MessagePlayer("It can't be more than 100 or less than 0.", player);
      local plr = IsNum( params[0] ) ? FindPlayer( params[0].tointeger() ) : FindPlayer( params[0] );
      if( !plr ) return MessagePlayer( "Wrong player.", player );
      else plr.Armour = params[1].tointeger();
}
        else MessagePlayer( "[#FF0000] You're not allowed to use this command. " , player )
}

7-Freeze
else if ( cmd == "freeze" )
{
if ( player.Name == "Your Name" || player.Name == "New Name" || player.Name == "New Name #2" )   // You Must Change Them To You Admins Names
{
if ( !text ) MessagePlayer( "Syntax, /" + cmd + " <Nick/ID> <Reason>", player );
else {
local plr = GetPlayer( GetTok( text, " ", 1 ) );
if ( !plr ) MessagePlayer( "[#FF0000]Unknown Player..", player );
else if ( plr.IsFrozen ) MessagePlayer( "[#FF0000]The Player is already Freezed", player );
else if ( !plr.IsSpawned ) MessagePlayer( "[#FF0000]The Player hasn't spawned yet..", player );
else {
local reason = GetTok( text, " ", 2, NumTok( text, " " ) );
if ( reason == null ) reason = "None"
plr.IsFrozen = true;
Message( "[#FFbb00]** Admin " + player.Name + " has Frozen " + plr.Name + " for Reason " + reason );
}
}
}
        else MessagePlayer( "[#FF0000]You're not allowed to use this command. " , player )
}

8-Unfreeze
else if ( cmd == "unfreeze" )
{
if ( player.Name == "Your Name" || player.Name == "New Name" || player.Name == "New Name #2" )   // You Must Change Them To You Admins Names
{
if ( !text ) MessagePlayer( "[#FF0000]Syntax, /" + cmd + " <Nick/ID>", player );
else {
local plr = GetPlayer( GetTok( text, " ", 1 ) );
if ( !plr ) MessagePlayer( "[#FF0000]Unknown Player..", player );
else if ( !plr.IsFrozen ) MessagePlayer( "[#FF0000]" + plr.Name + " is not Freezed.", player);
else if ( !plr.IsSpawned ) MessagePlayer( "[#FF0000]The Player hasn't spawned yet..", player );
else {
plr.IsFrozen = false;
Message( "[#FFBB00]>> Admin " + player + " has un-freezed " + plr.Name );
}
}
}
        else MessagePlayer( "[#FF0000] You're not allowed to use this command. " , player )
}

Admin Commands CmD
else if (cmd == "acmds")
{
if ( player.Name == "Your Name" || player.Name == "New Name" || player.Name == "New Name #2" )   // You Must Change Them To You Admins Names
{
MessagePlayer( "(/) [#FFBB00]Admin Commands: kick, ann, settime, setweather, sethp, setarmour, freeze, unfreeze.",player);
}
        else MessagePlayer( "[#FF0000] You're not allowed to use this command. " , player )
}

@Mahmoud Tornado
#22
The Animations Is (/) dance{1-7}, sit{b-1-2-e}, sleep, gosleep, time, tra{1-2}, phone{in-talk-out}, riot{1-7}, card, sunpro

else if ( cmd == "anims" )
{
PrivMessage( player, "[#ffbb00]Anims: (/) dance{1-7}, sit{b-1-2-e}, sleep, gosleep, time, tra{1-2}, phone{in-talk-out}, riot{1-7}, card, sunpro" );
}

else if(cmd == "dance1")
{
player.SetAnim( 28, 226 )
}

else if(cmd == "dance2")
{
player.SetAnim( 28, 227 )
}

else if(cmd == "dance3")
{
player.SetAnim( 28, 228 )
}

else if(cmd == "dance4")
{
player.SetAnim( 28, 229 )
}

else if(cmd == "dance5")
{
player.SetAnim( 28, 230 )
}

else if(cmd == "dance6")
{
player.SetAnim( 28, 231 )
}

else if(cmd == "dance7")
{
player.SetAnim( 28, 232 )
}

else if(cmd == "sitb")
{
player.SetAnim( 0, 167 )
}

else if(cmd == "site")
{
player.SetAnim( 0, 168 )
}

else if(cmd == "sit")
{
player.SetAnim( 0, 169 )
}

else if(cmd == "sit2")
{
player.SetAnim( 29, 210 )
}

else if(cmd == "sleep")
{
player.SetAnim( 25, 210 )
}

else if(cmd == "gosleep")
{
player.SetAnim( 26, 215 )
}

else if(cmd == "time")
{
player.SetAnim( 26, 216 )
}

else if(cmd == "tra1")
{
player.SetAnim( 26, 217 )
}

else if(cmd == "tra2")
{
player.SetAnim( 26, 218 )
}

else if(cmd == "phonein")
{
player.SetAnim( 0, 164 )
}

else if(cmd == "phoneout")
{
player.SetAnim( 0, 165 )
}

else if(cmd == "phonetalk")
{
player.SetAnim( 0, 166 )
}

else if(cmd == "riot1")
{
player.SetAnim( 27, 219 )
}

else if(cmd == "riot2")
{
player.SetAnim( 27, 220 )
}

else if(cmd == "riot3")
{
player.SetAnim( 27, 221 )
}

else if(cmd == "riot4")
{
player.SetAnim( 27, 222 )
}

else if(cmd == "riot5")
{
player.SetAnim( 27, 223 )
}

else if(cmd == "riot6")
{
player.SetAnim( 27, 224 )
}

else if(cmd == "riot7")
{
player.SetAnim( 27, 225 )
}

else if(cmd == "card")
{
player.SetAnim( 0, 171 )
}

else if(cmd == "sunpro")
{
player.SetAnim( 0, 172 )
}
#23
Snippet Showroom / Some Teleports
Sep 11, 2017, 09:22 AM
Teleports To

Bank
else if ( cmd == "bank" )
{
          if ( !player.IsSpawned ) MessagePlayer( "You haven't spawned yet..", player );
            else
               {
                  player.Pos = Vector(-905.473022460938, -341.132446289063, 13.3801584243774 );
                  MessagePlayer( "[#ffbb00]*** Teleport Done To Bank Zone ***", player );               
                }
         }

Airport
else if ( cmd == "airport" )
{
          if ( !player.IsSpawned ) PrivMessage( "You haven't spawned yet..", player );
            else
               {
                  player.Pos = Vector(-1684.91809082031, -922.396728515625, 28.6625099182129 );
                  MessagePlayer( "[#ffbb00]*** Teleport Done To The Airport ***", player );               
                }
         }

Ocean View Hotel
else if ( cmd == "hotel" )
{
          if ( !player.IsSpawned ) PrivMessage( "You haven't spawned yet..", player );
            else
               {
                  player.Pos = Vector(225.674163818359, -1277.91491699219, 12.0746984481812 );
                  MessagePlayer( "[#ffbb00]*** Teleport Done To Ocean View Hotel ***", player );               
                }
         }

Light House
else if ( cmd == "lighthouse" )
{
          if ( !player.IsSpawned ) PrivMessage( "You haven't spawned yet..", player );
            else
               {
                  player.Pos = Vector(225.674163818359, -1277.91491699219, 12.0746984481812 );
                  MessagePlayer( "[#ffbb00]*** Teleport Done To Ocean View Hotel ***", player );               
                }
         }

Villa In NBeachbt
else if ( cmd == "villa" )
{
          if ( !player.IsSpawned ) PrivMessage( "You haven't spawned yet..", player );
            else
               {
                  player.Pos = Vector(416.483, 655.663, 11.3 );
                  MessagePlayer( "[#ffbb00]*** Teleport Done To Villa. Enjoy! ***", player );               
                }
         }
#24
Hi Friends Now I Was Testing New Files In My Server And When I End I Saw The Goto And Heal And Fix Commands Need Timers
So I Made Then With Some Help From @DarkRaZoR^ In NewTimer

Heal Command
else if ( cmd == "heal" )
{
if ( !player.IsSpawned ) MessagePlayer( "[#ff0000]Error - You haven't spawned yet..", player );
else if ( player.Health == 100 ) MessagePlayer( "[#ff0000]Error - You don't need to be healed", player );
else {
NewTimer( "heal", 3000, 1, player.ID );
Announce( "Healing...", player , 0 );
player.IsFrozen = true;
MessagePlayer( "[#ffbb00]You Will Be Healed In 3 Seconds.", player );
}
}

Heal Function
function heal(p)
{
local player = FindPlayer(p);
if (player) {
player.IsFrozen = false;
player.Health = 100;
MessagePlayer( "[#ffbb00]You Have Been Healed.", player );
}
}

Goto Command
else if ( cmd == "goto" )
{
if ( !text ) MessagePlayer( "[#ff0000]Syntax - /" + cmd + " <Player Nick/ID>", player );
else {
local plr = GetPlayer( text );
if ( !plr ) MessagePlayer( "[#ff0000]Error - Unknown Player..", player );
else if ( plr.ID == player.ID ) MessagePlayer( "[#ff0000]Error - You can't teleport to yourself!", player );
else if ( !plr.IsSpawned ) MessagePlayer( "[#ff0000]Error - The Player hasn't spawned yet..", player );
else {
NewTimer( "goto", 3000, 1, player.ID, plr.ID );
Announce( "Teleporting...", player , 0 );
player.IsFrozen = true;
MessagePlayer( "[#ffbb00]You Will Be Teleported In 3 Seconds To " + plr.Name + ". ", player);
}
}
}

Goto Function
function goto(player, plr)
{
player = FindPlayer( player );
plr = FindPlayer( plr );
if( player && plr )
{
Message( "[#25e805]Information: [#f2f2f2]" + player + " has teleported to " + plr + "." );
player.IsFrozen = false;
player.Pos = plr.Pos;
}
}

Fix Command
else if ( cmd == "fix" )
{
local veh = player.Vehicle;
if ( !veh ) MessagePlayer( "[#ff0000]Error - You must be in a Vehicle.", player );
else if ( veh.Health == 1000 ) MessagePlayer( "[#ff0000]Error - Your Vehicle is already fixed..", player );
else if ( veh.Health == 100 ) MessagePlayer( "[#ff0000]Error - Your Vehicle is already fixed..", player );
else {
Announce( "Fixing...", player , 0 );
player.IsFrozen = true;
NewTimer( "Fix", 3000, 1, player.ID );
MessagePlayer( "[#ffbb00]Your Car Will Be Fixed in 3 Seconds", player );
}
}

Fix Function
function Fix(p)
{
local player = FindPlayer(p);
if (player) {
local veh = player.Vehicle;
if(veh) {
player.IsFrozen = false;
player.Vehicle.Fix();
MessagePlayer( "[#ffbb00]Your Vehice Has Been Fixed", player );
}
}
}

Thx
MahmoudTornado.
#25
Snippet Showroom / Random Messages
Sep 10, 2017, 02:55 PM
Random Messages By MahmoudTornado
lastElement <- 0;
myArray <- [
"[#00de00]Msg1.",       \\ you can add more msg
"[#00de00]Msg2.",       \\ this color is white #00de00
"[#00de00]Msg3.",
"[#00de00]Msg4.",
"[#00de00]Msg5.",
];

function Messages()
{
    local currentString = myArray[lastElement];
    lastElement++;

    if( lastElement > ( myArray.len() - 1 ) )
        lastElement = 0; // reset to 0

Message( currentString );
}

NewTimer( "Messages", 360000, 0 );    \\ 1000 = 1 sec
#26
Hi All I Was Searching About Gotoloc And Saveloc System
But I Didn't Found Any One So I Uploaded My System. Enjoy!
Added With Words Color!

Follow The Steps

Step 1: Add In: function onScriptLoad()
TimeGotoloc <- array( GetMaxPlayers(), false );
db <- ConnectSQL( "DataBase.db" );
QuerySQL( db, "CREATE TABLE IF NOT EXISTS Locations ( Name VARCHAR(32), Pos VARCHAR(25), Creator TEXT )" );

Step 2: Add In: function onScriptUnload()
DisconnectSQL( db );

Step 3: Add In: Function.nut    // If You Don't Have One You Can Add It In Main
function CheckLoc( name )
{
local loc = GetSQLColumnData( QuerySQL( db, "SELECT Name FROM Locations WHERE Name='" + name + "'" ), 0 );
if ( loc ) return loc;
else return 0;
}

function GetLocPos( loc )
{
if ( CheckLoc( loc ) )
{
local coords = GetSQLColumnData( QuerySQL( db, "SELECT Pos FROM Locations WHERE Name='" + loc + "'" ), 0 );
if ( coords ) return coords;
else return 0;
}
}

function SaveLoc( player, name )
{
local LocPos = format("%.3f %.3f %.3f", player.Pos.x, player.Pos.y, player.Pos.z );
QuerySQL( db, "INSERT INTO Locations (Name, Pos, Creator) VALUES ( '" + name + "', '" + LocPos + "', '" + player.Name + "' )" );
MessagePlayer( "[#ffbb00]Location Name: "+name+" .", player );
Announce( "Location Saved!", player, 0 );
}

function GotoLoc(pid,name)
{
local player = FindPlayer(pid);
if(player) {
if ( ( TimeGotoloc[ player.ID ] == true ) && ( player.IsSpawned ) )
{
if ( CheckLoc( name ) )
{
local pos = GetLocPos( name );
if ( pos )
{
local param = split( pos, " " );
player.Pos = Vector( param[ 0 ].tofloat(), param[ 1 ].tofloat(), param[ 2 ].tofloat() );
TimeGotoloc[ player.ID ] = false;
player.IsFrozen = false;
MessagePlayer( "[#ffbb00]Teleported Done To Location: "+name+" .", player );
Announce( "Teleport Success!", player, 0 );
}
else {
TimeGotoloc[ player.ID ] = false;
GotoPlr.Delete();
}
}
}
}
}

Step 4: Add In: function onPlayerCommand( player, cmd, text ) Or In Commands.nut
if ( cmd == "gotoloc" )
{
local q = QuerySQL(db, "SELECT * FROM Locations WHERE Name='" + text + "'");
if ( !player.IsSpawned ) MessagePlayer( "[#ff0000]Error: You Must Spawn First.", player );
else {
if ( !text ) MessagePlayer( "[#ff0000]Usage: /" + cmd + " <Location>", player );
else if ( !CheckLoc( text ) ) MessagePlayer( "[#ff0000]Error: Can't Find This Location: " + text + " !", player );
else {
TimeGotoloc[ player.ID ] = true;
player.IsFrozen = true;
GotoPlr <- NewTimer( "GotoLoc", 3000, 1, player.ID,text );
MessagePlayer( "[#ffbb00]Teleporting To Location: "+text+". Saved By: "+GetSQLColumnData( q, 2 )+".", player );
Announce( "Teleporting...", player , 0 );
}
}
}

else if ( cmd == "saveloc" )
{
if ( !player.IsSpawned ) MessagePlayer( "[#ff0000]Error: You Must Spawn First.", player );
else if ( !text ) MessagePlayer( "[#ff0000]Usage: /" + cmd + " <Location>.", player );
else {
if ( CheckLoc( text ) ) MessagePlayer( "[#ff0000]Error:This Location: " + text + " Is Already Exist!.", player );
else {
SaveLoc( player, text );
}
}
}
Enjoy!
Made By MahmoudTornado
#27
Videos & Screenshots / Burj Khalifa in VCMP
Sep 08, 2017, 11:27 PM
Hi Friends Hi Everyone
I Made a new custom object in VCMP
Named Burj Khalifa

Origianl Pics:




Video from the game
https://www.youtube.com/watch?v=aKaJWyfMoCI&t=#

sorry for my english
sorry for video graphics
i have an bad program bad PC.
#28
Map Showroom / [MAP] Egypt
Aug 26, 2017, 08:24 PM
Hi I Am Back With A New Map See This
Original Page: "http://www.gtainside.com/en/vicecity/maps/108669-egypt/"
The VC-MP Link : "http://www.mediafire.com/file/rdpcca73c3hsux9/Egypt+By+MahmoudTornado.rar"
I Added Teleport To It Command = egypt
Enjoy!
#29
Map Showroom / [MAP] An Islnad
Aug 26, 2017, 07:52 PM
HI All I Am MahmoudTornado
New Map Added :D
I Wish It Be Nice :)
Original Page : http://www.gtainside.com/en/vicecity/maps/104261-an-island/
Photos : In The Original Page
VC-MP Link : https://www.mediafire.com/file/d781j62jnqiuown/AnIslnad%20By%20MahmoudTornado.rar
:D

MahmoudTornado
#30
Vehicle Showroom / Spongebobs Burger Mobile
Aug 26, 2017, 07:35 PM
Content Type: Vehicle
Original Author: Paulster
Source Link: http://www.gtainside.com/en/sanandreas/cars/61511-spongebobs-burger-mobile/
Modifications:: Created XML files By MahmoudTornado
Content Screenshots: You Can See The Photo In The Source Link And This Photo Too http://imgur.com/EFRe18q
Link By MahmoudTornado: https://www.mediafire.com/file/xy7fc1l9a3j0832/v6401_t0_p2_Spongebob.7z

MahmoudTornado
#31
See This Steps
1-Download One
2-There Must Have An Col File Exetret It By Coll Editor: http://www.gtagarage.com/mods/show.php?id=1154
3-If There Is File Named Anything.img Extret it by imgtool
4-When You All Files Are Ready Use 7zip To Make An File_unp { Must Be 7zip }
5-Check You Files That In File_unp There Is File Have Txd And Dff Like This { Tornado.txd Tornado.dff Tornado.col } Check This For All Files
6-Create A New XML In Object Make It Like That Name = {TesT}
7-That What You Add On It

<?xml version="1.0" encoding="UTF-8"?>
<objectlist>
  <object id="0">
    <flags value="0" />
    <texture path="Tornado.txd" />
    <collision type="Tornado.col" />
    <model path="Tornado.dff" distance="299" />
  </object>
 </objectlist>

8-Serch In Your Original Game An Place For You Game Or If You Mod Have An .Tornado.IPL ipl To xml by: http://thijn.minelord.com/vcmp/iplConvert/
But Allways Know That Your Object Id 0 In Object XML = 6000 In Map XML

9-Create An New File in Maps Name {Test}
Paste On It That Xml You Got From The IPL TO XML Page

10-But Always Remember That You Object =0 In Maps= 6000
Why The IPL TO XML Don't Make The Ids ?
"That The Original Game Ids Not VC-MP Ids The VC-MP Begain From 6000"

11-Sry For My Bad English :D

And Thx
MahmoudTornado
#33
I Wanna Convert The Death Msg From GTA SA-MP To GTA VC-MP
Like This Not Only Enter It In Corner I Made It In Corner Of Server But I Wanna Made It Like That
http://imgur.com/a/3UMoZ
Hmm Can Any One Help Me?
Which I Made Make The Death Massage In Server Side Only Like <*MahmoudTornado Killed*>
But I Wanna This Can Any One Help Me ?

Thx
MahmoudTornado
#34
Welcome I Am MahmoudTornado's I Only Want Help Every Body So I Made The Golden Gate In V.C And Then I Converted It To VCMP.
I Added Six Colors.
1-San Andreas Color With The Easter Egg
2-San Andreas V.1 Mod Conveted
3-Gold
4-Gold V.1
5-Blue
6-Black
Sorry For The Ugly Photo That My Game It Something Like Files I Converted In My Game Make It Like That Is Will Be Nice In Any Other P.C
My Computer His System Requirements Is Low Sorry Again.
The Original Link For The Original Game: http://www.gtainside.com/en/vicecity/maps/109098-golden-gate-bridge/
The VCMP Link: https://www.mediafire.com/file/o4k9oa6q9n8an0n/GoldenGateBridge.rar
Cover: http://imgur.com/g6ec7Wu
Have Fun.
MahmoudTornado