GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Street le 01 Janvier 2010, 09:30:20
-
Bonjour a tous Bonne anné :D :birthday
Voila mon probléme je veux faire un SetPlayerWorldBounds Pour chaque team diferente
Alor voila se que j'aipublic OnPlayerSpawn(playerid)
{
PlayerPlaySound(playerid, 1063, -2109.7576, 184.2288, 35.1502);
if(GetPlayerTeam(playerid) == gTeam[playerid]) SetPlayerWorldBounds (playerid, 2959.5601,88.7688,601.0941,-2875.1091);
//===========stunter=========================
if(GetPlayerTeam(playerid) == Stunt[playerid]) SetPlayerWorldBounds (playerid, 79.7688,2976.1382,3091.0461,-3012.3828);
return 1;
} mais sa ne marche pas il n'y a pas
de limitation de teritoir que je spawn avec une team ou lotre c pareille
Merci de meclaircir et maidé :) Amicalement :) Street :dling :cheers
-
Le code en lui même a l'air correct c'est certainement un probleme de position verifie qu'elle sont correct et dans le bon ordre (http://wiki.sa-mp.com/wiki/SetPlayerWorldBounds (http://wiki.sa-mp.com/wiki/SetPlayerWorldBounds))
-
(playerid,Float:x_max,Float:x_min,Float:y_max,Float:y_min)
tu ne suis pas l'exemple ci dessus
-
re, j'ai regler le probléme mais je narive pas a aplique le SetPlayerWorldBounds A la team que je veu
Pouver vous maider svp? Merci
Double post
UP :D
-
re, j'ai regler le probléme mais je narive pas a aplique le SetPlayerWorldBounds A la team que je veu
Pouver vous maider svp? Merci
Double post
UP :D
sa ne sert a rien de "Uper" un sujet en moin de 24h :)
-
Surtout que les 3/4 du temps, le topic reste en première page pendant 1 mois étant donner que la cadence de post n'est pas très haute ...
-
Ok merci apar sa vous pouver maider ou pas?
-
Surtout que les 3/4 du temps, le topic reste en première page pendant 1 mois étant donner que la cadence de post n'est pas très haute ...
Hum bof une semainne oui mais pas un mois :P
[/HS]
Bah je en voit pas pourquoi tu arrive pas a l'apliquer a la team que tu veut
-
Je pence que c paske gTeam et Stunt son des variable :/
-
fait nous voir surtout comment tu déclare tes variable et les modifie ;)
++
-
Tout d'abord, il faudrait être sur que la fonction GetPlayerTeam renvoie une valeur correcte et que tes variables gTeam et Stunt sont renseignées correctement.
Le plus simple c'est de les tracer dans le log du serveur (server_log.txt) avec un printf :
public OnPlayerSpawn(playerid)
{
PlayerPlaySound(playerid, 1063, -2109.7576, 184.2288, 35.1502);
printf (" -> GetplayerTeam=%d, gTeam=%d, Stunt=%d", GetPlayerTeam(playerid), gTeam[playerid], Stunt[playerid]);
if(GetPlayerTeam(playerid) == gTeam[playerid]) SetPlayerWorldBounds (playerid, 2959.5601,88.7688,601.0941,-2875.1091);
//===========stunter=========================
if(GetPlayerTeam(playerid) == Stunt[playerid]) SetPlayerWorldBounds (playerid, 2976.1382,79.7688,3091.0461,-3012.3828);
return 1;
}NB : J'ai inversé 79.7688 et 2976.1382 dans le deuxième SetPlayerWorldBounds car ils n'étaient pas dans le bon ordre (max, min)
Regarde ensuite dans le log du serveur pour vérifier que les valeurs sont cohérentes.
Si elles ne le sont pas, il faudra aller voir dans la fonction GetPlayerTeam ou à l'endroit où tu fixes la valeur de gTeam ou Stunt.
Si elles le sont, alors il y a un problème avec les SetPlayerWorldBounds.
++
Syg
-
Merci le soucis c'es que gTeam et Stunt son des variable de team il y a 5 team dans stunt et 11 dans gTeam Je ne c'es pas commen proceder pouver vous me donner des solution?
-
Je sais pas comment ta fait pour faire t'est team mais j'trouve sa zarbi de maniere generale pour faire des team on si prend ainsi:
en haut du script:
#define TEAM1 1 // TEAM 1
#define TEAM2 2 // TEAM 2
...//t'est autre team
new gTeam[MAX_PLAYERS];
// pour placer un joueur dans une team:
SetPlayerTeam(playerid,TEAM1); // on place le joueur dans la team 1
gTeam[playerid] = TEAM1; // on stock la team du joueur
//ensuite ton OnPlayerSpawn sa donnerai un truc comme sa:
public OnPlayerSpawn(playerid)
{
switch(gTeam[playerid])
{
case TEAM1://si le joueur est dans la team 1
{
//ton code pour la team 1
}
case TEAM2://si le joueur est dans la team 2
{
//ton code de la team 2
}
......//la meme chose pour t'est autre team
}
return 1;
}
-
Encore une fois,montre nous comment tu definie tes variable ;)
-
Je sais pas comment ta fait pour faire t'est team mais j'trouve sa zarbi de maniere generale pour faire des team on si prend ainsi:
en haut du script:
#define TEAM1 1 // TEAM 1
#define TEAM2 2 // TEAM 2
...//t'est autre team
new gTeam[MAX_PLAYERS];
// pour placer un joueur dans une team:
SetPlayerTeam(playerid,TEAM1); // on place le joueur dans la team 1
gTeam[playerid] = TEAM1; // on stock la team du joueur
//ensuite ton OnPlayerSpawn sa donnerai un truc comme sa:
public OnPlayerSpawn(playerid)
{
switch(gTeam[playerid])
{
case TEAM1://si le joueur est dans la team 1
{
//ton code pour la team 1
}
case TEAM2://si le joueur est dans la team 2
{
//ton code de la team 2
}
......//la meme chose pour t'est autre team
}
return 1;
}
C'es comme sa que j'ai fait .... javai juste recreé un gTeam En stunt pour lotre team mais jai trouver une solution c'es de faire sa
donc merci c'es resolu :D
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerInterior(playerid, 0);
SetPlayerPos(playerid, -1964.7122, 114.5735, 27.6875);
SetPlayerFacingAngle(playerid, 3.4386);
SetPlayerCameraPos(playerid, -1965.0101, 120.5098, 27.6875);
SetPlayerCameraLookAt(playerid, -1964.7122, 114.5735, 27.6875);
PlayerPlaySound(playerid, 1062, 2348.4797, 2455.0639, 14.9742);
ApplyAnimation(playerid, "DANCING", "DNCE_M_B", 4.0, 1, 0, 0, 0, -1);
PlayerPlaySound(playerid, 1062, -2109.7576, 184.2288, 35.1502);
SetPlayerWorldBounds (playerid, 2959.5601,88.7688,601.0941,-2875.1091);