GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Damien_Lohier le 21 Décembre 2010, 10:46:20

Titre: Je ne vois pas mon perso
Posté par: Damien_Lohier le 21 Décembre 2010, 10:46:20
Salut!

J'ai un problème: au moment de choisir mon personnage au démarrage du jeu, je ne vois pas mon personnage....
Voici un bout de script:
Citer
   
public OnGameModeInit()
{

        // Spawnpoints
   AddPlayerClass(23,404.7494,2476.7190,16.4922,354.6768,0,0,0,0,0,0); // Aéroport abondonné
   AddPlayerClass(293,404.7494,2476.7190,16.4922,354.6768,0,0,0,0,0,0);
   AddPlayerClass(19,404.7494,2476.7190,16.4922,354.6768,0,0,0,0,0,0);
   AddPlayerClass(28,404.7494,2476.7190,16.4922,354.6768,0,0,0,0,0,0);
   AddPlayerClass(29,404.7494,2476.7190,16.4922,354.6768,0,0,0,0,0,0);

   return 1;
}

public OnGameModeExit()
{
   return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
   SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
   SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
   SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
   return 1;
}
Titre: Re : Je ne vois pas mon perso
Posté par: ShaDowxx™ le 21 Décembre 2010, 11:05:47
Il y a un sujet, Double Question ou les membres explique comment faire les caméras sinon tu dois utilisé :

SetPlayerCameraPos(playerid,les 3 première coordonées ici);
SetPlayerCameraLookAt(playerid,les 3 première coordonées ici);

