AddPlayerClass - switchting random! -
Twisted_Insane - 23.03.2012
Hi everybody! I've got a question:
How can I switch the random spawn-positions from each team? I've got the "AddPlayerClass"-es, but now I don't know, how to set a player's position for each spawn randomly...Of course only for each team. What shall I show you?
Re: AddPlayerClass - switchting random! -
Twisted_Insane - 23.03.2012
Lol, thank you for this little guide! But what should I do now with aaaaaallll of these "AddPlayerClasses"? I've got about 40 under "OnGameModeInit"...
Re: AddPlayerClass - switchting random! -
Unte99 - 23.03.2012
Take the coordinates from AddPlayerClasses and add them to the array, like in the "Declaring The Data" part.
These are the coordinates:
pawn Код:
{213.55, 347.37, 37.58},
{458.63, 348.58, 57.38},
{753.39, 375.73, 83.75},
{753.58, 375.38, 38.38}
EDIT:
Let's say you have this AddPlayerClass part:
pawn Код:
AddPlayerClass(7, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
So you have to copy the x, y and z coordinates. That would be x=1958.3783, y=1343.1572 and z=15.3746.
Now to add them to the array:
pawn Код:
{1958.3783, 1343.1572, 15.3746},
Understand it ?
Re: AddPlayerClass - switchting random! -
Twisted_Insane - 23.03.2012
It's scripted with "OnPlayerRequestClass"! Different teams a player can choose, one admin-class included! So one more question: If I'll take out the co-ordinates, what about the weapons and the skin-ID into the "AddPlayerClasses"?
Re: AddPlayerClass - switchting random! -
Twisted_Insane - 23.03.2012
My spawnpoints are like this:
pawn Код:
1974.4895,-1157.0608,20.9505,95.6222
They're for 4 co-ords, not for 3....Shall I change the 3 in the array to 4?
Re: AddPlayerClass - switchting random! -
antonio112 - 23.03.2012
The forth coordinate is actually the angle. You don't really need that one, so you can leave only the other 3 (X, Y and Z).
Re: AddPlayerClass - switchting random! -
Twisted_Insane - 23.03.2012
Ermm, failed, lol:
Код:
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(316) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(316) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(316) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(316) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(317) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(317) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(317) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(317) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(318) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(318) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(318) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(318) : warning 213: tag mismatch
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(321) : error 001: expected token: "}", but found "{"
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(329) : error 055: start of function body without function header
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(335) : error 055: start of function body without function header
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(342) : error 055: start of function body without function header
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(354) : error 055: start of function body without function header
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(2106) : warning 202: number of arguments does not match definition
D:\Program Files\GTA San Andreas\SAMP_Server\gamemodes\deathmatch.pwn(2106) : error 032: array index out of bounds (variable "aTeamSpawnData")
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
6 Errors.
Here's the code, probably I've done something wrong...
pawn Код:
#define MAX_TEAMS 6
#define MAX_SPAWN_POSITIONS 9
new aTeamSpawnData[MAX_TEAMS][MAX_SPAWN_POSITIONS][4] =
{
{
{1974.4895,-1157.0608,20.9505,95.6222}, //error
{1976.7120,-1183.5504,26.0188,98.0542}, //error
{2092.0271,-1166.3419,26.5859,89.4869} //error
}
{ //error
{2516.3430,-1674.3085,13.9348,81.6422},
{2495.4890,-1688.2717,13.7022,5.9233},
{2451.6484,-1642.4531,13.7357,182.6713},
{2413.7170,-1647.2096,14.0119,174.8622},
{2408.6982,-1674.0126,13.6037,356.5973}
}
{ //error
{2579.8118,-1033.3663,69.5799,181.62759},
{2547.4160,-1032.1406,72.7143,176.0107},
{2576.4817,-1071.2097,69.8322,62.3656}
}
{ //error
{1674.8583,-2121.5229,13.9369,300.8057},
{1695.9087,-2124.7395,13.8101,4.7263},
{1711.3071,-2102.7495,13.8033,192.7047},
{1762.8004,-2102.5989,13.8570,181.4246}
}
{ //error
{1543.4990,-1630.5468,13.3828,353.8011},
{1579.8405,-1634.1257,13.5624,1.1036},
{1506.0997,-1624.6141,16.5902,263.1253},
{1486.5725,-1768.1907,18.7958,359.6797},
{1472.0604,-1768.4747,18.7958,2.8131},
{1544.4415,-1679.3961,13.5584,98.7968},
{1545.3390,-1671.9905,13.5602,86.8900},
{1552.2197,-1681.1012,14.4420,83.4668},
{1551.9014,-1669.9812,14.4420,81.2735}
}
{ //error
{1121.1489,-1490.4775,22.7690,269.6610},
{1223.3407,-1499.0483,10.0469,2.2804},
{1280.4026,-1472.7299,10.0469,171.7327},
{1128.8010,-1494.2787,22.7690,177.5648},
{1126.4438,-1385.4064,13.7292,175.0332}
}
}
pawn Код:
public OnPlayerSpawn(playerid)
{
new
iRandSpawn = random(MAX_SPAWN_POSITIONS),
iPlayerTeam = gTeam[playerid];
SetPlayerPos(playerid, aTeamSpawnData[iPlayerTeam][iRandSpawn][0], aTeamSpawnData[iPlayerTeam][iRandSpawn][1], aTeamSpawnData[iPlayerTeam][iRandSpawn][2], aTeamSpawnData[iPlayerTeam][iRandSpawn][3], aTeamSpawnData[iPlayerTeam][iRandSpawn][4], aTeamSpawnData[iPlayerTeam][iRandSpawn][5]); //error
Also, how to make that hilarious array-line shorter?
Re: AddPlayerClass - switchting random! -
antonio112 - 23.03.2012
Even though the array length is 4 ([4]), the count starts from 0. So it's like:
pawn Код:
aTeamSpawnData[iPlayerTeam][iRandSpawn][0],
aTeamSpawnData[iPlayerTeam][iRandSpawn][1],
aTeamSpawnData[iPlayerTeam][iRandSpawn][2],
aTeamSpawnData[iPlayerTeam][iRandSpawn][3]
That's 4. You can't use [4].
So basically:
pawn Код:
SetPlayerPos(playerid, aTeamSpawnData[iPlayerTeam][iRandSpawn][0], aTeamSpawnData[iPlayerTeam][iRandSpawn][1], aTeamSpawnData[iPlayerTeam][iRandSpawn][2]);
And of course, for the facing angle, use:
pawn Код:
SetPlayerFacingAngle(playerid, aTeamSpawnData[iPlayerTeam][iRandSpawn][3]);
Re: AddPlayerClass - switchting random! -
Aloushi - 24.03.2012
PHP код:
public OnPlayerSpawn(playerid)
{
new playerName[MAX_PLAYER_NAME], RandomSpawn = random(8);
GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
if (RandomSpawn == 0)
{
SetPlayerPos(playerid, 1699.657836, -2398.543945, 13.554687);
SetPlayerFacingAngle(playerid, 207.884277);//lsair
}
if (RandomSpawn == 1)
{
SetPlayerPos(playerid, 486.067260, 2607.686035, 62.243885);
SetPlayerFacingAngle(playerid, 124.997482);//aa
}
if (RandomSpawn == 2)
{
SetPlayerPos(playerid, -2323.567626, -1615.611694, 483.717834);
SetPlayerFacingAngle(playerid, 233.441726);//chill
}
if (RandomSpawn == 3)
{
SetPlayerPos(playerid, -1255.361816, 29.310977, 14.148437);
SetPlayerFacingAngle(playerid, 141.581024);//sfair
}
if (RandomSpawn == 4)
{
SetPlayerPos(playerid, 1699.657836, -2398.543945, 13.554687);
SetPlayerFacingAngle(playerid, 207.884277);//lsair
}
if (RandomSpawn == 5)
{
SetPlayerPos(playerid, 486.067260, 2607.686035, 62.243885);
SetPlayerFacingAngle(playerid, 124.997482);//aa
}
if (RandomSpawn == 6)
{
SetPlayerPos(playerid, -2323.567626, -1615.611694, 483.717834);
SetPlayerFacingAngle(playerid, 233.441726);//chill
}
if (RandomSpawn == 7)
{
SetPlayerPos(playerid, -1255.361816, 29.310977, 14.148437);
SetPlayerFacingAngle(playerid, 141.581024);//sfair
}
return 1;
}
Rep+++
Re: AddPlayerClass - switchting random! -
[ABK]Antonio - 24.03.2012
Quote:
Originally Posted by Aloushi
Rep+++
|
Why would he rep that...
I suppose if you really want to do the 3 dimensional you can do this.
pawn Код:
new Float:TeamSpawns[MAX_TEAMS][MAX_SPAWNS][4] = {
{//Team 1
{x,y,z,angle}, //Spawn 1
{x,y,z,angle}, //Spawn 2
{x,y,z,angle} //Spawn 3
},
{//Team 2
{x,y,z,angle}, //Spawn 1
{x,y,z,angle}, //Spawn 2
{x,y,z,angle} //Spawn 3
},
{//Team 3
{x,y,z,angle}, //Spawn 1
{x,y,z,angle}, //Spawn 2
{x,y,z,angle} //Spawn 3
}
//etc
};
public OnPlayerSpawn(playerid)
{
new Team = gTeam[playerid]; //We create the Team variable just for easier reading
new rand = random(MAX_SPAWNS); //Create our random that will go through max spawns
SetPlayerPos(playerid, TeamSpawns[Team][rand][0],TeamSpawns[Team][rand][1],TeamSpawns[Team][rand][2]); //set their pos depending on the team & the random
SetPlayerFacingAngle(playerid, TeamSpawns[Team][rand][3]); //set their angle to their team random spawn
return 1;
}