Help pls


Započeo Fr0z3n, Jun 25, 2021, 20:07:22 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Ne radi mi sistem za zaposaljvanje, bukv sam sve probao i nece...
Deo skripte:
if( ChosenJob[ playerid ] != 0 ) {
	
	    if( !IsPlayerInRangeOfPoint( playerid, 5.0, jobsInfos[ ChosenJob[ playerid ]-1 ][ jTakeJobPos ][ 0 ], jobsInfos[ ChosenJob[ playerid ]-1 ][  jTakeJobPos ][ 1 ], jobsInfos[ ChosenJob[ playerid ]-1 ][ jTakeJobPos ][ 2 ] ) ) return SendErrorMessage( playerid, "Morate stajati na pickupu da bi uzeli posao v1!");
	
		if( ChosenJob[ playerid ] == POSAO_BANKAR ) {
		    SendJobMessage( playerid, "Cestitamo, Uspesno ste se zaposlili kao Prevoznik Novca." );
		    SendJobMessage( playerid, "Komande posla: /posao /uniforma /prekiniposao" );
		}


Znaci ChosenJob[ playerid ]  je postavljen na 0 uvek, menjam ga na OnPlayerPickupDynamicPickup

for( new i = 0; i < MAX_JOBS; i++) {

        if( pickupid == jobsInfos[ i ][ jPickup ] ) {
        
            ChosenJob[ playerid ] = i+1;
            break;
		}
	}


jPickup pravim ovako
if( jobsInfos[ i ][ jIsIllegal ] ) {
			
			    jobsInfos[ i ][ jPickup ] = CreateDynamicPickup( 1254, 1, jobsInfos[ i ][ jTakeJobPos ][ 0 ], jobsInfos[ i ][  jTakeJobPos ][ 1 ], jobsInfos[ i ][ jTakeJobPos ][ 2 ], -1, -1 );
			}
			else {

	            jobsInfos[ i ][ jPickup ] = CreateDynamicPickup( 1210, 1, jobsInfos[ i ][ jTakeJobPos ][ 0 ], jobsInfos[ i ][  jTakeJobPos ][ 1 ], jobsInfos[ i ][ jTakeJobPos ][ 2 ], -1, -1 );
			}


Sve lepo napravi ali mi se cini da pod onplayerpickupdynamicpickup nesto ne valja...idk

Poslednja Izmena: Jun 26, 2021, 20:11:12 POSLE PODNE od M Ө M Σ N Z I

if( ChosenJob[ playerid ] != 0 ) {

Valjda je == 0 posto verovatno hoces gledas samo ako nema nikakav job???

Gdje ti stoji taj prvi kod


Citat: Deleted User poslato Jun 25, 2021, 20:52:08 POSLE PODNE
if( ChosenJob[ playerid ] != 0 ) {

Valjda je == 0 posto verovatno hoces gledas samo ako nema nikakav job???

Ne pa ako je 0 onda ne stoji ni na jednom pickupu, kada igrac stane na odredjeni pickup 0 se menja

Cek cek, nije mi jasno sve ovo.

Okej napravio si pickup za poslove, ali cemu komanda? Mozda mu se negde resetovala promenljiva? Ili chosen_job nije jednak POSAO_BANKAR??

Probaj napravi printf debug, vidi dokle dodje i u kojoj proveri u komandi tacno stane.

Odradio sam debug i ovde ne prolazi

public OnPlayerPickUpDynamicPickup( playerid, pickupid ) {

    for( new i = 0; i < MAX_JOBS; i++) {

        if( pickupid == jobsInfos[ i ][ jPickup ] ) {
        
        	print("ChosenJob[ playerid ] = i+1;");
            ChosenJob[ playerid ] = i+1;
            break;
		}
	}

Ako jos nisi skontao sta radi, znaci kada igrac stane na pickup u ovom slucaju jPickup koji se kreira na startovanju servera, ChosenJob[playerid] se menja max_jobs +1, i tako za svaki pickup...

    for( new i = 0; i < MAX_JOBS; i++) {

        printf("%d", jobsInfos[i][jPickup]);
        printf("%d", pickupid);
        print("Razmak");

        if( pickupid == jobsInfos[ i ][ jPickup ] ) {
       
        	print("ChosenJob[ playerid ] = i+1;");
            ChosenJob[ playerid ] = i+1;
            break;
		}
	}


Probaj ostampaj ovo, vidi da li ce se u nekom trenutku poklopiti

Bukvalno jedino da si zajebao negde drugde, sve ovo sto si poslao je kako treba.. Aj skupi sve sto imas za jPickup i posalji ovde, pritom samo oznaci gde se sta nalazi

Inace nije nista printalo...

Pa da krenemo....

Definisanje u enum-u
enum jobData {

	jName[ 22 ],
	jSalary,
	bool:jIsIllegal,
	Float:jPos[ 3 ],
	Float:jTakeJobPos[ 3 ],
	jType,
	jUniformSkin_Male,
	jUniformSkin_Female,
	Float:jUniformPos[ 3 ],
	jPickup
};


Onplayerpickupdynamicpickup
public OnPlayerPickUpDynamicPickup( playerid, pickupid ) {

    for( new i = 0; i < MAX_JOBS; i++) {

        if( pickupid == jobsInfos[ i ][ jPickup ] ) {
        
        	print("Proso");
            ChosenJob[ playerid ] = i+1;
            break;
		}
	}


Kreiranje pickupa, ongamemodeint
for( new i = 0; i < MAX_JOBS; i++) { 

        if( jobsInfos[ i ][ jTakeJobPos ][ 0 ] != 0 ) {

			if( jobsInfos[ i ][ jIsIllegal ] ) {
			
			    jobsInfos[ i ][ jPickup ] = CreateDynamicPickup( 1254, 1, jobsInfos[ i ][ jTakeJobPos ][ 0 ], jobsInfos[ i ][  jTakeJobPos ][ 1 ], jobsInfos[ i ][ jTakeJobPos ][ 2 ], -1, -1 );
			}
			else {

	            jobsInfos[ i ][ jPickup ] = CreateDynamicPickup( 1210, 1, jobsInfos[ i ][ jTakeJobPos ][ 0 ], jobsInfos[ i ][  jTakeJobPos ][ 1 ], jobsInfos[ i ][ jTakeJobPos ][ 2 ], -1, -1 );
			}

			format( string_1, sizeof( string_1 ), ""col_white"[ "col_zenolo"%s "col_white"]\n"col_zenolo"Ugovor: "col_white"3 sata.\n"col_zenolo"Zarad: "col_white"Ovisno o radu.\n"col_zenolo"Zaposljavate se komandom "col_white"/takejob.", stringtoUpperCase( jobsInfos[ i ][ jName ] ) );

	        CreateDynamic3DTextLabel( string_1, 0x008080FF, jobsInfos[ i ][ jTakeJobPos ][ 0 ], jobsInfos[ i ][  jTakeJobPos ][ 1 ], jobsInfos[ i ][ jTakeJobPos ][ 2 ], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1 );
		}

        if( !jobsInfos[ i ][ jIsIllegal ] && jobsInfos[ i ][ jUniformPos ][ 0 ] != 0 )
        	Create3DandP(""col_white"Da uzmete/ostavite uniformu kucajte\n"col_zenolo"[ /uniforma ]",  jobsInfos[ i ][ jUniformPos ][ 0 ], jobsInfos[ i ][  jUniformPos ][ 1 ], jobsInfos[ i ][ jUniformPos ][ 2 ], -1, -1, 1275, 2.0 );
	}


I to je to :)

Daj jobData gdje povlačiš sve to iz enuma

Nista, jobdata pozivam samo ovde

new jobsInfos[ MAX_JOBS ][ jobData ] = {

	{"Prevoznik_Novca", 12000, false, {1503.1981, -1028.9382, 23.8033}, {-2507.9578,-417.0648, 1516.4678}, POSAO_BANKAR, 71, 69, { -2513.7263,-404.0481, 1516.4678 } },
	{"Detektiv", 0, false, {1529.3776, -1678.1588, 13.3828}, {1573.8701, -1663.7325, 928.4659}, POSAO_DETEKTIV, 0, 0, { 0.0, 0.0, 0.0 } },
	{"Prevoznik_Sljunka", 9300, false, {625.6708, 848.8824, -42.9609}, {637.5289, 830.7923, -42.9609}, POSAO_DSLJUNKA, 206, 69, { 638.7338, 851.9080, -42.9609 } },
	{"Advokat", 0, false, {1489.8491, -1734.1410, 13.3828}, {418.7571, 1361.9248, 1089.1360}, POSAO_ADVOKAT, 0, 0, { 0.0, 0.0, 0.0 } },
	{"Komunalac", 0, false, {2453.1184, -2090.8301, 13.5469}, {2511.0684, -2118.9014, 14.9121}, POSAO_KOMUNALAC, 16, 69, { 2510.8708, -2112.6892, 14.9090 } },
	{"Prevoznik_Zlata", 10500, false, {1671.2886, -1311.9501, 14.2578}, {1673.7625, -1329.6482, 17.4536}, POSAO_ZLATAR, 71, 69, { 1670.6115, -1330.0754, 17.4557 } },
	{"Pizza_Dostavljac", 0, false, {2092.3064, -1804.2070, 13.5485}, {372.6920, -118.9938, 1001.4922}, POSAO_PIZZA, 0, 0, { 0.0, 0.0, 0.0 } },
	{"Pilot", 5400, false, {1898.9110, -2319.1619, 13.1186}, {1892.8370, -2328.5259, 13.5469}, POSAO_PILOT, 61, 69, { 1892.5968, -2244.0378, 13.5469 } },
	{"Farmer", 0, false, {-371.7446, -1399.2400, 23.1469}, {-385.4589, -1448.7721, 26.2042}, POSAO_FARMER, 61, 69, { -380.3992, -1441.7153, 26.1977 } },
	{"Bus_vozac", 6150, false, {931.4767,-1329.9135, 13.2790}, {995.5768,-1353.4496, 13.8630}, POSAO_BUSVOZAC, 61, 69, { 995.6821,-1369.1847, 13.8630 } },
	{"Rudar", 5400, false, {593.1714, 857.1762, -43.4550}, {590.3492, 875.4081, -42.496}, POSAO_RUDAR, 260, 69, { 964.3640, 392.4265, -33.1746 } },
	{"Prevoznik_Drveca", 9120, false, {-540.2400, -90.1570, 63.1231}, {-538.2335, -78.1697, 62.8672}, POSAO_DDRVECA, 206, 69, { -533.0389, -65.1353, 62.9868 } },
	{"Telohranitelj", 0, false, {2222.8613, -1726.4668, 13.3948}, {769.6843, -0.4294, 1000.7252}, POSAO_TELOHRANITELJ, 0, 0, { 0.0, 0.0, 0.0 } },
	{"Prevoznik_Auto-otpada", 6000, false, {2222.0991,-1979.7240, 13.5469}, {2200.4712,-1971.7024, 13.7841}, POSAO_AUDID, 261, 69, { 2201.3044,-1968.8051, 13.7841 } },
    {"Kosac_Trave", 0, false, {1944.3579, -1187.1322, 20.5566}, {1962.9138, -1191.2517, 19.3624}, POSAO_KOSAC, 202, 69, { 1959.0886,-1187.2491, 19.3656 } },
	{"Prevoznik_Goriva", 15000, false, {896.7631, -1221.9664, 17.9895}, {919.4670,-1252.3589, 16.2109}, POSAO_PGORIVA, 206, 69, { 919.4526,-1266.0228, 15.1719 } },
	{"Svercer_Materijala", 0, true, {-569.8940,-495.0005, 25.5234}, {-571.8231,-506.4536, 25.52340}, POSAO_SVERCERMATSA, 0, 0, { 0.0, 0.0, 0.0 } },
	{"Svercer_Droge", 0, true, {1933.6625, 176.7552, 36.9913}, {1925.5266, 170.0446, 37.2813}, POSAO_SVERCERDROGE, 0, 0, { 0.0, 0.0, 0.0 } },
	{"Diler_Oruzja", 0, true, {-569.8940,-495.0005, 25.5234}, {-553.3052,-506.4525, 25.5234}, POSAO_DILERORUZJA, 0, 0, { 0.0, 0.0, 0.0 } },
	{"Walmart_Delivery", 8100, false, {911.8455,-1709.3738, 13.1159}, {937.8998,-1718.4352, 13.5804}, POSAO_WALMDOST, 22, 69, { 937.9153,-1720.7484, 13.5804 } },
	{"Putar", 7500, false, {1116.18225, -1216.31323, 17.89620}, {1082.66406, -1226.60144, 15.83030}, POSAO_PUTAR, 260, 69, { 1083.30261, -1241.16064, 15.83320 } },
	{"Astronaut", 8000, false, {1674.5577, 718.4377, 10.8134}, {1674.5558, 716.4930, 10.8134}, POSAO_ASTRONAUT, 70, 69, { 1674.5576, 714.9489, 10.8134 } },
	{"Gradjevinar", 10000, false, {2084.18701, -2056.67236, 13.56610}, {2087.90234, -2064.05103, 13.56610}, POSAO_GRADJEVINAR, 206, 69, { 2084.00439, -2063.93262, 13.56610 } }
};

Aj otvori novu temu nmg ja da citam ovo :D