Divil.Scorpiono Posted January 27, 2024 Posted January 27, 2024 (edited) Salut, pentru ca mi a venit asa un gand la un job mai unic mam gandit la Racer aici un mic tutorial nu sunt eu mare scripter dar mna incerc sa explic cat mai bine Mergem sus in gamemode uri dupa define uri si scriem: new Job[MAX_PLAYERS]; //o sa explic de ce ne trebuie in cateva minute new RaceCar[MAX_PLAYERS]; //masina pentru cursa dupa mergem la enum pinfo si scriem: enum pInfo { pJobRacer, //job-ul in sine pJobPoints, //si puncte de job }; new PlayerInfo[MAX_PLAYERS][pInfo]; acum vom face locul de unde sa te angajezi/sa dai /startrace punem la public OnGameModeInIt: public OnGameModeInit() { Create3DTextLabel("-----------------\n/startrace pentru a incepe cursa\n/getjobracer pentru a te angaja\n/quitjob pentru a demisiona\n-----------------", COLOR_GOLD, 1879.1910, 2339.5544, 10.9799, 20, 0, 0); return 1; } Acum vom facem comenzile /getjobracer si /quitjob CMD:getjobracer(playerid, params[]) { if(Job[playerid] == 1) return SCM(playerid, COLOR_RED, "[JOB]: {FFFFFF}Ai deja un job, foloseste '/quitjob' pentru a demisiona."); // Daca are deja un job sa nu poata lua job-ul if(IsPlayerInRangeOfPoint(playerid, 5.0, 1879.1910,2339.5544,10.9799)) // Daca se afla la locul potrivit { Job[playerid] += 1; // Ii setam sa aibe un job PlayerInfo[playerid][pJobs] += 1; // Si ii setam Job 1 pentru a putea da /startrace PlayerInfo[playerid][pJobRacer] = 1; //ii setam job ul SCM(playerid, COLOR_LIGHTBLUE, "[JOB INFO]:{FFFFFF} Te-ai angajat ca Racer."); // Aici il anuntam ca s-a angajat } return 1; } acum facem comanda /quitjob CMD:quitjob(playerid, params[]) { if(Job[playerid] == 0) return SCM(playerid, COLOR_RED, "[JOB]: {FFFFFF}Nu ai nici un job."); // Daca nu are nici un job, nu poate demisiona SCM(playerid, COLOR_YELLOW, "[JOB]: Ai demisionat de la locu' de munca."); // il anuntam ca a demisionat. Job[playerid] = 0; // ii scoatem job-ul PlayerInfo[playerid][pJobRacer] = 0; //aici ii scoate job ul // Aici puteti adauga mai multe PlayerInfo[playerid][pGarbageMan] = 0; sau ce job aveti voi pentru a nu mai putea lucra return 1; } acum facem comanda /startrace: CMD:startrace(playerid, params[]) { if(PlayerInfo[playerid][pJobRacer] == 0) return SCM(playerid, COLOR_RED, "[Race]: {FFFFFF} Nu ai job-ul de Racer."); // daca nu are job ul sa nu poata da comanda if(!IsPlayerInRangeOfPoint(playerid, 10, 1879.1910,2339.5544,10.9799)) return SCM(playerid, COLOR_ERROR, "(Eroare):{FFFFFF} Nu esti la locul potrivit"); else RaceCar[playerid] = CreateVehicle(502, 2124.7451, 2846.4553, 10.7136, 178.8758, 243, 208, -1, 0); //aici creem masina pentru cursa PutPlayerInVehicle(playerid, RaceCar[playerid], 0); //il punem in ea SetPlayerRaceCheckpoint(playerid, 0, 2124.7817, 2762.2695, 10.7128, 2152.7495, 2747.5715, 10.7148, 10.0); // si ii punem checkpoint SCM(playerid, COLOR_TUTORIAL, "(Job Info):{FFFFFF} Mergi cu ce a mai mare viteza in toate checkpoint-urile."); SCM(playerid, COLOR_TUTORIAL, "(Job Info):{FFFFFF} La sfarsit vei primi un premiu."); Checkpoint[playerid] = 14; //ii punem checkpoint ul asta return 1; } acum mergem la Onplayerenterracecheckpoint si punem: public OnPlayerEnterRaceCheckpoint(playerid) { switch(Checkpoint[playerid]) { case 3: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); SCM(playerid, COLOR_TUTORIAL, "(EXAM) MAI AI 1/11 checkpoint uri"); SetPlayerRaceCheckpoint(playerid, 0, 2159.1528, 2346.1804, 10.3300, 2093.7646, 2314.8635, 10.3356, 20); Checkpoint[playerid] ++; } case 4: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); SetPlayerRaceCheckpoint(playerid, 0, 2093.7646, 2314.8635, 10.3356, 2123.8425, 2240.0552, 10.3300, 20); SCM(playerid, COLOR_TUTORIAL, "(EXAM) MAI AI 2/11 checkpoint uri"); Checkpoint[playerid] ++; } case 5: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); SetPlayerRaceCheckpoint(playerid, 0, 2123.8425, 2240.0552, 10.3300, 2123.8425,2240.0552,10.3300, 20); SCM(playerid, COLOR_TUTORIAL, "(EXAM) MAI AI 3/11 checkpoint uri"); Checkpoint[playerid] ++; } case 6: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); SetPlayerRaceCheckpoint(playerid, 0, 2123.8425 ,2240.0552, 10.3300, 2124.3208, 2132.7334, 10.3300, 20); SCM(playerid, COLOR_TUTORIAL, "(EXAM) MAI AI 4/11 checkpoint uri"); Checkpoint[playerid] ++; } case 7: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); SetPlayerRaceCheckpoint(playerid, 0, 2124.3208 ,2132.7334, 10.3300, 2012.7544, 2115.5938, 10.3300, 20); SCM(playerid, COLOR_TUTORIAL, "(EXAM) MAI AI 5/11 checkpoint uri"); DisablePlayerRaceCheckpoint(playerid); Checkpoint[playerid] ++; } case 8: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); SetPlayerRaceCheckpoint(playerid, 0, 2012.7544,2115.5938,10.3300, 1946.5540, 2114.9685, 10.3300, 20); SCM(playerid, COLOR_TUTORIAL, "(EXAM) MAI AI 6/11 checkpoint uri"); Checkpoint[playerid] ++; } case 9: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); SetPlayerRaceCheckpoint(playerid, 0, 1946.5540,2114.9685,10.3300, 2096.1177,2281.3210,10.3339, 20); SCM(playerid, COLOR_TUTORIAL, "(EXAM) MAI AI 7/11 checkpoint uri"); Checkpoint[playerid] ++; } case 10: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); SetPlayerRaceCheckpoint(playerid, 0, 2096.1177,2281.3210,10.3339, 2110.6240,2340.1060,10.3289, 20); SCM(playerid, COLOR_TUTORIAL, "(EXAM) MAI AI 8/11 checkpoint uri"); Checkpoint[playerid] ++; } case 11: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); SetPlayerRaceCheckpoint(playerid, 0, 2110.6240,2340.1060,10.3289, 2159.1528, 2346.1804, 10.3300, 20); SCM(playerid, COLOR_TUTORIAL, "(EXAM) MAI AI 9/11 checkpoint uri"); Checkpoint[playerid] ++; } case 12: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); SetPlayerRaceCheckpoint(playerid, 0, 2167.2896,2300.3743,10.3300, 2159.1528, 2346.1804, 10.3300, 20); SCM(playerid, COLOR_TUTORIAL, "(EXAM) MAI AI 10/11 checkpoint uri"); Checkpoint[playerid] ++; } case 13: { if(!IsPlayerInAnyVehicle(playerid)) return Failexam(playerid); DisablePlayerRaceCheckpoint(playerid); SCM(playerid, COLOR_TUTORIAL, "(EXAM) Felicitari ai terminat examenul"); PlayerInfo[playerid][pCarLic] += 1; DestroyVehicle(ExamCar[playerid]); PlayerInfo[playerid][pExam] = 0; } case 14: { SetPlayerRaceCheckpoint(playerid, 0, 2124.7817, 2762.2695, 10.7128, 2152.7495, 2747.5715, 10.7148, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 1/13 checkpoint uri"); Checkpoint[playerid] ++; } case 15: { SetPlayerRaceCheckpoint(playerid, 0, 2152.7495, 2747.5715, 10.7148, 2159.4492, 2764.3889, 10.6703, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 2/13 checkpoint uri"); Checkpoint[playerid] ++; } case 16: { SetPlayerRaceCheckpoint(playerid, 0, 2159.4492, 2764.3889, 10.6703, 2111.1565, 2775.3210, 10.5658, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 3/13 checkpoint uri"); Checkpoint[playerid] ++; } case 17: { SetPlayerRaceCheckpoint(playerid, 0, 2111.1565, 2775.3210, 10.5658, 2084.8037, 2707.2112, 10.5657, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 4/13 checkpoint uri"); Checkpoint[playerid] ++; } case 18: { SetPlayerRaceCheckpoint(playerid, 0, 2084.8037, 2707.2112, 10.5657, 2044.9855, 2647.2944, 10.5714, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 5/13 checkpoint uri"); Checkpoint[playerid] ++; } case 19: { SetPlayerRaceCheckpoint(playerid, 0, 2044.9855, 2647.2944, 10.5714, 2024.8726, 2567.9417, 13.5944, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 6/13 checkpoint uri"); Checkpoint[playerid] ++; } case 20: { SetPlayerRaceCheckpoint(playerid, 0, 2024.8726, 2567.9417, 13.5944, 2025.1870, 2460.2852, 10.6290, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 7/13 checkpoint uri"); Checkpoint[playerid] ++; } case 21: { SetPlayerRaceCheckpoint(playerid, 0, 2025.1870, 2460.2852 ,10.6290, 2093.1406, 2295.8291, 10.5656, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 9/13 checkpoint uri"); Checkpoint[playerid] ++; } case 22: { SetPlayerRaceCheckpoint(playerid, 0, 2093.1406, 2295.8291, 10.5656, 2009.3448, 2285.2571, 10.5654, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 10/13 checkpoint uri"); Checkpoint[playerid] ++; } case 23: { SetPlayerRaceCheckpoint(playerid, 0, 2009.3448, 2285.2571, 10.5654, 1940.9756, 2285.6765, 10.5658, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 11/13 checkpoint uri"); Checkpoint[playerid] ++; } case 24: { SetPlayerRaceCheckpoint(playerid, 0, 1940.9756, 2285.6765, 10.5658, 1928.7214, 2332.9854, 10.5676, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 12/13 checkpoint uri"); Checkpoint[playerid] ++; } case 25: { SetPlayerRaceCheckpoint(playerid, 0, 1928.7214, 2332.9854, 10.5676, 1888.5048, 2340.0613, 10.7139, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Mai ai 13/13 checkpoint uri"); Checkpoint[playerid] ++; } case 26: { SetPlayerRaceCheckpoint(playerid, 0, 1888.5048, 2340.0613, 10.7139, 1888.5048, 2340.0613, 10.713, 10.0); SCM(playerid, COLOR_TUTORIAL, "(Job Info) Felicitari ai terminat cursa"); DestroyVehicle(RaceCar[playerid]); RaceCar[playerid] = 0; DisablePlayerRaceCheckpoint(playerid); JobReward(playerid); //aici este o functie care sa iti de a bani si job points o vom creea imediat return 1; } } return 1; } function JobReward(playerid) { new string[100]; new money = 100000 + random(3000000); new jp = 12 + random(20); PlayerInfo[playerid][pJobPoints] += jp; PlayerInfo[playerid][pMoney] += money; format(string, sizeof(string), "(Job Info) Ai primit %d $ si %d Job Points", money, jp); SCM(playerid, COLOR_TUTORIAL, string); return 1; } //functia de reward avem nevoie si de functiile de random: stock RandomChange( rare, most, probability ) { new NMB = random( probability ) ? most : rare; printf( "[RandomChange] generated the number: %d with( rare: %d, most: %d, probability: %d )", NMB, rare, most, probability ); return NMB; } stock randomEx( const r_min, const r_max ) { new rand = random( r_max - r_min) + r_min; return rand; } daca aveti vreo nelamurire scrietimi pe discord sau aici COPY-PASTE NU ARE VALOARE Edited January 27, 2024 by ImDariusHere
ASGOOD Posted February 8, 2024 Posted February 8, 2024 (edited) #define randomEx(%0,%1) \ (random(%1-(%0))+%0) #define RandomChange(%0,%1,%2) \ (random(%2) ? %1 : %0) Ai trimis si de la DMV cp-urile Ii setezi job-ul de 2 ori, si la pJobRacer cum si zici tu si la Job[playerid] Edited February 8, 2024 by ASGOOD asgood.ro
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now