Question

CMD:addcar(playerid,params[])
{
    if(pInfo[playerid][pAdmin] < 7) return false;
	new string[1950];
	if(GetPlayerState(playerid) != 2) return SendClientMessage(playerid,-1,"Вы не в машине.");
	new idcar, house_price;
	new Float:X, Float:Y, Float:Z, Float:A;

	if(sscanf(params, "ii",idcar,house_price))
	{
		SendClientMessage(playerid, -1, "/addcar [id car] [цена продажи]");
		return 1;
	}
	GetPlayerPos(playerid,X,Y,Z);
	GetPlayerFacingAngle(playerid,A);

	CarInfo[OWNABLECARS][cSell_X]=X;
	CarInfo[OWNABLECARS][cSell_Y]=Y;
	CarInfo[OWNABLECARS][cSell_Z]=Z;
	CarInfo[OWNABLECARS][cSell_A]=A;

	CarInfo[OWNABLECARS][cPos_X]=X;
	CarInfo[OWNABLECARS][cPos_Y]=Y;
	CarInfo[OWNABLECARS][cPos_Z]=Z;
	CarInfo[OWNABLECARS][cPos_A]=A;

	CarInfo[OWNABLECARS][cCost]=house_price;
	CarInfo[OWNABLECARS][cModel]=idcar;

	string="";
	strmid(CarInfo[OWNABLECARS][cOwner],"None",0,strlen("None"),28);
	format(string, 144, "Вы успешно создали машину номер {e7e7e7}%d {ffffff}Стоимость покупки: {e7e7e7}%d",OWNABLECARS+1,CarInfo[OWNABLECARS][cCost]);
	SendClientMessage(playerid,-1,string);
	//
	string="";
	format(string,1500,"INSERT INTO `ownable`(`ID`,`Model`,`Sell_X`, `Sell_Y`, `Sell_Z`,`Sell_A`, `Pos_X`, `Pos_Y`, `Pos_Z`, `Pos_A`, \
	`Color_1`,`Color_2`,`Owner`,`Cost`,`Keyer`,`OnNumber`,`Register`) VALUES ('%d','%d','%.2f','%.2f','%.2f','%.2f','%.2f','%.2f','%.2f','%.2f','1','1','None','%d','None','None','None')",
	OWNABLECARS+1,
	CarInfo[OWNABLECARS][cModel],
	CarInfo[OWNABLECARS][cSell_X],
	CarInfo[OWNABLECARS][cSell_Y],
	CarInfo[OWNABLECARS][cSell_Z],
	CarInfo[OWNABLECARS][cSell_A],
	CarInfo[OWNABLECARS][cPos_X],
	CarInfo[OWNABLECARS][cPos_Y],
	CarInfo[OWNABLECARS][cPos_Z],
	CarInfo[OWNABLECARS][cPos_A],
	CarInfo[OWNABLECARS][cCost]);
	mysql_tquery(dbHandle, string);
	OWNABLECARS++;
	return 1;
}

Когда создаю авто на продажу все координаты ставятся норм в базе а cSell_A и cPos_A нулевые, и в игре авто стоят криво

Share this post


Link to post

1 answer to this question

  • 0
