Gzsume
« J'apprends donc je suis »
Hors ligne
Team NSG
GTAOnline Fan Boy

Messages: 2115
|
 |
« le: 26 Juillet 2009 à 16:07:40 » |
|
Bonjour. Je code actuellement un petit Gamemode sympathique, mais je rencontre un petit problème. Je souhaiterais avoir 10 points de Spawn possibles, et que lorsqu'un joueur spawn, cet endroit soit en quelque sorte tiré au sort. Voici comment je procède. En haut de mon script, j'ai créé ceci : new Float:gRandomPlayerSpawns[10][3] = { {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, }; J'ai mis ça avant le main(); de mon Gamemode. Ensuite j'utilise la callback OnPlayerSpawn pour faire ceci : SetPlayerRandomSpawn(playerid); Malheureusement, à la compilation, j'ai ces erreurs : C:\Users\User\Desktop\Projet Serveur\gamemodes\gzboum.pwn(101) : error 017: undefined symbol "SetPlayerRandomSpawn" C:\Users\User\Desktop\Projet Serveur\gamemodes\gzboum.pwn(229) : warning 203: symbol is never used: "gRandomPlayerSpawns" Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Est-ce que quelqu'un sait d'où peuvent venir ces erreurs ? Merci d'avance, Gzsume. 
|
|
|
|
|
Journalisée
|
« Dans la vie, il faut savoir transformer les citrons en limonade. »
|
|
|
°D@vid°
Hors ligne
Criminel entrainé

Messages: 54
|
 |
« Répondre #1 le: 26 Juillet 2009 à 16:18:28 » |
|
Salut moi pour mes dm j'utilise sa: en haut du gm:
new Float:DM6[7][5] = { {2632.1482,2828.6726,122.9219}, {2724.8901,2684.9878,59.0234}, {2669.2820,2633.3252,10.8203}, {2693.7012,2784.1489,59.0234}, {2575.0430,2843.7878,19.9922}, {2549.9006,2834.5996,10.8203}, {2593.8225,2639.1589,114.0313} };
Dans la commande:
new rand = random(sizeof(DM6)); SetPlayerPos(playerid, DM6[rand][0],DM6[rand][1],DM6[rand][2]);
maintenant essaye de place t'est possition et intercalés le SetPlayerPos dans Onplayerspawn tous simplement  ++
|
|
|
|
|
Journalisée
|
|
|
|
cristab
Hors ligne
Admin V.I.P
GTAOnline Legend

Messages: 7333
|
 |
« Répondre #2 le: 26 Juillet 2009 à 16:23:15 » |
|
tente de cette façon new Float:gRandomPlayerSpawns[10][3] = { {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, }; forward SetPlayerSpawn(playerid); public SetPlayerSpawn(playerid) { new rand = random(sizeof(gRandomPlayerSpawns)); SetPlayerPos(playerid,gRandomPlayerSpawns[rand][0],gRandomPlayerSpawns[rand][1],gRandomPlayerSpawns[rand][2]); return 1; } et pour finir dans ta callback onplayerspawn SetPlayerSpawn(playerid); j'espere avoir etait assez precis
|
|
|
|
|
Journalisée
|
|
|
|
°D@vid°
Hors ligne
Criminel entrainé

Messages: 54
|
 |
« Répondre #3 le: 26 Juillet 2009 à 17:07:46 » |
|
C'est se que j'ai montrée 
|
|
|
|
|
Journalisée
|
|
|
|
Ssk
Développeur d'Open SA-MP
Hors ligne
Sous-admin
GTAOnline Legend

Open-SA-MP - Unlimited Experience
Messages: 3731
 
|
 |
« Répondre #4 le: 26 Juillet 2009 à 17:48:49 » |
|
Regarde si la callback que tu as creer est bien appeler ( orthographe , surtout les MAJ )
|
|
|
|
|
Journalisée
|
|
|
|
S!m
Hors ligne
Moderateur
GTAOnline Fan Boy

Messages: 2260
|
 |
« Répondre #5 le: 26 Juillet 2009 à 18:12:37 » |
|
Salut, alors il faut que tu comprenne tes erreurs: C:\Users\User\Desktop\Projet Serveur\gamemodes\gzboum.pwn(101) : error 017: undefined symbol "SetPlayerRandomSpawn" C:\Users\User\Desktop\Projet Serveur\gamemodes\gzboum.pwn(229) : warning 203: symbol is never used: "gRandomPlayerSpawns"
undefined symbol = la fonction ou variables (ou autre..) citée n'a pas été définie, bref tu n'as pas écrit le code qui correspond à ce que FAIT cette fonction (ou la déclaration de la variable (par exemple new variable;) le warning qui suit te dit que ta variable contenant les position au hasard n'est pas utilisé, en comprenant ces deux messages, tu devrais comprendre que ton problème vient de ta fonction SetPlayerRandomSpawn qui n'est pas utilisée... donc à ta place j'aurais tendance a choisir la solution de Cristab puisqu'elle représente moins d'efforts... SetPlayerRandomSpawn (playerid) { new rand = random (sizeof (gRandomPlayerSpawns)); SetPlayerPos (playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); return 1; } bonne chance avec ton random spawn  ++Sim++
|
|
|
|
|
Journalisée
|
|
|
|
Gzsume
« J'apprends donc je suis »
Hors ligne
Team NSG
GTAOnline Fan Boy

Messages: 2115
|
 |
« Répondre #6 le: 26 Juillet 2009 à 20:01:36 » |
|
Salut. Tout d'abord, merci de vos réponses, ça fait plaisir de recevoir de l'aide aussi vite et aussi bien expliqué. J'ai pris le code de Cristab, et il ne me reste qu'une petite erreur. Au niveau de ce code : new Float:gRandomPlayerSpawns[10][3] = { {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, }; J'ai cette erreur : C:\Users\User\Desktop\Projet Serveur\gamemodes\gzboum.pwn(20) : error 018: initialization data exceeds declared size Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
La ligne 20 correspond à l'avant dernière ligne du code que je vous ai donné. Je n'ai jamais utilisé ce genre de variable (ça ressemble un peu aux arrays en php), donc je ne sais pas vraiment ce que cela signifie. Voilà, merci d'avance et bonne soirée à vous, Gzsume. 
|
|
|
|
|
Journalisée
|
« Dans la vie, il faut savoir transformer les citrons en limonade. »
|
|
|
cristab
Hors ligne
Admin V.I.P
GTAOnline Legend

Messages: 7333
|
 |
« Répondre #7 le: 26 Juillet 2009 à 20:20:48 » |
|
tu as une virgule en trop new Float:gRandomPlayerSpawns[10][3] = { {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746}, {1958.3783,1343.1572,15.3746} }; c'est la derniere ligne regarde bien
|
|
|
|
|
Journalisée
|
|
|
|
Gzsume
« J'apprends donc je suis »
Hors ligne
Team NSG
GTAOnline Fan Boy

Messages: 2115
|
 |
« Répondre #8 le: 26 Juillet 2009 à 20:25:33 » |
|
Ça compile, merci. 
|
|
|
|
|
Journalisée
|
« Dans la vie, il faut savoir transformer les citrons en limonade. »
|
|
|
|