| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- #include <YSI_Coding\y_hooks>
- #define JOB_NONE 0
- #define JOB_PIZZABOY 1
- #define JOB_PAPERBOY 2
- #define JOB_COURIER 3
- static bool:Working[MAX_PLAYERS];
- static Job[MAX_PLAYERS];
- new JobCheckpoint[MAX_PLAYERS];
- hook OnPlayerConnect(playerid)
- {
- Working[playerid] = false;
- Job[playerid] = JOB_NONE;
- JobCheckpoint[playerid] = INVALID_STREAMER_ID;
- }
- hook OnPlayerDisconnect(playerid, reason)
- {
- Job_StopWorking(playerid);
- }
- hook OnPlayerWounded(playerid)
- {
- Job_StopWorking(playerid);
- }
- hook OnPlayerEnterJobCPoint(playerid)
- {
- if(Working[playerid])
- {
- switch(Job[playerid])
- {
- case JOB_PIZZABOY: PizzaboyEnterCheckpoint(playerid);
- case JOB_PAPERBOY: PaperboyEnterCheckpoint(playerid);
- case JOB_COURIER: CourierEnterCheckpoint(playerid);
- }
- }
- return 1;
- }
- Job_GetName(jobid)
- {
- new string[34];
- switch(jobid)
- {
- case JOB_NONE: strcat(string, "Unemployed");
- case JOB_PIZZABOY: strcat(string, "Pizza boy");
- case JOB_PAPERBOY: strcat(string, "Paperboy");
- case JOB_COURIER: strcat(string, "Courier");
- }
- return string;
- }
- Job_StopWorking(playerid)
- {
- if(JobCheckpoint[playerid] != INVALID_STREAMER_ID)
- {
- DestroyDynamicCP(JobCheckpoint[playerid]);
- }
- Working[playerid] = false;
- switch(Job[playerid])
- {
- case JOB_PIZZABOY: PizzaboyStopsWorking(playerid);
- case JOB_PAPERBOY: PaperboyStopsWorking(playerid);
- case JOB_COURIER: CourierStopsWorking(playerid);
- }
- }
- CMD:job(playerid, params[])
- {
- if(isnull(params)) return SendSyntaxMessage(playerid, "/job (options: start, stop, take, quit)");
- if(!strcmp(params, "start", true))
- {
- if(Job[playerid] == JOB_NONE) return SendErrorMessage(playerid, "You don't have a job.");
- if(Working[playerid]) return SendErrorMessage(playerid, "You are already working.");
- if(IsPlayerWounded(playerid)) return SendErrorMessage(playerid, "You can't do this while you're wounded.");
- switch(Job[playerid])
- {
- case JOB_PIZZABOY: PizzaboyStartJob(playerid);
- case JOB_PAPERBOY: PaperboyStartJob(playerid);
- case JOB_COURIER: CourierStartJob(playerid);
- }
- }
- else if(!strcmp(params, "stop", true))
- {
- if(Job[playerid] == JOB_NONE) return SendErrorMessage(playerid, "You don't have a job.");
- if(!Working[playerid]) return SendErrorMessage(playerid, "You are not working.");
- Job_StopWorking(playerid);
- SendClientMessage(playerid, 0xffcc80ff, "(Job) You have stopped working.");
- }
- else if(!strcmp(params, "take", true))
- {
- if(Job[playerid] != JOB_NONE) return SendErrorMessageF(playerid, "You are already hired as a %s. (Use /job take insetead)", Job_GetName(Job[playerid]));
- inline _response(pid, dialogid, response, listitem, string:inputtext[])
- {
- #pragma unused pid, dialogid, inputtext
- if(!response) return 0;
- Player_SetJob(playerid, listitem + 1, true);
- va_SendClientMessage(playerid, 0xffcc80ff, "(Job) You've got hired as a %s.", Job_GetName(listitem + 1));
- }
- Dialog_ShowCallback(playerid, using inline _response, DIALOG_STYLE_TABLIST_HEADERS, "Available jobs", "Please choose a job\nPizza boy\nPaperboy\nCourier", "Ok", "Close");
- }
- else if(!strcmp(params, "quit", true))
- {
- if(Job[playerid] == JOB_NONE) return SendErrorMessage(playerid, "You don't have a job.");
- va_SendClientMessage(playerid, 0xffcc80ff, "(Job) You have quit your job as a %s.", Job_GetName(Job[playerid]));
- Player_SetJob(playerid, JOB_NONE, true);
- Job_StopWorking(playerid);
- }
- else SendSyntaxMessage(playerid, "/job (options: start, stop, take)");
- return 1;
- }
- stock IsCheckpointJobCheckpoint(playerid, checkpointid)
- {
- if(JobCheckpoint[playerid] == checkpointid)
- {
- return true;
- }
- return false;
- }
- stock IsPlayerWorking(playerid)
- {
- return Working[playerid];
- }
- stock SetPlayerWorking(playerid, bool:status)
- {
- Working[playerid] = status;
- if(!status)
- {
- Job_StopWorking(playerid);
- }
- }
- stock Player_GetJob(playerid)
- {
- return Job[playerid];
- }
- stock Player_SetJob(playerid, jobid, bool:save)
- {
- Job[playerid] = jobid;
- if(save)
- {
- new query[62];
- mysql_format(MySQL_GetHandle(), query, sizeof(query), "UPDATE characters SET job = %d WHERE id = %d", jobid, Character_GetSQLID(playerid));
- mysql_tquery(MySQL_GetHandle(), query);
- }
- }
|