SA-MP Forums Archive
how to make a freeroam vehicle system ? +REP - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: how to make a freeroam vehicle system ? +REP (/showthread.php?tid=545465)



how to make a freeroam vehicle system ? +REP - ItzRbj - 08.11.2014

i've been searching for alotta scripts and tutorials about this but i cant find any , also i was using the Filterscript fsdebug but its problem is 1 player can spawn millions of vehicles , which always crash my server , it'll be awesome if someone gave me a tutorial so i can learn how to , or just the code , i'll try to understand it


Re: how to make a freeroam vehicle system ? +REP - DavidBilla - 08.11.2014

Here

https://sampforum.blast.hk/showthread.php?tid=346727


Re: how to make a freeroam vehicle system ? +REP - MD5 - 08.11.2014

An easy Dialog Car Menu

http://pastebin.com/g2YB9xU5


Re: how to make a freeroam vehicle system ? +REP - ItzRbj - 08.11.2014

Quote:
Originally Posted by DavidBilla
Посмотреть сообщение
it doesnt work ..... , btw +REP but how can i make it work ?


Re: how to make a freeroam vehicle system ? +REP - ItzRbj - 08.11.2014

Quote:
Originally Posted by MD5
Посмотреть сообщение
An easy Dialog Car Menu

http://pastebin.com/g2YB9xU5
+REP for help , thx


Re: how to make a freeroam vehicle system ? +REP - Capua - 08.11.2014

Or use a simple /v command;

pawn Код:
enum PLAYER_INFO
{
    pVeh
}
pawn Код:
new gPlayerInfo[MAX_PLAYERS][PLAYER_INFO];
pawn Код:
public OnPlayerConnect(playerid)
{
    gPlayerInfo[playerid][pVeh]=-1;
    return 1;
}
pawn Код:
new VehicleNames[212][] = {
    "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
    "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
    "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
    "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
    "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
    "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
    "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
    "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
    "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
    "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
    "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
    "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
    "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
    "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
    "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
    "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
    "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
};
pawn Код:
GetVehicleModelIDFromName(vname[])
{
    for(new i = 0; i < 211; i++)
    {
        if ( strfind(VehicleNames[i], vname, true) != -1 )
            return i + 400;
    }
    return -1;
}
pawn Код:
CMD:v(playerid, params[])
{
    if (gPlayerInfo[playerid][pAlevel]==0)
        return SendClientMessage(playerid,-1,"You need to be an admin to use this command!");
    new model[50];
    if(sscanf(params, "s[50]", model)) return SendClientMessage( playerid, -1, "USAGE: /v [Car name or ID]" );
    new veh = GetVehicleModelIDFromName(model);
    new Float:x, Float:y, Float:z, Float:angle, interior = GetPlayerInterior(playerid), vw = GetPlayerVirtualWorld(playerid);
    if(veh < 400 || veh > 611) return SendClientMessage(playerid, -1, "Invalid vehicle name!");
    GetPlayerPos( playerid, x, y, z );
    GetPlayerFacingAngle( playerid, angle );
    if( gPlayerInfo[playerid][pVeh] != -1 ) DestroyVehicle(gPlayerInfo[playerid][pVeh]);
    gPlayerInfo[playerid][pVeh] = CreateVehicle(veh, x, y, z, angle, -1, -1, 200 );
    SetVehHealth(gPlayerInfo[playerid][pVeh]);
    LinkVehicleToInterior(gPlayerInfo[playerid][pVeh], interior);
    SetVehicleVirtualWorld(gPlayerInfo[playerid][pVeh], vw);
    PutPlayerInVehicle(playerid,gPlayerInfo[playerid][pVeh],0);
    return 1;
}



Re: how to make a freeroam vehicle system ? +REP - ItzRbj - 08.11.2014

Quote:
Originally Posted by Capua
Посмотреть сообщение
Or use a simple /v command;

