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

Titre: [Resolu]Un SetPlayerWorldBounds
Posté 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'ai
Code: (pawn) [Sélectionner]
public 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
Titre: Re : Un SetPlayerWorldBounds
Posté par: MrFredo le 01 Janvier 2010, 10:35:20
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))
Titre: Re : Un SetPlayerWorldBounds
Posté par: cristab le 01 Janvier 2010, 10:58:28
(playerid,Float:x_max,Float:x_min,Float:y_max,Float:y_min)


tu ne suis pas l'exemple ci dessus


Titre: Re : Un SetPlayerWorldBounds
Posté par: Street le 01 Janvier 2010, 23:45:50
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
Titre: Re : Re : Un SetPlayerWorldBounds
Posté par: BuBuNo le 02 Janvier 2010, 14:16:06
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 :)
Titre: Re : Un SetPlayerWorldBounds
Posté par: » Lukubi™ le 02 Janvier 2010, 14:18:04
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 ...
Titre: Re : Un SetPlayerWorldBounds
Posté par: Street le 03 Janvier 2010, 03:43:04
Ok merci apar sa vous pouver maider ou pas?
Titre: Re : Re : Un SetPlayerWorldBounds
Posté par: BuBuNo le 03 Janvier 2010, 16:13:28
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
Titre: Re : Un SetPlayerWorldBounds
Posté par: Street le 04 Janvier 2010, 09:07:34
Je pence que c paske gTeam et Stunt son des variable :/

Titre: Re : Un SetPlayerWorldBounds
Posté par: Mr_C30 le 05 Janvier 2010, 00:37:07
fait nous voir surtout comment tu déclare tes variable et les modifie ;)

++
Titre: Re : Un SetPlayerWorldBounds
Posté par: Syg le 05 Janvier 2010, 00:42:26
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
Titre: Re : Un SetPlayerWorldBounds
Posté par: Street le 05 Janvier 2010, 01:47:11
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?
Titre: Re : Un SetPlayerWorldBounds
Posté par: MrFredo le 05 Janvier 2010, 06:46:16
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;
}

Titre: Re : Un SetPlayerWorldBounds
Posté par: Mr_C30 le 05 Janvier 2010, 06:50:06
Encore une fois,montre nous comment tu definie tes variable ;)
Titre: Re : Re : Un SetPlayerWorldBounds
Posté par: Street le 07 Janvier 2010, 05:58:11
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
Code: (pawn) [Sélectionner]

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);