Check my code Please!
#1

Hey can some one check my code!
When I spawn I get a message of:
SPAWNED: Playerid:0 SpawnPoint:22 POS_X:0 POS_Y:1 POS_Z:2
Playerid and spawnpoint work fine!
Код:
public SetPlayerRandomSpawn(playerid)
{
	MySQLCheckConnection();
	new sql[64], fields[4][74], row[10];
	new rand;
	format(sql, sizeof(sql), "SELECT COUNT(*) FROM prandomspawn");
	samp_mysql_query(sql);
	samp_mysql_store_result();
	samp_mysql_fetch_row(row);
	rand = random(strval(row));
	samp_mysql_free_result();
	{
		format(sql, sizeof(sql), "SELECT * FROM prandomspawn WHERE id=%d");
		samp_mysql_query(sql);
		samp_mysql_store_result();
		samp_mysql_fetch_row(row);
		split(row, fields, '|');
    samp_mysql_free_result();
		pspawns[rand][posa] = floatstr(fields[1]);
		pspawns[rand][posb] = floatstr(fields[2]);
		pspawns[rand][posc] = floatstr(fields[3]);
		SetPlayerToTeamColor(playerid);
   	    SetPlayerPos(playerid, pspawns[rand][posa], pspawns[rand][posb], pspawns[rand][posc]);
        if (gdebug >=1){printf("DEBUG SPAWNED: Playerid:%d SpawnPoint:%d", playerid, rand);}
		SetPlayerFacingAngle(playerid, 270.0);
		SetPlayerInterior(playerid,0);
		PlayerInfo[playerid][pInt] = 0;
	}
//	format(row, sizeof(row), "PlayerSpawn(): %d spawns", rand);
	printf("SPAWNED: Playerid:%d SpawnPoint:%d POS_X:%d POS_Y:%d POS_Z:%d", playerid, rand, posa, posb, posc);
	return 1;
}
Thanks

PS: There are values in the table for spawn point 22
Reply
#2

In your printf you use posa, posb and posc, they are just indexes of your array pspawns[rand], not the actual value of this index. You have to use pspawns[rand][posa] etc instead, like when you assign a value to it.
Reply
#3

thanks
Reply
#4

ok, Now I get a print f of:
POS_X:0
POS_Y:0
POS_Z:0
Yes there is a value in the rand
Reply
#5

Debug all this part:
pawn Код:
MySQLCheckConnection();
    new sql[64], fields[4][74], row[10];
    new rand;
    format(sql, sizeof(sql), "SELECT COUNT(*) FROM prandomspawn");
    samp_mysql_query(sql);
    samp_mysql_store_result();
    samp_mysql_fetch_row(row);
    rand = random(strval(row));
    samp_mysql_free_result();
    { // <- why this here?
        format(sql, sizeof(sql), "SELECT * FROM prandomspawn WHERE id=%d");
        samp_mysql_query(sql);
        samp_mysql_store_result();
        samp_mysql_fetch_row(row);
        split(row, fields, '|');
        samp_mysql_free_result();
        pspawns[rand][posa] = floatstr(fields[1]);
        pspawns[rand][posb] = floatstr(fields[2]);
        pspawns[rand][posc] = floatstr(fields[3]);
Your problem is somewhere there.

Then, minor problem still in printf, floats are formatted with %f, and to round to 2 decimals for example, use %.2f
Reply
#6

format(sql, sizeof(sql), "SELECT * FROM prandomspawn WHERE id=%d"); <------

Should have been

format(sql, sizeof(sql), "SELECT * FROM prandomspawn");

the only thing is the z variable is coming back as "1.00" not whats in table!

Any Idea?

The default for the table if no variable is 0.000000 so I have no idea where this 1.00 is coming from!
Reply
#7

hmmm give me 5minutes and il look into it for you,
Reply
#8

pawn Код:
printf("SPAWNED: Playerid:%d SpawnPoint:%d POS_X:%d POS_Y:%d POS_Z:%d", playerid, rand, pspawns[rand][posa], pspawns[rand][posb], pspawns[rand][posc]);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)