CMD:addcar(playerid,params[])
{
    if(pInfo[playerid][pAdmin] < 7) return false;
	new string[1950];
	if(GetPlayerState(playerid) != 2) return SendClientMessage(playerid,-1,"Вы не в машине.");
	new idcar, house_price;
	new Float:X, Float:Y, Float:Z, Float:A;

	if(sscanf(params, "ii",idcar,house_price))
	{
		SendClientMessage(playerid, -1, "/addcar [id car] [цена продажи]");
		return 1;
	}
	GetPlayerPos(playerid,X,Y,Z);
	GetPlayerFacingAngle(playerid,A);

	CarInfo[OWNABLECARS][cSell_X]=X;
	CarInfo[OWNABLECARS][cSell_Y]=Y;
	CarInfo[OWNABLECARS][cSell_Z]=Z;
	CarInfo[OWNABLECARS][cSell_A]=A;

	CarInfo[OWNABLECARS][cPos_X]=X;
	CarInfo[OWNABLECARS][cPos_Y]=Y;
	CarInfo[OWNABLECARS][cPos_Z]=Z;
	CarInfo[OWNABLECARS][cPos_A]=A;

	CarInfo[OWNABLECARS][cCost]=house_price;
	CarInfo[OWNABLECARS][cModel]=idcar;

	string="";
	strmid(CarInfo[OWNABLECARS][cOwner],"None",0,strlen("None"),28);
	format(string, 144, "Вы успешно создали машину номер {e7e7e7}%d {ffffff}Стоимость покупки: {e7e7e7}%d",OWNABLECARS+1,CarInfo[OWNABLECARS][cCost]);
	SendClientMessage(playerid,-1,string);
	//
	string="";
	format(string,1500,"INSERT INTO `ownable`(`ID`,`Model`,`Sell_X`, `Sell_Y`, `Sell_Z`,`Sell_A`, `Pos_X`, `Pos_Y`, `Pos_Z`, `Pos_A`, \
	`Color_1`,`Color_2`,`Owner`,`Cost`,`Keyer`,`OnNumber`,`Register`) VALUES ('%d','%d','%f','%f','%f','%f','%f','%f','%f','%f','1','1','None','%d','None','None','None')",
	OWNABLECARS,
	CarInfo[OWNABLECARS][cModel],
	X,
	Y,
	Z,
	A,
	X,
	Y,
	Z,
	A,
	CarInfo[OWNABLECARS][cCost]);
	mysql_tquery(dbHandle, string);
	OWNABLECARS++;
	return 1;
}

Попробуй так.

Немного не понимаю логики твоей команды. В автомобиль с ID 'OWNABLECARS' записываются данные, далее идёт запрос в базу данных, но там к id авто прибавляется 1, а в конце уже идёт +1 к этой переменной. Зачем так делать? Тогда уж запихни её после проверок, перед началом выполнения записи и сохранения.

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • zerolora
      By zerolora
      Всем привет, помогите пожалуйста разобраться. Что за беда с командой. Младшие ранги могут банить основателей на раз-два. Хотя в команде вроде как есть защита FD
       
      CMD:ban(playerid, params[]) {     if(PI[playerid][pAdmin] < 3) return SCM(playerid, COLOR_RED, NO_DOSTUP_TEXT);     if(!ADuty{playerid}) return callcmd::apanel(playerid);     static id, days, reason[30];     if(sscanf(params, "uds[30]", id, days, reason)) return SCM(playerid, COLOR_RED, !"Используй: /ban [id] [days 1-30] [Причина]");     if(id == INVALID_PLAYER_ID) return 0;     if(GetString(PN(id), ""FULL_FD"") && !GetString(PN(id), ""FULL_FD2"")) return SCM(playerid, COLOR_RED, "Нельзя забанить создателя");     if(strlen(reason) > 30) return SCM(playerid, COLOR_RED, !"Не больше 30 символов!");     if(IsAIP(reason)) return 1;     if(CheckIsADomen(playerid, reason)) return 1;     if(!(1 <= days <= 30)) return SCM(playerid, COLOR_RED, !"Используй: /ban [id] [days 1-30] [Причина]");     if(id == playerid) return SCM(playerid, COLOR_GREY, !"Вы не можете выдать наказание самому себе!");     ASCMToAllf(COLOR_LIGHTRED, "Администратор %s[%i] забанил игрока %s[%i] на %i дней. Причина: %s", PN(playerid), playerid, PN(id), id, days, reason);     AntiReAction(playerid);     SPDf(id, 0, DIALOG_STYLE_MSGBOX, !"", !"Закрыть", !"", !"Вы получили бан аккаунта, если вы не согласны с решением Администратора, то напишите жалобу на форум, приложив данный скриншот.\n{2D8E35}%s", ServerCFG[server_forum]);     UpdatePlayerDataInt(id, "Warns", 0);     BanName(PN(id), PN(playerid), days, reason);     PI[playerid][pReputation] += 5;     UpdatePlayerDataInt(playerid, "Reputation", PI[playerid][pReputation]);     //  aml(8, playerid, PN(id), reason, days);     str_1[0] = EOS, f(str_1, sizeof(str_1), "%s[%i] забанил игрока %s[%i] на %i дней. Причина: %s", PN(playerid), playerid, PN(id), id, days, reason);     SavePunish(0, str_1, id);     return J_Kick(id); }