pawn Код:
enum PLAYER_INFO
{
    pVeh
}
pawn Код:
new gPlayerInfo[MAX_PLAYERS][PLAYER_INFO];
pawn Код:
public OnPlayerConnect(playerid)
{
    gPlayerInfo[playerid][pVeh]=-1;
    return 1;
}
pawn Код:
new VehicleNames[212][] = {
    "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
    "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
    "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
    "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
    "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
    "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
    "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
    "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
    "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
    "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
    "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
    "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
    "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
    "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
    "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
    "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
    "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
};
pawn Код:
GetVehicleModelIDFromName(vname[])
{
    for(new i = 0; i < 211; i++)
    {
        if ( strfind(VehicleNames[i], vname, true) != -1 )
            return i + 400;
    }
    return -1;
}
pawn Код:
CMD:v(playerid, params[])
{
    if (gPlayerInfo[playerid][pAlevel]==0)
        return SendClientMessage(playerid,-1,"You need to be an admin to use this command!");
    new model[50];
    if(sscanf(params, "s[50]", model)) return SendClientMessage( playerid, -1, "USAGE: /v [Car name or ID]" );
    new veh = GetVehicleModelIDFromName(model);
    new Float:x, Float:y, Float:z, Float:angle, interior = GetPlayerInterior(playerid), vw = GetPlayerVirtualWorld(playerid);
    if(veh < 400 || veh > 611) return SendClientMessage(playerid, -1, "Invalid vehicle name!");
    GetPlayerPos( playerid, x, y, z );
    GetPlayerFacingAngle( playerid, angle );
    if( gPlayerInfo[playerid][pVeh] != -1 ) DestroyVehicle(gPlayerInfo[playerid][pVeh]);
    gPlayerInfo[playerid][pVeh] = CreateVehicle(veh, x, y, z, angle, -1, -1, 200 );
    SetVehHealth(gPlayerInfo[playerid][pVeh]);
    LinkVehicleToInterior(gPlayerInfo[playerid][pVeh], interior);
    SetVehicleVirtualWorld(gPlayerInfo[playerid][pVeh], vw);
    PutPlayerInVehicle(playerid,gPlayerInfo[playerid][pVeh],0);
    return 1;
}
Код:
C:\Users\Mohamed\Desktop\samp03z_svr_R1_win32\gamemodes\grandlarc.pwn(68) : warning 203: symbol is never used: "GetVehicleModelIDFromName"
C:\Users\Mohamed\Desktop\samp03z_svr_R1_win32\gamemodes\grandlarc.pwn(68) : warning 203: symbol is never used: "v"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


2 Warnings.
i get those errors when i entered ur code


Re: how to make a freeroam vehicle system ? +REP - Capua - 08.11.2014

Do you have ZCMD?


Re: how to make a freeroam vehicle system ? +REP - ItzRbj - 08.11.2014

pawn Код:
#include <a_samp>
#include <zcmd>
#include <sscanf>

what else should i include ?


Re: how to make a freeroam vehicle system ? +REP - MD5 - 08.11.2014

warning 203: symbol is never used: means the symbol/text was never used.

Use this code instead:

Код:
CMD:v(playerid, params[])
{
    if (gPlayerInfo[playerid][pAlevel]==0)
        return SendClientMessage(playerid,-1,"You need to be an admin to use this command!");
    new model[50];
    if(sscanf(params, "s[50]", model)) return SendClientMessage(playerid, -1, "USAGE: /v [Car name or ID]");
    new veh(GetVehicleModelIDFromName(model));
    new Float:x, Float:y, Float:z, Float:angle, interior = GetPlayerInterior(playerid), vw = GetPlayerVirtualWorld(playerid);
    if(veh < 400 || veh > 611) return SendClientMessage(playerid, -1, "Invalid vehicle name!");
    GetPlayerPos( playerid, x, y, z );
    GetPlayerFacingAngle( playerid, angle );
    if( gPlayerInfo[playerid][pVeh] != -1 ) DestroyVehicle(gPlayerInfo[playerid][pVeh]);
    gPlayerInfo[playerid][pVeh] = CreateVehicle(veh, x, y, z, angle, -1, -1, 200 );
    SetVehHealth(gPlayerInfo[playerid][pVeh]);
    LinkVehicleToInterior(gPlayerInfo[playerid][pVeh], interior);
    SetVehicleVirtualWorld(gPlayerInfo[playerid][pVeh], vw);
    PutPlayerInVehicle(playerid,gPlayerInfo[playerid][pVeh],0);
    return 1;
}