GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ShaDowxx™ le 08 Décembre 2010, 15:46:45
-
Bonjour, je voudrais savoir comment on fais un DM ? Avec plusieurs respawn ? S'il vous plaît, vous pouvez me le dire ? ;)
-
C'est un peu vaste comme question :angelnot
C'est à toi de voir comme tu feras ton DM :P
Enfin c'est se que je pense
-
Bah je veut juste savoir comment faire des DM
-
C'est encore vaste la ,
-
Je crois qu'il veut comprendre le fonctionnement. Donc quand il meurt il doit respawn dans le dm quoi!
-
Bon alors :
Je voudrais créer un DM dans l'area 51 et je veut savoir comment configurer les armes et respawn.
J'espère que c'est moin vaste.
-
Un DM ou un TDM déjà si c'est un DM c'est tout simple tu utilise la fonction,
AddPlayerClass(0,-1386.9846,498.4605,21.2500,48.2190,0,0,0,0,0,0); //
et tu le met dans le
public OnGameModeInit()
Pour les Axe X,Y,Z vas dans le Debug de GTA SA:MP (dans ton répertoire GTA SA) et launch debug une fois ouvert tu fait le /v [ID du véhicule] pour te déplacer plus vite et tu vas à l'endroit du ou que tu veux ton mec Spawn sort du véhicule...
Tu te place et tu utilise /save et il a écrit OnFoot Position Saved la tu continue temps que tu veux avec le nombre de Spawn que tu veux sans oublier de te placer ou tu veux qu'il Spawn...
Pour finir tu vas dans t'es dossier "Document de *******" > "GTA SA User file" > "SA:MP" > "savedpositions.txd" tu l'ouvre et la tu a des truc du genre,
AddPlayerClass(0,261.5969,1973.9045,17.6406,95.0389,0,0,0,0,0,0); //
AddPlayerClass(0,264.1166,1999.3748,17.6406,89.1298,0,0,0,0,0,0); //
AddPlayerClass(0,265.8753,2009.3610,17.6406,90.6965,0,0,0,0,0,0); //
AddPlayerClass(0,-1384.4307,493.6801,24.4178,93.1972,0,0,0,0,0,0); //
AddPlayerClass(0,339.5781,2029.4139,22.6406,80.6129,0,0,0,0,0,0); //
AddPlayerClass(0,-1348.0270,491.1057,18.2344,2.0136,0,0,0,0,0,0); //
AddPlayerClass(0,-1386.9846,498.4605,21.2500,48.2190,0,0,0,0,0,0); //
Tu n'a plus qu'a C/C ce qu'il y a dans ton fichier et a changer ID du Skin (regarde plus haut) et les armes...
Tu le met dans le
public OnGameModeInit()
Exemple pour les chiffre entre les virgules...
AddPlayerClass(287,265.8753,2009.3610,17.6406,90.6965,4,0,24,5007,29,5030);287 mon personnage Spawn avec le Skin 287. (Militaire)
265.8753,2009.3610,17.6406,90.6965 Il Spawn a la position 265.8753,2009.3610,17.6406,90.69654 Avec l'arme ID 4 (Couteaux) le 0 c'est a dire pas de munition (Logique c'est un couteau)
24 Avec aussi l'arme ID 24 qui est un Desert Eagle et 5007 munition (5007 car il y a 7 munition dans le chargeur donc cela nous fait 5000-7)
29 Avec aussi l'arme ID 29 qui est un MP5...
Voilà tout est dit pour les TDM il faut demander a une autre personne ou chercher...
-
Bon alors :
Je voudrais créer un DM dans l'area 51 et je veut savoir comment configurer les armes et respawn.
J'espère que c'est moin vaste.
GivePlayerWeapon()
SetPlayerPos()
OnPlayerDeath()
...
-
Vous savez, je veut juste créer des dm pour mon gamemode et faire plusieurs respawn différent je ne vois pas se que le tuto de base viens faire là.
-
Car le
AddPlayerClass(287,265.8753,2009.3610,17.6406,90.6965,4,0,24,5007,29,5030);et nécessaire pour créer un DM...
Et on vas pas te donne le Code tout fait, le but c'est que tu apprenne des choses.
Et tu a juste a rajouter unRandom pour que ce ne sois pas le même Spawn a chaque mort...
-
Euh je ferais quoi du code AddPlayerClass surtout que comme c'est en commande j'ai pas besoins de ça, enfin Random(X,Y,Z) non ? et après GivePlayerWeapon non ?
-
Tu dois utiliser une variable globale avec un tableau :
Genre :
new IsInDM[MAX_PLAYERS];
Dans OnPlayerSpawn tu n'as qu'a faire :
if(IsInDM[playerid] == 1)
{
SetPlayerPos(............); // Position du DM
}
Dans ta commande /dmjoin (je sais pas si c'est ça ^^) n'oublie surtout pas de passer la variable du joueur à 1 :
IsInDM[playerid] = 1;
Et dans /dmq, passe la à 0 :
IsInDM[playerid] = 0;
Regarde le LSDM de Cristab pour les spawns aléatoires, il y a un très bel exemple dedans ;)
++
-
A faire une commande pour DM !
J'avais pas comprit ta question donc à la base...
-
J'ai pris le DM de cristab, je n'ai rien à dire c'est génial !
-
C'est stupide de prendre le code d'un autre avant même de comprendre le fonctionnement.
Je sais déjà se que certains vont me répondre mais c'est pour lui.
Toute personne comprendra mieux si elle commence à chercher réellement son problème.
Si tu aurait un minimum réfléchie (sans même aller sur internet), tu aurait trouver la solution à ta deuxième question.
Création d'un tableau contenant toutes les positons pour le DM.
new Float:Spawn[5][4] =
{
{0000.0000, 0000.0000, 0000.0000, 0000.0000},
{1111.1111, 1111.1111, 1111.1111, 1111.1111},
{2222.2222, 2222.2222, 2222.2222, 2222.2222},
{3333.3333, 3333.3333, 3333.3333, 3333.3333},
{4444.4444, 4444.4444, 4444.4444, 4444.4444}
};
Un simple random suffit pour choisir une position (au hasard).
new Position = random(sizeof(Spawn));
SetPlayerPos(playerid, Spawn[position][0], Spawn[position][1], Spawn[position][2]);
SetPlayerFacingAngle(playerid, Spawn[position][3]);
SetCameraBehindPlayer(playerid);
Et voilà, ton code pour avoir plusieurs points de renaissance est prêt.
-
:bangin j'ai pas chercher plus loin que le bout de mon nez :D
Sinon, au niveau du tableau, si j'en rajoute encore un ou cinq, sa n'aura aucun effet néfaste ?
-
Il faudra donc augmenter la taille du tableau !
-
Merci, l'idée du tableau va mettre utile pour mon prochain GM :)