Jump to content

Tutorial Job Racer(unic parerea mea)


Recommended Posts

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 by ImDariusHere
Link to comment
Share on other sites

  • 2 weeks later...
#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 by ASGOOD

maxresdefault.jpg

 

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.