Check my code Please! -
Cold Assassin - 01.02.2009
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
Re: Check my code Please! -
yom - 01.02.2009
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.
Re: Check my code Please! -
Cold Assassin - 01.02.2009
thanks
Re: Check my code Please! -
Cold Assassin - 01.02.2009
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
Re: Check my code Please! -
yom - 01.02.2009
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
Re: Check my code Please! -
Cold Assassin - 01.02.2009
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!
Re: Check my code Please! -
NinjaChicken - 10.08.2012
hmmm give me 5minutes and il look into it for you,
Re: Check my code Please! -
[MM]RoXoR[FS] - 10.08.2012
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]);