SA-MP Forums Archive
Problem with two for loops in a row: the first runs, the second doesn't - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Problem with two for loops in a row: the first runs, the second doesn't (/showthread.php?tid=426568)



Problem with two for loops in a row: the first runs, the second doesn't - WiredGuyX - 29.03.2013

Here I have a piece of code from my GM using YSI.
I tried to allow the player to choose only the skin related to his sex, during class selection.
So I stored all the skin for males in a variable and all the skins for females in another one.

Код:
new MaleSkins[] = {1,2,3,4,5,6,7,8,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,
33,34,35,36,37,38,42,43,44,45,46,47,48,49,50,51,52,57,62,66,67,68,70,71,72,73,78,79,80,
81,82,83,84,86,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,
114,115,116,117,118,119,120,121,122,123,124,125,127,128,132,133,134,135,136,137,142,143,
144,146,147,149,153,154,155,156,158,159,160,161,162,163,164,165,166,167,168,170,171,173,
174,175,176,177,179,180,181,182,183,184,185,186,187,188,189,200,202,203,204,206,208,209,
210,212,213,217,220,221,222,223,227,228,229,230,234,235,236,239,240,241,242,247,248,249,
250,252,253,254,255,258,259,260,261,262,264,265,266,267,268,269,270,271,272,273,274,275,
276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,299};
new FemaleSkins[] = {
9,10,11,12,13,31,39,40,41,53,54,55,56,63,64,65,69,75,76,77,85,87,88,89,90,91,92,93,129,
130,131,138,139,140,141,145,148,150,151,152,157,169,172,178,190,191,192,193,194,195,196,
197,198,199,201,205,207,211,214,215,216,218,219,224,225,226,231,232,233,237,238,243,244,
245,246,251,256,267,263,298};

new Group:gMale;
new Group:gFemale;

public OnGameModeInit()
{
    ...
        for(new i=0; i<=sizeof(MaleSkins); i++)
	{
		printf("%d", Class_AddForGroup(gMale, MaleSkins[i], 418.2262,2537.5698,10.0000,244.1603, WEAPON_MP5, 500, WEAPON_ARMOUR, 50));
		print("male skin added");
	}
	print("AAA");
	for(new j=0; j<=sizeof(FemaleSkins); j++)
	{
		printf("%d", Class_AddForGroup(gFemale, FemaleSkins[j], 418.2262,2537.5698,10.0000,244.1603, WEAPON_MP5, 500, WEAPON_ARMOUR, 50));
		print("Female skin added");
	}
	print("AAA");

	/*	AddPlayerClass(0, 418.100891, 2538.124511, 10.000000,  254.813720, 0, 0, 0, 0, 0, 0);*/
	
    return 1;
}
The point is, that it stops right after the first for loop: infact, it does not print "AAA".
p.s. : is there a simpler way to do this?


Re: Problem with two for loops in a row: the first runs, the second doesn't - Misiur - 29.03.2013

You are crashing your server by accessing element at sizeof(array) - which is nonexistent
in both loops change
pawn Код:
x<=sizeof(Y)
to
pawn Код:
x != sizeof(Y)