CMD:createatm(playerid, params[])
{
if (IsPlayerAdminLevel(playerid, 4))
{
new string[64];
new objectid = -1;
for (new i = 0; i < MAX_DYNAMIC_ATMS; i ++)
{
if (!ATMEnum[i][objectExists])
{
objectid = i;
break;
}
}
if (objectid != -1)
{
format(string, sizeof(string), "INSERT INTO `ATMs` (`objectID`) VALUES('%d')", objectid);
mysql_query(string);
new Float:x, Float:y, Float:z, Float:angle;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, angle);
ATMEnum[objectid][objectExists] = true;
ATMEnum[objectid][objectModel] = 2618;
ATMEnum[objectid][objectX] = x + (1.4 * floatsin(-angle, degrees));
ATMEnum[objectid][objectY] = y + (1.4 * floatcos(angle, degrees));
ATMEnum[objectid][objectZ] = z;
ATMEnum[objectid][objectRotX] = 0.0;
ATMEnum[objectid][objectRotY] = 0.0;
ATMEnum[objectid][objectRotZ] = angle;
ATMEnum[objectid][objectInterior] = GetPlayerInterior(playerid);
ATMEnum[objectid][objectVirtual] = GetPlayerVirtualWorld(playerid);
ATMEnum[objectid][objectID] = CreateDynamicObject(ATMEnum[objectid][objectModel], ATMEnum[objectid][objectX], ATMEnum[objectid][objectY], ATMEnum[objectid][objectZ], 0.0, 0.0, ATMEnum[objectid][objectRotZ], ATMEnum[objectid][objectVirtual], ATMEnum[objectid][objectInterior]);
format(string, sizeof(string), "Type {FFFFFF}/atm{F5DEB3} to use this atm.");
ATMEnum[objectid][objectLabel] = CreateStreamed3DTextLabel(string, YELLOW2, ATMEnum[objectid][objectX], ATMEnum[objectid][objectY], ATMEnum[objectid][objectZ]+1.5, 15.0, ATMEnum[objectid][objectVirtual]);
ATMEnum[objectid][atmICON] = CreateDynamicMapIcon(ATMEnum[objectid][objectY], ATMEnum[objectid][objectY], ATMEnum[objectid][objectY], 52, 0);
DestroyDynamicMapIcon(ATMEnum[objectid][atmICON]);
SaveATM(objectid);
format(string, sizeof(string), "You have created an ATM (%d).", objectid);
SendClientMessage(playerid, WHITE, string);
return 1;
}
else return ErrorMessage(playerid, "You cannot create anymore objects.");
}
else ErrorMessage(playerid, "You are not authorized to use this command.");
return 1;
}
stock SaveATM(objectid)
{
if (objectid >= 0 && objectid < MAX_DYNAMIC_ATMS)
{
if (ATMEnum[objectid][objectExists])
{
new query[768];
format(query, sizeof(query), "UPDATE `ATMs` SET `objectModel` = '%d', `objectX` = '%.4f', `objectY` = '%.4f', `objectZ` = '%.4f', `objectRotX` = '%.4f', `objectRotY` = '%.4f', `objectRotZ` = '%.4f', `objectInterior` = '%d', `objectVirtual` = '%d' WHERE `objectID` = '%d'",
ATMEnum[objectid][objectModel],
ATMEnum[objectid][objectX],
ATMEnum[objectid][objectY],
ATMEnum[objectid][objectZ],
ATMEnum[objectid][objectRotX],
ATMEnum[objectid][objectRotY],
ATMEnum[objectid][objectRotZ],
ATMEnum[objectid][objectInterior],
ATMEnum[objectid][objectVirtual],
objectid
);
mysql_query(query);
}
}
return 1;
}
case DIALOG_FACTIONS:
{
if (response)
{
if (!FactionEnum[listitem + 1][factionExists])
{
ErrorMessage(playerid, "That faction isn't taken yet.");
return 1;
}
else
{
if (FactionEnum[listitem + 1][factionType] == FACTION_HITMAN && PlayerEnum[playerid][pAdmin] < 3)
{
ErrorMessage(playerid, "This faction is classified.");
return 1;
}
SetPVarInt(playerid, "SelectFaction", listitem + 1);
ShowPlayerDialog(playerid, DIALOG_FACTIONS_INDEX, DIALOG_STYLE_LIST, "Factions", "Online Members\nOffline Members", "Select", "Close");
}
}
return 1;
}
case DIALOG_FACTIONS_INDEX:
{
if (response)
{
switch (listitem)
{
case 0:
{
foreach (Player, i)
{
if (IsPlayerConnected(i))
{
new title[32], string2[520];
if(PlayerEnum[i][pFaction] == GetPVarInt(playerid, "SelectFaction"))
{
format(string2, sizeof(string2), "%s%s (Rank: %d)\n", string2, PlayerName(i, false), PlayerEnum[i][pFactionRank]);
}
format(title, sizeof(title), "%s", FactionEnum[listitem + 1][factionName]);
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, title, string2, "Close", "");
}
}
}
case 1:
{
new
result[2][32],
string2[500], title[32];
mysql_query("SELECT `Username`, `FactionRank` FROM `Accounts` Where `Faction` = '%d' ORDER BY `FactionRank` DESC", GetPVarInt(playerid, "SelectFaction"));
mysql_store_result();
if (mysql_num_rows() < 1) return 0;
while (mysql_retrieve_row())
{
mysql_fetch_field_row(result[0], "Username");
mysql_fetch_field_row(result[1], "FactionRank");
format(string2, sizeof(string2), "%s%s (Rank: %d)\n",string2, result[0], strval(result[1]));
}
format(title, sizeof(title), "%s", FactionEnum[listitem + 1][factionName]);
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_LIST, title, string2, "Close", "");
}
}
}
}
public OnQueryError(errorid, error[], callback[], query[], connectionHandle) { switch(errorid) { case ER_SYNTAX_ERROR: { printf("[MY-SQL]Error[%d]:Syntax Error>>Query:%s",errorid,query); } default: { printf("[MY-SQL]Error[%d]:%s",errorid,query); } } return 1; }
printf("[Query] Saving ATM %d, %s ", objectid, query);
printf("Saving ATM %d, %d, %.4f, %.4f, %.4f, %.4f ", objectid, ATMEnum[objectid][objectModel], ATMEnum[objectid][objectX], ATMEnum[objectid][objectY], ATMEnum[objectid][objectZ], ATMEnum[objectid][objectRotX]);
[07:46:15] [08:16:12] [Query] Saving ATM 1, UPDATE `ATMs` SET `objectModel` = '2618', `objectX` = '1532.9465', `objectY` = '-1674.2839', `objectZ` = '13.3828', `objectRotX` = '0.0000', `objectRotY` = '0.0000', `objectRotZ` = '63.4980', `objectInterior` = '0', `objectVirtual` = '0' WHERE `objectID` = '1'
[08:16:12] Saving ATM 1, 2618, 1532.9465, -1674.2839, 13.3828, 0.0000
[08:16:14] [cmd] []: /createatm
[08:16:14] [Query] Saving ATM 2, UPDATE `ATMs` SET `objectModel` = '2618', `objectX` = '1525.5904', `objectY` = '-1681.2431', `objectZ` = '13.3828', `objectRotX` = '0.0000', `objectRotY` = '0.0000', `objectRotZ` = '118.8861', `objectInterior` = '0', `objectVirtual` = '0' WHERE `objectID` = '2'
[08:16:14] Saving ATM 2, 2618, 1525.5904, -1681.2431, 13.3828, 0.0000
[08:16:16] [cmd] []: /createatm
[08:16:16] [Query] Saving ATM 3, UPDATE `ATMs` SET `objectModel` = '2618', `objectX` = '1526.2705', `objectY` = '-1672.4276', `objectZ` = '13.3828', `objectRotX` = '0.0000', `objectRotY` = '0.0000', `objectRotZ` = '6.7610', `objectInterior` = '0', `objectVirtual` = '0' WHERE `objectID` = '3'
[08:16:16] Saving ATM 3, 2618, 1526.2705, -1672.4276, 13.3828, 0.0000
[08:16:18] [cmd] []: /createatm
[08:16:18] [Query] Saving ATM 4, UPDATE `ATMs` SET `objectModel` = '2618', `objectX` = '1532.0362', `objectY` = '-1668.2733', `objectZ` = '13.3828', `objectRotX` = '0.0000', `objectRotY` = '0.0000', `objectRotZ` = '263.8649', `objectInterior` = '0', `objectVirtual` = '0' WHERE `objectID` = '4'
[08:16:18] Saving ATM 4, 2618, 1532.0362, -1668.2733, 13.3828, 0.0000
public OnQueryError(errorid, error[], callback[], query[], connectionHandle) { switch(errorid) { case ER_SYNTAX_ERROR: { printf("[MY-SQL]Error[%d]:Syntax Error>>Query:%s",errorid,query); } default: { printf("[MY-SQL]Error[%d]:%s",errorid,query); } } return 1; } |
stock LoadATMS()
{
new field[30], string[65];
mysql_query("SELECT * FROM `ATMs`");
mysql_store_result();
if (mysql_num_rows() != 0)
{
new id = 0;
while (mysql_retrieve_row())
{
mysql_get_field("objectID", field);
id = strval(field);
if (id >= 0 && id < MAX_DYNAMIC_ATMS)
{
ObjectEnum[id][objectExists] = true;
mysql_get_field("objectModel", field); ATMEnum[id][objectModel] = strval(field);
mysql_get_field("objectX", field); ATMEnum[id][objectX] = floatstr(field);
mysql_get_field("objectY", field); ATMEnum[id][objectY] = floatstr(field);
mysql_get_field("objectZ", field); ATMEnum[id][objectZ] = floatstr(field);
mysql_get_field("objectRotX", field); ATMEnum[id][objectRotX] = floatstr(field);
mysql_get_field("objectRotY", field); ATMEnum[id][objectRotY] = floatstr(field);
mysql_get_field("objectRotZ", field); ATMEnum[id][objectRotZ] = floatstr(field);
mysql_get_field("objectInterior", field); ATMEnum[id][objectInterior] = strval(field);
mysql_get_field("objectVirtual", field); ATMEnum[id][objectVirtual] = strval(field);
ObjectEnum[id][objectID] = CreateDynamicObject(ATMEnum[id][objectModel], ATMEnum[id][objectX], ATMEnum[id][objectY], ATMEnum[id][objectZ], ATMEnum[id][objectRotX], ATMEnum[id][objectRotY], ATMEnum[id][objectRotZ], ATMEnum[id][objectVirtual], ATMEnum[id][objectInterior]);
format(string, sizeof(string), "Type {FFFFFF}/atm{F5DEB3} to use this atm.");
ATMEnum[id][objectLabel] = CreateStreamed3DTextLabel(string, YELLOW2, ATMEnum[id][objectX], ATMEnum[id][objectY], ATMEnum[id][objectZ]+1.5, 15.0, ATMEnum[id][objectVirtual]);
ATMEnum[id][atmICON] = CreateDynamicMapIcon(ATMEnum[id][objectY], ATMEnum[id][objectY], ATMEnum[id][objectY], 52, 0);
}
}
}
mysql_free_result();
return 1;
}
stock GetNearestATM(playerid)
{
new
atmid = -1,
Float:radius = (IsPlayerInAnyVehicle(playerid)) ? (5.5) : (2.0);
for (new i = 0; i < MAX_DYNAMIC_ATMS; i ++)
{
if (ATMEnum[i][objectExists] && IsPlayerInRangeOfPoint(playerid, radius, ATMEnum[i][objectX], ATMEnum[i][objectY], ATMEnum[i][objectZ]) && GetPlayerVirtualWorld(playerid) == ATMEnum[i][objectVirtual])
{
atmid = i;
break;
}
}
return atmid;
}
CMD:atm(playerid, params[])
{
new atm = GetNearestATM(playerid);
if (atm == -1)
{
ErrorMessage(playerid, "You are not near an ATM.");
return 1;
}
DisplayDialogForPlayer(playerid, DIALOG_BANK_WITHDRAW);
return 1;
}
[08:34:49] [MY-SQL]Error[2014]:INSERT INTO `ATMs` (`objectID`) VALUES('2')
[08:34:49] [MY-SQL]Error[2014]:UPDATE `ATMs` SET `objectModel` = '2618', `objectX` = '1538.9224', `objectY` = '-1678.2655', `objectZ` = '13.3828', `objectRotX` = '0.0000', `objectRotY` = '0.0000', `objectRotZ` = '268.7601', `objectInterior` = '0', `objectVirtual` = '0' WHERE `objectID` = '2'
[08:35:25] [MY-SQL]Error[2014]:SELECT `Level`, `Username` FROM `Accounts` Where `Level` > '1' ORDER BY `Level` DESC LIMIT 10
[08:42:29] [cmd] []: /createatm
[08:42:29] [Query] Saving ATM 3, UPDATE `ATMs` SET `objectModel` = '2618', `objectX` = '1536.8680', `objectY` = '-1681.8552', `objectZ` = '13.3828', `objectRotX` = '0.0000', `objectRotY` = '0.0000', `objectRotZ` = '222.5794', `objectInterior` = '0', `objectVirtual` = '0' WHERE `objectID` = '3'
[08:42:29] Saving ATM 3, 2618, 1536.8680, -1681.8552, 13.3828, 0.0000
[08:42:29] [MY-SQL]Error[1062]:INSERT INTO `ATMs` (`objectID`) VALUES('3')