Si tu ne comprends pas, prends les premiers code et go le wiki  :P
Titre: Re : Je ne vois pas mon perso
Posté par: Damien_Lohier le 21 Décembre 2010, 11:58:05
Je sais pour le sujet, mais c'est que je ne sais même pas où est situé mon perso xDD
Titre: Re : Je ne vois pas mon perso
Posté par: Jcvag44800 le 21 Décembre 2010, 11:58:58
Quand tu arrives sur le serveur et au moment ou tu ne vois pas ton personnage, fait /save et regarde ou est le personnage
Titre: Re : Je ne vois pas mon perso
Posté par: Xartrick le 21 Décembre 2010, 15:01:23
Tes trois fonctions (SetPlayerPos, SetPlayerCameraPos, SetPlayerCameraLookAt) pointe sur la même position, c'est normal que tu ne vois pas ton personnage.
Ton personnage, ta caméra et où la caméra regarde sont sur le même point.
Titre: Re : Je ne vois pas mon perso
Posté par: Damien_Lohier le 21 Décembre 2010, 15:18:16
Si j'ai bien compris (peut être pas le cas), il faut qu'ils fixent tout les trois le même endroit?
Titre: Re : Je ne vois pas mon perso
Posté par: Xartrick le 21 Décembre 2010, 15:19:37
Relis bien mon message, c'est le contraire.
Titre: Re : Je ne vois pas mon perso
Posté par: ShaDowxx™ le 21 Décembre 2010, 16:04:42
En gros (preuve que j'ai compris) :

Une position pour la caméra
Puis viens une autre position, juste devant par exemple et tu la met sur les deux codes suivant : SetPlayerCameraLookAt et SetPlayerPos après normalement tu devrais voir ton skin mais il faut retenir un truc si il n'est en position contre la caméra il faut rajouté se code là : SetPlayerFacingAngle mais il y a quatre point repaire :

Nord : 0
Est : 270
Sud : 180
Ouest : 90

Biensûr, si tu veut tu n'est pas obligé de suivre c'est code là, tu peut faire 91.124 mais c'est pour ceux qu'il veulent être très très précis :P.

J'espère que maintenant t'a compris.
Titre: Re : Je ne vois pas mon perso
Posté par: Damien_Lohier le 21 Décembre 2010, 17:05:44
Euh... Non  :blink

Vous pouvez me faire un exemple avec le personnage et la caméra fixé sur la porte du garage de l'aéroport abandonné svp?
Titre: Re : Je ne vois pas mon perso
Posté par: ShaDowxx™ le 21 Décembre 2010, 17:41:17
C'est hyper simple maintenant ^^

Code: (pawn) [Sélectionner]
// CSL (Caméra Skin Localisation) by ~Julien~

if(classid == 0) // Code qui permet de définir la caméra que l'on va créer au premier skin
{
SetPlayerCameraPos(playerid,404.7822,2462.8738,29.6450); // Ici c'est le lieu de la caméra
SetPlayerCameraLookAt(playerid,404.8136,2454.6189,29.6449); // Ici on dit a la caméra de regarder a cette position
SetPlayerPos(playerid,404.8136,2454.6189,29.6449); // Ici le skin sera mis au lieu ou que la caméra regarde (un peu de logique)
}


Voilà tu as ta caméra mais sa marcheras que au premier skin voici un autre code qui permet de mettre cette caméra au premier skin

Code: (pawn) [Sélectionner]
public OnPlayerRequestClass(playerid, classid)
{
if(classid == 0)
{
GameTextForPlayer(playerid,"~r~Ton Texte",2000,3);
Team[playerid] = 1;
SetPlayerColor(playerid,0x000000FF);
  }// en dessous met la caméra

Mais si tu veut pas faire de classe alors tu fais comme ceci :

Code: (pawn) [Sélectionner]
{
SetPlayerCameraPos(playerid,404.7822,2462.8738,29.6450); // Ici c'est le lieu de la caméra
SetPlayerCameraLookAt(playerid,404.8136,2454.6189,29.6449); // Ici on dit a la caméra de regarder a cette position
SetPlayerPos(playerid,404.8136,2454.6189,29.6449); // Ici le skin sera mis au lieu ou que la caméra regarde (un peu de logique)
}

Voilà mais un conseil si tu fais un serveur autre que le kill alors prends la solution simple. C'est-a-dire la dernière
J'espère que tu as compris ^^
Titre: Re : Je ne vois pas mon perso
Posté par: Xartrick le 21 Décembre 2010, 17:57:02
Ou autre part ?
Titre: Re : Je ne vois pas mon perso
Posté par: ShaDowxx™ le 21 Décembre 2010, 18:23:02
Il est sur le toit du hangar
Titre: Re : Je ne vois pas mon perso
Posté par: Xartrick le 21 Décembre 2010, 19:23:45
Si tu n'avais pas compris, c'est sarcastique.
Il te demande de lui faire, pas de comprendre ce qu'il fait !
Titre: Re : Je ne vois pas mon perso
Posté par: Damien_Lohier le 21 Décembre 2010, 20:08:54
Moué, ça va je commence à comprendre, mais ya un truck qui me chagrine...
Comment on défini où la caméra regard? :blink
Titre: Re : Je ne vois pas mon perso
Posté par: Xartrick le 22 Décembre 2010, 01:13:19
La fonction SetPlayerCameraLookAt est là pour ça.
Titre: Re : Je ne vois pas mon perso
Posté par: Damien_Lohier le 22 Décembre 2010, 02:59:03
Non mais ce que je demande c'est comment trouvé x, y et z...
Titre: Re : Je ne vois pas mon perso
Posté par: Xartrick le 22 Décembre 2010, 02:59:52
http://wiki.sa-mp.com/wiki/Debug_Guide
Titre: Re : Je ne vois pas mon perso
Posté par: mjlayak le 22 Décembre 2010, 12:07:54
if(strcmp(cmdtext, "/coord", true) == 0)
{
    new tmp[128]; // On crée la variable du texte
    new Float:x, Float:y, Float:z; // on crée les variables des coordonnes
    GetPlayerPos(playerid, x, y, z); // On prend les coordones du joueur
    format(tmp, sizeof(tmp),"Tu est a X= %f  Y= %f  Z= %f ", x, y, z); // On prepare le texte
    SendClientMessage(playerid,0xff0000ff, tmp); // on affiche le texte au joueur

    
return 1;

}

Sa permet de prendre les coordonnes d'ou tu te trouves . X Y Z
Titre: Re : Je ne vois pas mon perso
Posté par: Damien_Lohier le 22 Décembre 2010, 12:11:33
Merci Xartrick mais mjlayak si tu m'explique pas ça sert à rien  :...