Create Vehicle
#1

hi all , some1 can help me to create from database the vehicles please ? i created this stock :

Код:
stock CreateVehicles()
{
    new CQuery[200];
    //--------------------------------------------------------------------------
	format(CQuery, sizeof(CQuery), "SELECT * FROM `Cars` ORDER BY `ID` DESC LIMIT 15");
	Result = db_query(Database, CQuery);
    //--------------------------------------------------------------------------
    for(new i; i < db_num_rows(Result); i++)
    {
        new string[30], string1[30], string2[30], string3[30], string4[30], string5[30], string6[30];
        //----------------------------------------------------------------------
        db_get_field_assoc(Result, "CarOwner", string, 30);
        db_get_field_assoc(Result, "CarID", string1, 30);
       	db_get_field_assoc(Result, "CarPosX", string2, 30);
       	db_get_field_assoc(Result, "CarPosY", string3, 30);
       	db_get_field_assoc(Result, "CarPosZ", string4, 30);
       	db_get_field_assoc(Result, "color1", string5, 30);
       	db_get_field_assoc(Result, "color2", string6, 30);
       	//----------------------------------------------------------------------
       	**** = CreateVehicle(string1,string2,string3,string4,0.0,string5,strin6,-1);
       	//----------------------------------------------------------------------
        db_next_row(Result);
    }
	db_free_result(Result);
	return 1;
}
but ... i want to create the cars...like name of car owner... like that Ph0eniX = CreateVehicle...
i want to create like that becouse i want to make private car system...pls help me

PS:Srry for my bad englesh
Reply
#2

