06.08.2016, 11:43
(
Последний раз редактировалось TheBigFive; 06.08.2016 в 12:22.
)
Ah god. This is a mess, don't really understand this loop thing, nor how to load things properly.
Also uploaded the code to pastebin so it's easier to read: http://pastebin.com/YJth3Heh
Also uploaded the code to pastebin so it's easier to read: http://pastebin.com/YJth3Heh
Код:
#define MAX_JOBS 1 enum JobData { jobid, jobtype, jobname[MAX_PLAYER_NAME], Float:jobposx, Float:jobposy, Float:jobposz, Float:jobposr, jobworld, actorskin }; new jobData[MAX_JOBS][JobData]; CMD:createjob(playerid, params[]) { if(charData[playerid][characteradmin] > 1) return ErrorMSG(playerid, "You are not authorized to use this command"); new createjobtype, createjobname[24], createactorskin; if(sscanf(params, "is[24]", createjobtype, createjobname, createactorskin)) return UsageMSG(playerid, "/createjob [jobtype] [jobname] [actorskin]"); if(createjobtype > 6 || createjobtype == 0) return ErrorMSG(playerid, "The job type has to be between 1 and 6"); new Float:x, Float:y, Float:z, Float:r, createjobworld; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, r); createjobworld = GetPlayerVirtualWorld(playerid); format(jobData[createjobtype][jobname], 24, "%s", createjobname); jobData[createjobtype][jobposx] = x; jobData[createjobtype][jobposy] = y; jobData[createjobtype][jobposz] = z; jobData[createjobtype][jobworld] = createjobworld; CreateActor(createactorskin, x, y, z, r); mysql_format(connection, query, sizeof(query), "INSERT INTO `jobs` (jobtype, jobname, jobposx, jobposy, jobposz, actorskin) VALUES(%d, '%s', %f, %f, %f, %d)", createjobtype, createjobname, x, y, z, createactorskin); mysql_tquery(connection, query, "", ""); return CMD_SUCCESS; } CMD:editjob(playerid, params[]) { new editjobid, editoption, editjobtext[24]; if(charData[playerid][characteradmin] > 1) return ErrorMSG(playerid, "You are not authorized to use this command"); if(sscanf(params, "is[24]", editjobid, editoption, editjobtext)) return UsageMSG(playerid, "/editjob [option(1-name, 2-pos)] [text]"); if(editoption == 1) { for(new i = 0, j = cache_get_row_count(); i < MAX_JOBS && i < j; i++) { if(IsPlayerInRangeOfPoint(playerid, 3, jobData[i][jobposx], jobData[i][jobposy], jobData[i][jobposz])) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); mysql_format(connection, query, sizeof(query), "UPDATE `jobs` SET `jobname` = '%s' WHERE `jobid` = %d", editjobtext, i); mysql_tquery(connection, query, "", ""); } } } return CMD_SUCCESS; } forward OnLoadJobs(); public OnLoadJobs() { new rows, fields; cache_get_data(rows, fields, connection); if(rows) { jobid = cache_get_row_int(rows, 0, connection); jobData[jobid][jobtype] = cache_get_field_content_int(1, "jobtype"); cache_get_row(rows, 2, jobData[jobid][jobname], connection, 24); jobData[jobid][jobname] = cache_get_field_content_int(3, "jobname"); jobData[jobid][jobposx] = cache_get_field_content_float(4, "jobposx"); jobData[jobid][jobposy] = cache_get_field_content_float(5, "jobposy"); jobData[jobid][jobposz] = cache_get_field_content_float(6, "jobposz"); jobData[jobid][jobposr] = cache_get_field_content_float(7, "jobposr"); jobData[jobid][jobworld] = cache_get_field_content_int(8, "jobworld"); jobData[jobid][actorskin] = cache_get_field_content_float(6, "actorskin"); format(msg, sizeof(msg), "%s\n/takejob", jobData[jobid][jobname]); CreateActor(jobData[jobid][actorskin], jobData[jobid][jobposx], jobData[jobid][jobposy], jobData[jobid][jobposz], jobData[jobid][jobposr]); } return true; }