Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- • Dinamicno kreiranje poslova v0.2 by Shomy
- • Komande /kreirajposao /kreirajvozilo /izbrisiposao i /izbrisivozilo
- • Potrebni files u scriptfiles - "Poslovi" i "VozilaZaPoslove"
- • Sve bugove prijaviti autoru.
- */
- #include < a_samp >
- #include < YSI\y_ini >
- #include < YSI\y_commands >
- #include < sscanf2 >
- #define JOBS_FILE "/Poslovi/%d.ini"
- #define JOBVEH_FILE "/VozilaZaPoslove/%d.ini"
- #define MAX_JOBS 50
- #define MAX_JOBVEH 300
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 50
- #define COL_POSAO "{FF1414}"
- #define COL_BELA "{FFFFFF}"
- #define SCM SendClientMessage
- #define SPD ShowPlayerDialog
- #define DIALOG_JOB 1
- enum jInfo {
- Float:PosX,
- Float:PosY,
- Float:PosZ,
- Float:uPosX,
- Float:uPosY,
- Float:uPosZ,
- jIme[ 40 ],
- Plata,
- uSkin,
- jID
- }
- enum vInfo {
- Float:vPosX,
- Float:vPosY,
- Float:vPosZ,
- Float:vRotA,
- Boja1,
- Boja2,
- vModel,
- zaPosao
- }
- new JobInfo[ MAX_JOBS ][ jInfo ], JobPickup[ sizeof(JobInfo) ], Text3D:JobLabel[ sizeof(JobInfo) ],
- JobVehInfo[ MAX_JOBVEH ][ vInfo ], VehC[ sizeof(JobVehInfo) ], Text3D:VehLabel[ sizeof(JobVehInfo) ], UniformaPickup[ sizeof(JobInfo) ], Text3D:UniformaLabel[ sizeof(JobInfo) ];
- new Posao[ MAX_PLAYERS ], UzeoUniformu[ MAX_PLAYERS ], KreiraPosao[ MAX_PLAYERS ];
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- if(dialogid == DIALOG_JOB) {
- if(response) {
- for(new i; i < MAX_JOBS; i++) {
- if(IsPlayerInRangeOfPoint(playerid, 6.0, JobInfo[ i ][ PosX ], JobInfo[ i ][ PosY ], JobInfo[ i ][ PosZ ])) {
- if(Posao[ playerid ] != 0) return SCM(playerid, -1, "Vec imate posao !");
- new str[ 70 ];
- format(str, sizeof(str), "Cestitamo ! Uspesno ste se zaposlili kao "COL_POSAO"%s.", JobInfo[ i ][ jIme ]);
- SCM(playerid, -1, str);
- Posao[ playerid ] = JobInfo[ i ][ jID ];
- }
- }
- }
- }
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid) {
- for(new i; i < MAX_JOBS; i++) {
- if(pickupid == JobPickup[ i ]) {
- if(IsPlayerInRangeOfPoint(playerid, 6.0, JobInfo[ i ][ PosX ], JobInfo[ i ][ PosY ], JobInfo[ i ][ PosZ ])) {
- if(KreiraPosao[ playerid ] == 0) {
- new str[ 65 ];
- format(str, sizeof(str), ""COL_POSAO"%s "COL_BELA"\nUgovor - 3h\nPlata - %d$", JobInfo[ i ][ jIme ], JobInfo[ i ][ Plata ]);
- SPD(playerid, DIALOG_JOB, DIALOG_STYLE_MSGBOX, ""COL_BELA"POSAO", str, "Prihvati","Odustani");
- }
- }
- }
- }
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
- if(newkeys == KEY_YES) {
- if(KreiraPosao[ playerid ] != 0) {
- new Float:X,Float:Y,Float:Z, i = KreiraPosao[ playerid ];
- GetPlayerPos(playerid, X,Y,Z);
- UniformaPickup[ i ] = CreatePickup(1275, 1, X,Y,Z, -1);
- UniformaLabel[ i ] = Create3DTextLabel("/uniforma", 0x007799FF, X,Y,Z, 15.0, 0, 0);
- JobInfo[ i ][ uPosX ] = X;
- JobInfo[ i ][ uPosY ] = Y;
- JobInfo[ i ][ uPosZ ] = Z;
- SaveJob(i);
- KreiraPosao[ playerid ] = 0;
- SCM(playerid, -1, "Uspesno ste kreirali posao. Ukoliko hocete da kreirate vozilo za posao - /kreirajvozilo");
- }
- }
- return 1;
- }
- forward LoadJob(id, name[], value[]);
- public LoadJob(id, name[], value[]) {
- INI_Float("Lokacija_X", JobInfo[ id ][ PosX ]);
- INI_Float("Lokacija_Y", JobInfo[ id ][ PosY ]);
- INI_Float("Lokacija_Z", JobInfo[ id ][ PosZ ]);
- INI_Float("Uniforma_X", JobInfo[ id ][ uPosX ]);
- INI_Float("Uniforma_Y", JobInfo[ id ][ uPosY ]);
- INI_Float("Uniforma_Z", JobInfo[ id ][ uPosZ ]);
- INI_String("Posao_Ime", JobInfo[ id ][ jIme ], 40);
- INI_Int("Plata", JobInfo[ id ][ Plata ]);
- INI_Int("Uniforma_Skin", JobInfo[ id ][ uSkin ]);
- INI_Int("ID", JobInfo[ id ][ jID ]);
- return 1;
- }
- forward LoadVehJob(id, name[], value[]);
- public LoadVehJob(id, name[], value[]) {
- INI_Float("Lokacija_X", JobVehInfo[ id ][ vPosX ]);
- INI_Float("Lokacija_Y", JobVehInfo[ id ][ vPosY ]);
- INI_Float("Lokacija_Z", JobVehInfo[ id ][ vPosZ ]);
- INI_Float("Rotacija_A", JobVehInfo[ id ][ vRotA ]);
- INI_Int("Za_Posao", JobVehInfo[ id ][ zaPosao ]);
- INI_Int("Model", JobVehInfo[ id ][ vModel ]);
- INI_Int("Boja_1", JobVehInfo[ id ][ Boja1 ]);
- INI_Int("Boja_2", JobVehInfo[ id ][ Boja2 ]);
- return 1;
- }
- public OnFilterScriptInit() {
- print("= Dinamicno Kreiranje Poslova =\n\n = = = by Shomy = = =\n\n= Dinamicno Kreiranje Poslova =\n");
- for(new i; i < MAX_JOBS; i++) {
- new jFile[ 50 ], str[ 80 ];
- format(jFile, sizeof(jFile), JOBS_FILE, i);
- if(fexist(jFile)) {
- INI_ParseFile(jFile, "LoadJob", .bExtra = true, .extra = i);
- JobPickup[ i ] = CreatePickup(1210, 1, JobInfo[ i ][ PosX ],JobInfo[ i ][ PosY ],JobInfo[ i ][ PosZ ], -1);
- format(str,sizeof(str), ""COL_POSAO"[ "COL_BELA"%s "COL_POSAO"]\n"COL_BELA"Ugovor - "COL_POSAO"3h", JobInfo[ i ][ jIme ]);
- JobLabel[ i ] = Create3DTextLabel(str, 0xFFFFFFFF, JobInfo[ i ][ PosX ],JobInfo[ i ][ PosY ],JobInfo[ i ][ PosZ ], 15.0, 0, 0);
- UniformaPickup[ i ] = CreatePickup(1275, 1, JobInfo[ i ][ uPosX ],JobInfo[ i ][ uPosY ],JobInfo[ i ][ uPosZ ], -1);
- UniformaLabel[ i ] = Create3DTextLabel("/uniforma", 0x007799FF, JobInfo[ i ][ uPosX ],JobInfo[ i ][ uPosY ],JobInfo[ i ][ uPosZ ], 15.0, 0, 0);
- }
- }
- for(new i; i < MAX_JOBVEH; i++) {
- new jFile[ 50 ], str[ 55 ];
- format(jFile, sizeof(jFile), JOBVEH_FILE, i);
- if(fexist(jFile)) {
- INI_ParseFile(jFile, "LoadVehJob", .bExtra = true, .extra = i);
- VehC[ i ] = CreateVehicle(JobVehInfo[ i ][ vModel ], JobVehInfo[ i ][ vPosX ],JobVehInfo[ i ][ vPosY ],JobVehInfo[ i ][ vPosZ ],JobVehInfo[ i ][ vRotA ], JobVehInfo[ i ][ Boja1 ], JobVehInfo[ i ][ Boja2 ], -1);
- format(str, sizeof(str), ""COL_POSAO"[ "COL_BELA"%s "COL_POSAO"]", JobInfo[ i ][ jIme ]);
- VehLabel[ i ] = Create3DTextLabel(str, 0xFFFFFFFF, JobVehInfo[ i ][ vPosX ],JobVehInfo[ i ][ vPosY ],JobVehInfo[ i ][ vPosZ ], 15.0, 0, 0);
- Attach3DTextLabelToVehicle( VehLabel[ i ], VehC[ i ], 0.0, 0.0, 0.0);
- }
- }
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate) {
- if(newstate == PLAYER_STATE_DRIVER) { if(Posao[ playerid ] != JobVehInfo[ GetPlayerVehicleID(playerid) ][ zaPosao ]) { SCM(playerid, -1, "Ne mozete voziti to vozilo."); RemovePlayerFromVehicle(playerid); } }
- return 1;
- }
- public OnPlayerConnect(playerid) {
- KreiraPosao[ playerid ] = 0;
- UzeoUniformu[ playerid ] = -1;
- return 1;
- }
- YCMD:uniforma(playerid, params[], help) {
- for(new id; id < MAX_JOBS; id++) {
- if(IsPlayerInRangeOfPoint(playerid, 6.0, JobInfo[ id ][ uPosX ], JobInfo[ id ][ uPosY ], JobInfo[ id ][ uPosZ ])) {
- if(Posao[ playerid ] == JobInfo[ id ][ jID ])
- {
- if(UzeoUniformu[ playerid ] == -1) {
- UzeoUniformu[ playerid ] = GetPlayerSkin(playerid);
- SetPlayerSkin(playerid, JobInfo[ id ][ uSkin ]);
- SCM(playerid, -1, "Uzeli ste uniformu.");
- }
- else {
- SetPlayerSkin(playerid, UzeoUniformu[ playerid ]);
- UzeoUniformu[ playerid ] = -1;
- SCM(playerid, -1, "Skinuli ste uniformu.");
- }
- }
- else { new str[ 55 ]; format(str, sizeof(str), "Niste zaposleni kao %s.", JobInfo[ id ][ jIme ]); SCM(playerid, -1, str); }
- }
- }
- return 1;
- }
- YCMD:kreirajvozilo(playerid, params[], help) {
- #pragma unused help
- if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste RCON Admin.");
- new jid = NextJobVehID(MAX_JOBVEH), model, b1, b2, Float:X,Float:Y,Float:Z,Float:A, str[ 55 ], jFile[ 50 ], id;
- GetPlayerPos(playerid, X,Y,Z);
- GetPlayerFacingAngle(playerid, A);
- if(sscanf(params, "dddd", id, model, b1, b2)) return SCM(playerid, -1, "/kreirajvozilo [ Posao ID ] [ ID Vozila ] [ Boja 1 ] [ Boja 2 ]");
- format(jFile, sizeof(jFile), JOBS_FILE, id);
- if(!fexist(jFile)) return SCM(playerid, -1, "ID tog posla ne postoji.");
- VehC[ jid ] = CreateVehicle(model, X, Y, Z, A, b1, b2, -1);
- format(str, sizeof(str), ""COL_POSAO"[ "COL_BELA"%s "COL_POSAO"]", JobInfo[ jid ][ jIme ]);
- VehLabel[ jid ] = Create3DTextLabel(str, 0xFFFFFFFF, X,Y,Z, 15.0, 0, 0);
- Attach3DTextLabelToVehicle( VehLabel[ jid ], VehC[ jid ], 0.0, 0.0, 0.0);
- PutPlayerInVehicle(playerid, VehC[ jid ], 0);
- JobVehInfo[ jid ][ vPosX ] = X;
- JobVehInfo[ jid ][ vPosY ] = Y;
- JobVehInfo[ jid ][ vPosZ ] = Z;
- JobVehInfo[ jid ][ vRotA ] = A;
- JobVehInfo[ jid ][ zaPosao ] = id;
- JobVehInfo[ jid ][ vModel ] = model;
- JobVehInfo[ jid ][ Boja1 ] = b1;
- JobVehInfo[ jid ][ Boja2 ] = b2;
- SaveJobVeh(jid);
- SCM(playerid, -1, "Uspesno ste kreirali vozilo za posao.");
- return 1;
- }
- YCMD:izbrisivozilo(playerid, params[], help) {
- #pragma unused help
- #pragma unused params
- if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste RCON Admin.");
- if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid, -1, "Morate biti u vozilu.");
- new vid = GetPlayerVehicleID(playerid), jFile[ 50 ];
- format(jFile, sizeof(jFile), JOBVEH_FILE, vid);
- if(!fexist(jFile)) return SCM(playerid, -1, "To vozilo nije za poslove.");
- fremove(jFile);
- DestroyVehicle(vid);
- Delete3DTextLabel(VehLabel[ vid ]);
- SCM(playerid, -1, "Uspesno ste obrisali vozilo.");
- return 1;
- }
- YCMD:izbrisiposao(playerid, params[], help) {
- new jid, jFile[ 50 ];
- if(sscanf(params, "d", jid)) return SCM(playerid, -1, "/izbrisiposao [ ID ]");
- format(jFile, sizeof(jFile), JOBS_FILE, jid);
- if(!fexist(jFile)) return SCM(playerid, -1, "ID Tog posla ne postoji.");
- fremove(jFile);
- DestroyPickup(JobPickup[ jid ]);
- Delete3DTextLabel(JobLabel[ jid ]);
- DestroyPickup(UniformaPickup[ jid ]);
- Delete3DTextLabel(UniformaLabel[ jid ]);
- SCM(playerid, -1, "Uspesno ste obrisali posao.");
- return 1;
- }
- YCMD:kreirajposao(playerid, params[], help) {
- #pragma unused help
- if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste RCON Admin.");
- if(KreiraPosao[ playerid ] != 0) return SCM(playerid, -1, "Vec kreirate posao. Idite do pozicija uniforme i pritisnite Y.");
- new ime[ 40 ], Float:X, Float:Y, Float:Z, i = NextJobID(MAX_JOBS), str[ 80 ], plata, uskin;
- if(sscanf(params, "dds[40]", plata, uskin, ime)) return SCM(playerid, -1, "/kreirajposao [ Plata ] [ Uniforma Skin ] [ Ime ]");
- if(uskin < 1 || uskin > 399) return SCM(playerid, -1, "Skin ID ne moze biti manji od 1 ili veci od 399.");
- GetPlayerPos(playerid, X,Y,Z);
- JobPickup[ i ] = CreatePickup(1210, 1, X,Y,Z, -1);
- format(str,sizeof(str), ""COL_POSAO"[ "COL_BELA"%s "COL_POSAO"]\n"COL_BELA"Ugovor - "COL_POSAO"3h", ime);
- JobLabel[ i ] = Create3DTextLabel(str, 0xFFFFFFFF, X,Y,Z, 15.0, 0, 0);
- JobInfo[ i ][ PosX ] = X;
- JobInfo[ i ][ PosY ] = Y;
- JobInfo[ i ][ PosZ ] = Z;
- JobInfo[ i ][ jIme ] = ime;
- JobInfo[ i ][ Plata ] = plata;
- JobInfo[ i ][ uSkin ] = uskin;
- JobInfo[ i ][ jID ] = i;
- KreiraPosao[ playerid ] = i;
- SCM(playerid, -1, "Sada idite do pozicija uniforme i pritisnite dugme Y.");
- SaveJob(i);
- i++;
- return 1;
- }
- stock SaveJob(id) {
- new jFile[ 60 ];
- format(jFile, sizeof(jFile), JOBS_FILE, id);
- new INI:File = INI_Open(jFile);
- INI_WriteFloat(File, "Lokacija_X", JobInfo[ id ][ PosX ]);
- INI_WriteFloat(File, "Lokacija_Y", JobInfo[ id ][ PosY ]);
- INI_WriteFloat(File, "Lokacija_Z", JobInfo[ id ][ PosZ ]);
- INI_WriteFloat(File, "Uniforma_X", JobInfo[ id ][ uPosX ]);
- INI_WriteFloat(File, "Uniforma_Y", JobInfo[ id ][ uPosY ]);
- INI_WriteFloat(File, "Uniforma_Z", JobInfo[ id ][ uPosZ ]);
- INI_WriteString(File, "Posao_Ime", JobInfo[ id ][ jIme ]);
- INI_WriteInt(File, "Plata", JobInfo[ id ][ Plata ]);
- INI_WriteInt(File, "Uniforma_Skin", JobInfo[ id ][ uSkin ]);
- INI_WriteInt(File, "ID", JobInfo[ id ][ jID ]);
- INI_Close(File);
- }
- stock SaveJobVeh(id) {
- new vFile[ 60 ];
- format(vFile, sizeof(vFile), JOBVEH_FILE, id);
- new INI:File = INI_Open(vFile);
- INI_WriteFloat(File, "Lokacija_X", JobVehInfo[ id ][ vPosX ]);
- INI_WriteFloat(File, "Lokacija_Y", JobVehInfo[ id ][ vPosY ]);
- INI_WriteFloat(File, "Lokacija_Z", JobVehInfo[ id ][ vPosZ ]);
- INI_WriteFloat(File, "Rotacija_A", JobVehInfo[ id ][ vRotA ]);
- INI_WriteInt(File, "Za_Posao", JobVehInfo[ id ][ zaPosao ]);
- INI_WriteInt(File, "Model", JobVehInfo[ id ][ vModel ]);
- INI_WriteInt(File, "Boja_1", JobVehInfo[ id ][ Boja1 ]);
- INI_WriteInt(File, "Boja_2", JobVehInfo[ id ][ Boja2 ]);
- INI_Close(File);
- }
- // Nisu moji stocks
- stock NextJobID(const len) {
- new id = (-1);
- for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
- provjera = ( loop+1 );
- format( Data_, ( sizeof Data_ ), JOBS_FILE, provjera );
- if(!fexist(Data_)) {
- id = ( provjera );
- break; } }
- return ( id );
- }
- stock NextJobVehID(const len) {
- new id = (-1);
- for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
- provjera = ( loop+1 );
- format( Data_, ( sizeof Data_ ), JOBVEH_FILE, provjera );
- if(!fexist(Data_)) {
- id = ( provjera );
- break; } }
- return ( id );
- }
Advertisement
Add Comment
Please, Sign In to add comment