Rep me if i help you anyone want help add me in skype micheal.gravelli
Код:
CMD:makeplayercar(playerid, params[])
{
	new playerb, carid, string[128];
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
    if(!IsPlayerLoggedIn(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player specified.");
    if(PlayerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
    if(sscanf(params, "ui", playerb, carid))
    {
        SendClientMessage(playerid, COLOR_WHITE, "[Usage]: /makeplayercar [playerid] [carid]");
        return 1;
	}
	if(PlayerInfo[playerb][vModel] && PlayerInfo[playerb][vVModel] && PlayerInfo[playerb][vVVModel])
	{
		format(string, sizeof(string), "That player already owns vehicles ID %d and %d and %d.", PlayerInfo[playerb][pVeh], PlayerInfo[playerb][pVVeh], PlayerInfo[playerb][pVVVeh]);
		SendClientMessage(playerid, COLOR_GREY, string);
  		return 1;
	}
	new Float:X, Float:Y, Float:Z;
	GetPlayerPos(playerb, X, Y, Z);
	if(PlayerInfo[playerb][vModel])
 	{
  		PlayerInfo[playerb][pVVeh] = CreateVehicle(carid, X,Y,Z,272.3125,0,0,1200);
    	SetVehicleParamsEx(PlayerInfo[playerb][pVVeh], 0, 0, 0, 1, 0, 0, 0);
     	PlayerInfo[playerb][vVLocked] = 1;
      	PlayerInfo[playerb][vVModel] = carid;
		GetVehiclePos(PlayerInfo[playerb][pVVeh], PlayerInfo[playerb][vVX], PlayerInfo[playerb][vVY], PlayerInfo[playerb][vVZ]);
		GetVehicleZAngle(PlayerInfo[playerb][pVVeh], PlayerInfo[playerb][vVA]);
		PlayerInfo[playerb][vVC1] = 0;
		PlayerInfo[playerb][vVC2] = 0;
		PutPlayerInVehicle(playerb, PlayerInfo[playerb][pVVeh], 0);
		format(string, sizeof(string), "AdmWarn:%s %s has gifted %s a %s.", RPALN(playerid), RPN(playerid), RPN(playerb), RVN(GetVehicleModel(PlayerInfo[playerb][pVVeh])));
		SendAdminMessage(COLOR_DARKRED, 1, string);
		return 1;
  	}
	if(PlayerInfo[playerb][vModel] && PlayerInfo[playerb][vVModel])
 	{
  		PlayerInfo[playerb][pVVVeh] = CreateVehicle(carid, X,Y,Z,272.3125,0,0,1200);
    	SetVehicleParamsEx(PlayerInfo[playerb][pVVVeh], 0, 0, 0, 1, 0, 0, 0);
     	PlayerInfo[playerb][vVVLocked] = 1;
      	PlayerInfo[playerb][vVVModel] = carid;
		GetVehiclePos(PlayerInfo[playerb][pVVVeh], PlayerInfo[playerb][vVVX], PlayerInfo[playerb][vVVY], PlayerInfo[playerb][vVVZ]);
		GetVehicleZAngle(PlayerInfo[playerb][pVVeh], PlayerInfo[playerb][vVA]);
		PlayerInfo[playerb][vVVC1] = 0;
		PlayerInfo[playerb][vVVC2] = 0;
		PutPlayerInVehicle(playerb, PlayerInfo[playerb][pVVVeh], 0);
		format(string, sizeof(string), "AdmWarn:%s %s has gifted %s a %s.", RPALN(playerid), RPN(playerid), RPN(playerb), RVN(GetVehicleModel(PlayerInfo[playerb][pVVeh])));
		SendAdminMessage(COLOR_DARKRED, 1, string);
		return 1;
  	}
   	PlayerInfo[playerb][pVeh] = CreateVehicle(carid, X,Y,Z,272.3125,0,0,1200);
    SetVehicleParamsEx(PlayerInfo[playerb][pVeh], 0, 0, 0, 1, 0, 0, 0);
    PlayerInfo[playerb][vLocked] = 1;
    PlayerInfo[playerb][vModel] = carid;
	GetVehiclePos(PlayerInfo[playerb][pVeh], PlayerInfo[playerb][vX], PlayerInfo[playerb][vY], PlayerInfo[playerb][vZ]);
	GetVehicleZAngle(PlayerInfo[playerb][pVeh], PlayerInfo[playerb][vA]);
	PlayerInfo[playerb][vC1] = 0;
	PlayerInfo[playerb][vC2] = 0;
	PutPlayerInVehicle(playerb, PlayerInfo[playerb][pVeh], 0);
	format(string, sizeof(string), "AdmWarn:%s %s has gifted %s a %s.", RPALN(playerid), RPN(playerid), RPN(playerb), RVN(GetVehicleModel(PlayerInfo[playerb][pVeh])));
	SendAdminMessage(COLOR_DARKRED, 1, string);
	return 1;
}
Reply
#3

i need to repair this stock only...
Reply
#4

look add this is a nice with no error
Reply
#5

Quote:
Originally Posted by Micheal123
Посмотреть сообщение
Rep me if i help you anyone want help add me in skype micheal.gravelli
Код:
CMD:makeplayercar(playerid, params[])
{
	new playerb, carid, string[128];
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
    if(!IsPlayerLoggedIn(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player specified.");
    if(PlayerInfo[playerid][pAdmin] < 5) return SendClientMessage(playerid, COLOR_GREY, "You are not authorized to use this command.");
    if(sscanf(params, "ui", playerb, carid))
    {
        SendClientMessage(playerid, COLOR_WHITE, "[Usage]: /makeplayercar [playerid] [carid]");
        return 1;
	}
	if(PlayerInfo[playerb][vModel] && PlayerInfo[playerb][vVModel] && PlayerInfo[playerb][vVVModel])
	{
		format(string, sizeof(string), "That player already owns vehicles ID %d and %d and %d.", PlayerInfo[playerb][pVeh], PlayerInfo[playerb][pVVeh], PlayerInfo[playerb][pVVVeh]);
		SendClientMessage(playerid, COLOR_GREY, string);
  		return 1;
	}
	new Float:X, Float:Y, Float:Z;
	GetPlayerPos(playerb, X, Y, Z);
	if(PlayerInfo[playerb][vModel])
 	{
  		PlayerInfo[playerb][pVVeh] = CreateVehicle(carid, X,Y,Z,272.3125,0,0,1200);
    	SetVehicleParamsEx(PlayerInfo[playerb][pVVeh], 0, 0, 0, 1, 0, 0, 0);
     	PlayerInfo[playerb][vVLocked] = 1;
      	PlayerInfo[playerb][vVModel] = carid;
		GetVehiclePos(PlayerInfo[playerb][pVVeh], PlayerInfo[playerb][vVX], PlayerInfo[playerb][vVY], PlayerInfo[playerb][vVZ]);
		GetVehicleZAngle(PlayerInfo[playerb][pVVeh], PlayerInfo[playerb][vVA]);
		PlayerInfo[playerb][vVC1] = 0;
		PlayerInfo[playerb][vVC2] = 0;
		PutPlayerInVehicle(playerb, PlayerInfo[playerb][pVVeh], 0);
		format(string, sizeof(string), "AdmWarn:%s %s has gifted %s a %s.", RPALN(playerid), RPN(playerid), RPN(playerb), RVN(GetVehicleModel(PlayerInfo[playerb][pVVeh])));
		SendAdminMessage(COLOR_DARKRED, 1, string);
		return 1;
  	}
	if(PlayerInfo[playerb][vModel] && PlayerInfo[playerb][vVModel])
 	{
  		PlayerInfo[playerb][pVVVeh] = CreateVehicle(carid, X,Y,Z,272.3125,0,0,1200);
    	SetVehicleParamsEx(PlayerInfo[playerb][pVVVeh], 0, 0, 0, 1, 0, 0, 0);
     	PlayerInfo[playerb][vVVLocked] = 1;
      	PlayerInfo[playerb][vVVModel] = carid;
		GetVehiclePos(PlayerInfo[playerb][pVVVeh], PlayerInfo[playerb][vVVX], PlayerInfo[playerb][vVVY], PlayerInfo[playerb][vVVZ]);
		GetVehicleZAngle(PlayerInfo[playerb][pVVeh], PlayerInfo[playerb][vVA]);
		PlayerInfo[playerb][vVVC1] = 0;
		PlayerInfo[playerb][vVVC2] = 0;
		PutPlayerInVehicle(playerb, PlayerInfo[playerb][pVVVeh], 0);
		format(string, sizeof(string), "AdmWarn:%s %s has gifted %s a %s.", RPALN(playerid), RPN(playerid), RPN(playerb), RVN(GetVehicleModel(PlayerInfo[playerb][pVVeh])));
		SendAdminMessage(COLOR_DARKRED, 1, string);
		return 1;
  	}
   	PlayerInfo[playerb][pVeh] = CreateVehicle(carid, X,Y,Z,272.3125,0,0,1200);
    SetVehicleParamsEx(PlayerInfo[playerb][pVeh], 0, 0, 0, 1, 0, 0, 0);
    PlayerInfo[playerb][vLocked] = 1;
    PlayerInfo[playerb][vModel] = carid;
	GetVehiclePos(PlayerInfo[playerb][pVeh], PlayerInfo[playerb][vX], PlayerInfo[playerb][vY], PlayerInfo[playerb][vZ]);
	GetVehicleZAngle(PlayerInfo[playerb][pVeh], PlayerInfo[playerb][vA]);
	PlayerInfo[playerb][vC1] = 0;
	PlayerInfo[playerb][vC2] = 0;
	PutPlayerInVehicle(playerb, PlayerInfo[playerb][pVeh], 0);
	format(string, sizeof(string), "AdmWarn:%s %s has gifted %s a %s.", RPALN(playerid), RPN(playerid), RPN(playerb), RVN(GetVehicleModel(PlayerInfo[playerb][pVeh])));
	SendAdminMessage(COLOR_DARKRED, 1, string);
	return 1;
}
You think copying codes from other script might work? If you have such a good sense of helping, why don't you describe what is PlayerInfo, GetVehicleZAngle etc? I believe its just a copy-paste from a NGG script.
And NEVER beg for reputation.
Reply
#6

so...some1 help me or not?
Reply
#7

Sorry, I think you may have mistaken how it works.

The variable that holds CreateVehicle(); can be anything, however it doesn't make the vehicle owned by the player.

To make the vehicle owned by player, you need to add the vehicle details to the vehicle enum.

so it would look like this
pawn Код:
enum pVehicles
{
      vID,
      vOwner[24],
      vModel,
      vColor[2],
      Float:vPos[4],
      vLocked
}
new PlayerVehicles[MAX_PLAYERS][pVehicles];
Then when you call the load information, you need to stick it in the enum with the player information.

pawn Код:
stock CreateVehicles()
{
    new CQuery[200];
    //--------------------------------------------------------------------------
    format(CQuery, sizeof(CQuery), "SELECT * FROM `Cars` ORDER BY `ID` DESC LIMIT 15");
    Result = db_query(Database, CQuery);
    //--------------------------------------------------------------------------
    for(new i; i < db_num_rows(Result); i++)
    {
        new vehid, vehModel, vehOwner[30], Float:vehPos[4], vehColor[2];
        //----------------------------------------------------------------------
        db_get_field_assoc(Result, "CarOwner", vehOwner, 30);
        db_get_field_assoc(Result, "CarID", vehid, 30);
        // You Need To Add A Vehicle Model Here //
        db_get_field_assoc(Result, "CarModel", vehModel, 30);
        // Above This //
        db_get_field_assoc(Result, "CarPosX", vehPos[0], 30);
        db_get_field_assoc(Result, "CarPosY", vehPos[1], 30);
        db_get_field_assoc(Result, "CarPosZ", vehPos[2], 30);
        db_get_field_assoc(Result, "color1", vehColor[0], 30);
        db_get_field_assoc(Result, "color2", vehColor[1], 30);
       
        PlayerVehicles[i][vModel] = vehModel;
        PlayerVehicles[i][vOwner] = vehOwner;
        PlayerVehicles[i][vColor][0] = vehColor[0];
        PlayerVehicles[i][vColor][1] = vehColor[1];
        PlayerVehicles[i][vPos][0] = vehPos[0];
        PlayerVehicles[i][vPos][1] = vehPos[1];
        PlayerVehicles[i][vPos][2] = vehPos[2];
        PlayerVehicles[i][vPos][3] = vehPos[3];
        PlayerVehicles[i][vLocked] = 0; // Change This Depending on your settings //
        //----------------------------------------------------------------------
        PlayerVehicles[i][vID] = CreateVehicle(vehModel, vehPos[0], vehPos[1], vehPos[2], vehPos[3], vehColor[0], vehColor[1], -1);
        //----------------------------------------------------------------------
        db_next_row(Result);
    }
    db_free_result(Result);
    return 1;
}
Hopefully this should help,

There is an issue to why you are limiting the amount of queries being retrieved by the query?

You have limited it to 15? that means there will only be 15 vehicles loaded in to the server, whether they are owned by one or 2 people.
Reply
#8

Why are you using strings

Use variables instead, like below:
pawn Код:
new CarIDVariable;
db_get_field_assoc(Result, "CarID", CarIDVariable);
If you want to use strings refer to the code below:

This is only an example:
pawn Код:
new String[MAX_PLAYERS][30];
strdel(String[playerid], 0, 30);
strcat(String[playerid], PlayerName(playerid));
There are more ways to do this. Different method same result.
Reply
#9

Create an enum, save the car's variables in it. Load those variables on OnPlayerConnect...

Will give you exmaple later.
Reply
#10

Quote:
Originally Posted by UnknownOwner
Посмотреть сообщение
You think copying codes from other script might work? If you have such a good sense of helping, why don't you describe what is PlayerInfo, GetVehicleZAngle etc? I believe its just a copy-paste from a NGG script.
And NEVER beg for reputation.
UnknownOwner REP+ for saying that
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)