45kastet55
Дебютант
Здравствуйте, помогите с проблемкой, сделал систему личных телепортов и перевёл её на SQL базу данных, не получается сделать единственное, это присвоить ID каждому тп + удаление с последующей записью(созданием) под тот ID который удалился, либо же продолжении по порядку цифр ID, игнорирую те ID, которые были удалены.
Добавление телепорта:
Удаление телепорта:
Добавление телепорта:
PHP:
new ptID[MAX_TELEPORTS]; - переменная записи ID в базу
PHP:
case TELEPORTS_LIST2:
{
if(!response) return ShowMyTeleports(playerid), true;
if(!strlen(inputtext))
{
return ShowPlayerDialog(playerid, TELEPORTS_LIST2, DIALOG_STYLE_INPUT, "{FFFFFF}Создание телепорта", "\n{FFFFFF}Введите название телепорта. Не более 24 символов\n", "Далее", "Отмена" ),true;
}
new Float:coord[3], Float:Angle;
GetPlayerPos(playerid, coord[0], coord[1], coord[2]);
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
GetVehicleZAngle(GetPlayerVehicleID(playerid), Angle);
else
GetPlayerFacingAngle(playerid, Angle);
AddTp(playerid,inputtext,coord[0], coord[1], coord[2], Angle);
ShowPlayerDialog(playerid, TELEPORTS_LIST6, DIALOG_STYLE_MSGBOX, "{FFFFFF}Создание телепорта", "\n{FFFFFF}Телепорт успешно добавлен\n", " ", "");
}
PHP:
stock AddTp(playerid,name[],Float:PosXEx,Float:PosYEx,Float:PosZEx,Float:PosA)
{
new string[812];
new free = NumberTP(playerid);
format(string, sizeof(string),"INSERT INTO `MyTeleports` (`NamePlayer`,`tPosX`, `tPosY`, `tPosZ`,`tPosA`,`tName`,`tID`) VALUES ( '%s',%f,%f,%f,%f,'%s',%i)",
PlayerInfo[playerid][pName],
PosXEx,
PosYEx,
PosZEx,
PosA,
name,
free);
db_query(dbHandle,string);
return true;
}
PHP:
stock NumberTP(playerid)
{
new DBResult:Result;
Result = db_query(dbHandle,"SELECT * FROM `MyTeleports`");
new FindTP = db_num_rows(Result);
new hid = FindTP;
for(new i;i<FindTP;i++)
if(PlayerInfo[playerid][ptID][i] == -1)
{
hid = i;
break;
}
return hid;
}
PHP:
case DELETE_MYTP:
{
if(!response) return ShowMyTeleports(playerid), true;
new IseTP = GetPVarInt(playerid,"SlotTp");
new theard[112];
format(theard, sizeof(theard), "DELETE FROM `MyTeleports` WHERE `tID`='%d'", PlayerInfo[playerid][ptID][IseTP]);
db_free_result(db_query(dbHandle, theard));
ShowPlayerDialog(playerid, TELEPORTS_LIST6, DIALOG_STYLE_MSGBOX, "{FFFFFF}Удаление телепорта", "\n{FFFFFF}Телепорт успешно удален\n", " ", "");
}
Последнее редактирование:
