15.01.2014, 23:54
Hello,
I tried to create a Dynamic Door system, but the MySQL saving process doesn't work.
Here is the command:
Here is the saveDoor(const id) function:
And that's what I see after I use the cmd in game in the MySQL table:
Does anyone have any idea? I tried some things but it didn't work properly. Also, I can only create 1 dynamic door, when I want to create a 2nd one it says "No slots left."
I tried to create a Dynamic Door system, but the MySQL saving process doesn't work.
Here is the command:
Код:
CMD:createdoor(playerid, params[]) { if(playerVariables[playerid][pAdminLevel] >= 5) { new Float: floatPos[3]; if(!strcmp(params, "Exterior", true)) { GetPlayerPos(playerid, floatPos[0], floatPos[1], floatPos[2]); SetPVarFloat(playerid, "pHeX", floatPos[0]); SetPVarFloat(playerid, "pHeY", floatPos[1]); SetPVarFloat(playerid, "pHeZ", floatPos[2]); SetPVarInt(playerid, "hExt", 1); SendClientMessage(playerid, COLOR_WHITE, "Dynamic Door exterior position configured."); } else if(!strcmp(params, "Interior", true)) { GetPlayerPos(playerid, floatPos[0], floatPos[1], floatPos[2]); SetPVarFloat(playerid, "pHiX", floatPos[0]); SetPVarFloat(playerid, "pHiY", floatPos[1]); SetPVarFloat(playerid, "pHiZ", floatPos[2]); SetPVarInt(playerid, "pHiID", GetPlayerInterior(playerid)); SetPVarInt(playerid, "hInt", 1); SendClientMessage(playerid, COLOR_WHITE, "Dynamic Door interior position configured."); } else if(!strcmp(params, "Complete", true)) { if(GetPVarInt(playerid, "hExt") != 1 || GetPVarInt(playerid, "hInt") != 1) return SendClientMessage(playerid, COLOR_GREY, "You haven't configured either the dynamic door exterior or interior. Creation attempt failed."); new i, labelString[96], name[50]; mysql_query("INSERT INTO DynamicDoors (doorName) VALUES('(null)')"); i = mysql_insert_id(); if(isnull(dynamicDoor[i][dName])) { dynamicDoor[i][dExPos][0] = GetPVarFloat(playerid, "pHeX"); dynamicDoor[i][dExPos][1] = GetPVarFloat(playerid, "pHeY"); dynamicDoor[i][dExPos][2] = GetPVarFloat(playerid, "pHeZ"); dynamicDoor[i][dIntPos][0] = GetPVarFloat(playerid, "pHiX"); dynamicDoor[i][dIntPos][1] = GetPVarFloat(playerid, "pHiY"); dynamicDoor[i][dIntPos][2] = GetPVarFloat(playerid, "pHiZ"); dynamicDoor[i][dExterior] = GetPlayerInterior(playerid); dynamicDoor[i][dInterior] = GetPVarInt(playerid, "pHiID"); format(name, sizeof(name), "Created by: %s", szPlayerName); dynamicDoor[i][dName] = name; format(labelString, sizeof(labelString), "ID: %i \n%s", i, dynamicDoor[i][dName]); dynamicDoor[i][dLabelID] = CreateDynamic3DTextLabel(labelString, COLOR_YELLOW, dynamicDoor[i][dExPos][0], dynamicDoor[i][dExPos][1], dynamicDoor[i][dExPos][2], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 10.0); dynamicDoor[i][dPickupID] = CreateDynamicPickup(1314, 23, dynamicDoor[i][dExPos][0], dynamicDoor[i][dExPos][1], dynamicDoor[i][dExPos][2], 0, -1, -1, 50); saveDoor(i); DeletePVar(playerid, "pHeX"); DeletePVar(playerid, "pHeY"); DeletePVar(playerid, "pHeZ"); DeletePVar(playerid, "pHiX"); DeletePVar(playerid, "pHeY"); DeletePVar(playerid, "pHeZ"); DeletePVar(playerid, "pHiID"); SetPlayerInterior(playerid, 0); SetPlayerPos(playerid, dynamicDoor[i][dExPos][0], dynamicDoor[i][dExPos][1], dynamicDoor[i][dExPos][2]); return SendClientMessage(playerid, COLOR_WHITE, "Dynamic Door created!"); } else return SendClientMessage(playerid, COLOR_WHITE, "There are no available dynamic door slots left, sorry!"); } else return SendClientMessage(playerid, COLOR_GREY, SYNTAX_MESSAGE"/createdoor [exterior/interior/complete]"); } return 1; }
Код:
stock saveDoor(const id) { if(strlen(dynamicDoor[id][dName]) >= 1) { format(szLargeString, sizeof(szLargeString), "UPDATE DynamicDoors SET doorExPos1 = '%f', doorExPos2 = '%f', doorExPos3 = '%f', doorIntPos1 = '%f', doorIntPos2 = '%f', doorIntPos3 = '%f'", dynamicDoor[id][dExPos][0], dynamicDoor[id][dExPos][1], dynamicDoor[id][dExPos][2], dynamicDoor[id][dIntPos][0], dynamicDoor[id][dIntPos][1], dynamicDoor[id][dIntPos][2]); format(szLargeString, sizeof(szLargeString), "%s, doorExteriorID = '%d', doorInteriorID = '%d'", szLargeString, dynamicDoor[id][dExterior], dynamicDoor[id][dInterior]); format(szLargeString, sizeof(szLargeString), "%s, doorName = '%s', WHERE doorID = '%d'", szLargeString, dynamicDoor[id][dName], id); mysql_query(szLargeString); } else { return false; } return 1; }
Does anyone have any idea? I tried some things but it didn't work properly. Also, I can only create 1 dynamic door, when I want to create a 2nd one it says "No slots left."