GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Damaker03 le 07 Octobre 2007, 15:27:03
-
Bonjour,
Ma question est simple,
Comment créer une faction (police,FBI,Yakuza),
J'ai déja essayer mais je n'y arrive pas
Merci d'avance
Cordialement,
Damaker
-
J'ai pas compris ce que tu voulais dire par "faction"
AK NV.
-
Ben des trucs comme Agent du FBI, Policier,Taxi man,
Vous comprenez ?
PS: c'est du mode Godfather que je parle
Merci d'avance
Cordialement,
Damaker
-
Des class de players quoi.....
-
Des metiers ^^
-
Pour créer des factions, des métiers, des teams ou tout autre groupe de joueurs, il suffit de faire comme pour les gangs.
Tu trouveras des dizaines d'exemples un peu partout (et surtout dans les modes de base fournis avec le serveur).
++
Syg
-
SFTDM pour les gangs ;)
-
Super, merci !!
En faite, sa a pas l'air trop dur :)
Merci de votre aide, je vais essayer de faire quelque chose ^^
EDIT:Mais au faite, les metiers j'ai juste a les mettres dans sftdm et c'est bon? ou je dois encore les mettres autre part ?
Bonjour,désoler du double post mais j'ai quelque chose a dire:
Je croyais que c'était simple mais en faite c'est dur,j'ai essayer beaucoup de chose, mais j'ai toujours des erreures...Quelqu'un peu m'aider?
Merci d'avance.
Cordialement,
Damaker
EDIT : Utilise le bouton "Modifier"
-
envoye le code ou le script ;)
-
arf ! pasebin vite avant qu un modo ou admin voye sa !
-
pastebin vite
AK NV.
-
Je croi avoir trouver mais je suis pas sûr ^^ :laugh
regarde dans
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerClass(playerid, classid);
SetupPlayerForClassSelection(playerid);
gPlayerClass[playerid] = classid;
switch (classid) {
case 0:
{
GameTextForPlayer(playerid, "~g~Worker", 500, 3);
et ben essai d'ajouter des choses en dessous de GameTexteForPlayer
comme
SetPlayerColor(playerid,COLOR_VIOLETCLAIR);
gTeam[playerid] = TEAM_ADMIN;
ça donnerais ça
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerClass(playerid, classid);
SetupPlayerForClassSelection(playerid);
gPlayerClass[playerid] = classid;
switch (classid) {
case 0:
{
GameTextForPlayer(playerid, "~g~Worker", 500, 3);
SetPlayerColor(playerid,COLOR_ORANGE);
gTeam[playerid] = TEAM_WORKER;l
a ça devrais marcher ;) bonne chance (mais faut faire l'opération a toutes les class en choisisant une couleur différente de préférence ^^)
++
PS: Il y a un truk que je suis pas sur que ce soit bon dans ton script, c'est les
SetPlayerClass(playerid, classid);
SetupPlayerForClassSelection(playerid);
gPlayerClass[playerid] = classid;
switch (classid) {
Mon script a moi je le commence directement par
public OnPlayerRequestClass(playerid, classid)
{
if(classid == 0)
{
blabla ^^
Essai avec ce que je t'es mis, si sa marche ne change rien ^^ sinon essai mon deuxième conseil ;) ++
-
Merc bcpi staffman,je vais essayer
C'est quoi Pastebin ??
-
http://www.gtaonline.fr/forums/index.php/topic,1098.0.html
-
Merci a vous,
Je tiens a m'escuser pour mes gaffes, parce que ce forum est trés cool et vous êtes sympa :)
Bon je vais essayer le code de staffman car je n'ai pas encore eu le temps de le tester
EDIT:Je sais pas pourquoi, mais j'ai des erreures dans beaucoup de FilterScripts, c'est normal ?
Et quand je compile se met rajoute encore une erreure :(
Quelqu'un peux m'aider ?
Merci d'avance
Cordialement,
Damaker
-
EDIT:Je sais pas pourquoi, mais j'ai des erreures dans beaucoup de FilterScripts, c'est normal ?
Quelqu'un peux m'aider ?
Met les sur pastebin !
AK NV.
-
Voila
http://pastebin.gtaonline.fr/pastebin.php?show=102
Merci d'avance
-
bah heu, moi jais pri ton script, je l'ai mis dans un nouveau fichier.pwn, il y avais 3warnings et je les aient défais :laugh
tu fera gaff, dans le script il y a un décallage aux ligne 566 et 567 il faut quels soit au même niveau que gametexteforplayer ;)
Et puis en faite, faut que tu mette les mêmes couleurs que ta choisi dans OnPlayerSpawn (vert pour les worker) et dans SetPlayerColor (en dessous de gametextforplayer )
sinon ton player écrira d'une couleur et sont point de minimap sera d'une autre couleur( pas bien dérangean mais sa fait pas un travail super bien fini)
Autre chose, mais SetPlayerColor et gTeam[playerid] aux autres dans OnPlayerRequestClass, comme sa ils auront une couleur et un Team défini.
http://pastebin.gtaonline.fr/pastebin.php?show=103
-
Un grand merci a toi [StAfF]mAn :)
Cordialement,
Damaker
-
;)
-
Bonjour,
Escusez moi, mais j'ai encore une question :/ ...
J'ai bien réussi a créer des factions grace a [Staff]Man (que je remercie :))
Mais voila, dans le Sftdm c'est plus simple que dans le mode Godfather de 26 000 lignes que j'ai pris pour mon serveur...
Donc j'ai bien essayer de trouver avec la commande Find, mais beaucoup de noms sont pas les mêmes donc je m'embrouille, et certains sont les mêmes mais n'ont aucun rapport...
J'ai essayer de mettre le code sur Pastebin mais sa marche pas, il est surment trop grand :dry
Donc ce que j'aimerais faire, c'est appeler en quelque sorte le sftdm a partir du mode GodFather ( genre faire #define sftdm) Vous voyez?
Merci d'avance
Cordialement,
Damaker03.
-
Heu... tu veu appeler le FS a partir du mode ?? ba y a pas plus simple :laugh En cour de jeu, une fois que tu t'ais logué en /rcon login [ton mot de pass] ba tu tape
/rcon loadfs sftdm
dans le chat bien sur ^^
et sa devrais le faire ;)
Si sa ne amrche explique un peu mieu ce que tu veu faire ++ :happy
-
Merci pour tes réponses, mais quand je note /rcon login [Mot de passe] sa me marque un truc genre: vous vous êtes fait bannir :o
Esque tu as une explication ?
Merci d'avance
Damaker03.
-
Bah mdr, dans ton serveur.cfg, tu a fait un
rcon_password
avec ton mot de pass
exemple :
rcon_password chienmouillé (xDDDD :lmfao )
alors sur ton serveur, tu marque dans le chat /rcon login chienmouillé
et normalement tu sera noté admin
Voila ^^
-
Merci beaucoup, ça marche, sauf pour /rcon loadfs sftdm , quand je note ça sa me dit un truc du genre : Le chargement a raté ...Esque tu sais pourquoi ?
Merci d'avance,
PS: peux-tu regarder tes messages stp ? :)
Damaker03.
-
Non je sais pourquoi sa marche pas ^^ :laugh (j'suis trop fort ^^ xD)
C'est parce que c'est pas un FilterScript, c'est un GameMode alors tu doit taper dans le chat /rcon loadgm sftdm et c'est bon ^^
++
et de rien de t'avoir aider, on est la pour sa ^^
(surtout pour les choses ou on sais qu'on peu aider ;) ) Mias tu ne peut pas avoir 2 gamemode en même temps, si tu fait loadgm sftdm sa va mettre ce mode a la place de l'autre (enfin je crois ^^)
++
-
loadgm ? jamais entendu, je pense plutot que c est /rcon changemode sftdm
-
Oui, la commande est bien /rcon changemode, tu as raison Raf(FS).
Pour une liste complète des commandes Rcon : http://wiki.sa-mp.com/wiki/RCON
Sinon, le problème avec la commande /rcon changemode c'est qu'elle charge un nouveau mode et donc , elle décharge celui qui est en train de s'exécuter.
C'est à dire, si le mode GodFather est en train de tourner sur ton serveur et que tu tapes la commande /rcon changemode, c'est un nouveau mode qui va être chargé et GodFather aura disparu.
Donc pour résoudre ton problème, il faut que tu transformes ton gamemode SFTDM en filterscript (pour qu'il puisse être chargé en même temps que GodFather).
Pour ce faire (dans SFTDM.PWN) :
- Renommer OnGameModeInit en OnFilterScriptInit.
- Renommer OnGameModeExit en OnFilterScriptExit.
- Placer le fichier .PWN dans le répertoire filterscript et le compiler dans ce répertoire.
Attention toutefois, comme SFTDM est un gamemode, il fait certainement des choses qui sont déjà faites dans GodFather. En le transformant en filterscript, il serait judicieux de les enlevées de SFTDM pour éviter les problèmes.
Ensuite, soit tu passes par le commande /rcon loadfs (unloadfs pour décharger), soit tu modifies ton fichier server.cfg pour ajouter SFTDM à la liste des filterscripts chargés automatiquement.
++
Syg
-
ah aussi, en parlant de changement de mode, quand je change le mien ou je le restarte avec /rcon gmx sa fait planter le client chez tout le monde mais le serveur marche toujours, ou est le problème ?
-
Est-ce que c'est pas toi Raf(FS) qui a mis en place le tuning automatique de voiture ?
Si oui, je suis au regret de te dire que c'est ça qui fait planter. Et pourtant j'ai chercher mais je crois bien qu'il n'y a pas d'autre solution que d'attendre la prochaine version de SA-MP pour voir si ça fonctionnera.
++
Syg
-
ouai j'avais mis en place un tuning automatique dans OnPlayerEnterVehicle mais deja avant la creation de cette fonction cela arrivait
-
Oui, c'est ce que je suis en train de te dire, mais le plantage survient au rechargement du mode.
C'est dans le OnGameModeInit que ça plante, là où tu as du faire un AddVehicleComponent.
En fait en répondant à ton post, j'ai regarder ce que j'avais fait et je viens de trouver la solution :
Dans OnGameModeInit, il ne faut pas faire de AddVehicleComponent directement mais il faut le faire dans un timer (ce que tu as déjà du faire dans le OnVehicleSpawn).
Je viens d'essayer et tout marche nickel. J'ai mis un SetTimerEx de 500 ms pour l'ajout du composant et je peux maintenant faire tous les gmx que je veux.
++
Syg
-
Merci Syg, ça marche ! :D
Mais maintenant je vais devoir travailler sur le sftdm,
j'ai essayer de faire un truc simple et j'ai pas réussit :'(
j'ai essayer de faire un truc comme:
Si le joueur tape /travail
afficher les noms de travails, donc j'ai fait un truc comme ceçi:
if(strcmp(cmd, "/travail", true) == 0)
{
if(IsPlayerConnected(playerid))
{
SendClientMessage(playerid, COLOR_GREY, " Noms des métiers");
}
}
return 0;
Et sa me met pleins d'erreures :'(
Esque quelqu'un peux m'aider ??
Merci d'avance,
Damaker03.
-
slt enfaite se que tu mes c'est un peu juste est c'est pas nessecaire de mettre if(IsPlayerConnected(playerid)) mes renplace ton script sa :
if(strcmp(cmd, "/travail", true) == 0)
{
SendClientMessage(playerid, COLOR_GREY, " Noms des métiers");
SendClientMessage(playerid, COLOR_BLUE, " Pour faire agent de police tapez /policier");
SendClientMessage(playerid, COLOR_BLUE, " Pour faire medecin tapez /medecin");
SendClientMessage(playerid, COLOR_BLUE, " Pour faire Pompier tapez /pompiers");
SendClientMessage(playerid, COLOR_BLUE, " Pour faire taxi tapez /taxi ");
SendClientMessage(playerid, COLOR_BLUE, " ext...");
return 1;
}
-
Merci beaucoup!! ça marche :)
EDIT:Sinon, j'aurais une autre question, comment esque je pourrais faire pour que quand un joueur écris /detective par exemple, il deviens detective
Merci d'avance,
Damaker03.
-
ben tu fait
if(strcmp(cmd, "/detective", true) == 0 ){
SendClientMessage(playerid,COLOR_RED,"Vous étes detective personne est au courent");
SendClientMessage(playerid,COLOR_RED,"Tapez /cmdde pour avoir les commande de detective");
return 1;
}
if(strcmp(cmd, "/cmdde", true) == 0 ){
SendClientMessage(playerid,COLOR_RED,"Tapez /camespion pour regarder un joueur et /camespiondexit pour sortir de la vu du joueur espionné");
SendClientMessage(playerid,COLOR_RED,"Tapez /teleespion pour les teleportation d'espion ");
return 1;
}
voila un exmanple aprés tu fait t truc
++
-
Ouais mais après dans camespion tu doit faire un fonction pour que quand tu fait la commande, la vue soit changer vers celle du joueur sélectionné et c'est pas si simple a faire ça...
-
Tient vas la je tes fait un script pour toi :
http://pastebin.gtaonline.fr/pastebin.php?show=117 (http://pastebin.gtaonline.fr/pastebin.php?show=117)
++
-
Merci bcp,
mais j'ai un probléme avec
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
if(strcmp(cmd, "/travail", true) == 0)
{
SendClientMessage(playerid, COLOR_GREY, " ");
SendClientMessage(playerid, COLOR_BLUE, " Pour faire agent de police tapez /policier");
SendClientMessage(playerid, COLOR_BLUE, " Pour faire medecin tapez /medecin");
SendClientMessage(playerid, COLOR_BLUE, " Pour faire Pompier tapez /pompiers");
SendClientMessage(playerid, COLOR_BLUE, " Pour faire taxi tapez /taxi ");
SendClientMessage(playerid, COLOR_BLUE, " ext...");
return 1;
}
return 0;
}
En faite dés que je me connecte sa me dit tout de suit ça :s
Quelqu'un peux m'aider ?
Meric d'avance ^^,
Damaker03
-
La prochaine fois recherche ;)
http://forum.sa-mp.com/index.php?topic=29647.0 (http://forum.sa-mp.com/index.php?topic=29647.0)
-
Merci urbanghetto, la prochaine fois je chercherais ^^
Damaker03.
-
La prochaine fois recherche ;)
http://forum.sa-mp.com/index.php?topic=29647.0
Lol pourquoi tu as fait un code pour un site web ? mdr !
AK NV.
-
Oui, :), Il a du se tromper de bouton.
Mais le lien est correct et pile dans le sujet.
++
Syg
-
Désolé pour le Code c'est parsque j'utilise souvent ce bouton ^^'
-
En faite ya un probléme a la igne 5 j'ai essayer de la résoudre mais j'ai pas réussi
y est marquer #include <Dini>:(
Merci d'avance
Damaker03
-
Bien il te faut le Include DINI c'est tout simple !
AK NV.
-
J'ai pas compris la :s
sa me dit qu'y a une erreure a Include <Dini> et comme erreure sa me met : fatal error 100: cannot read from file: "dini"
EDIT:Ha oook j'ai compris ^^ je vaix chercher ce code de dini
Je trouve pas...Tampis ...Merci quand même
Damaker03.
-
Aller tien >
http://pastebin.gtaonline.fr/pastebin.php?show=121
Copie moi sa dans un fichier WordPad que tu renomeras dini.inc et que tu ajouteras dans les INCLUDE de ton PAWNO
AK NV.
-
Erf y a encore des erreures je sais pas pourquoi...
Je laisse tomber le script et le pawn pendant un moment car a chaque fois que je fais quelque chose y a des erreures ou des bugs...
Merci de ton aide quand même;)
Damaker03
-
Met sur pastebin et j'esseye de t'arranger sa !
AK NV.
-
J'ai essayer de faire un truc pour que quand le joueur ecrit /travail sa met des trucs mais y a toujours des bugs, j'ai essayer 4 trucs différents et j'ai pas réussi, le bug c'est que même en écrivant pas /travail sa met quand même "pour faire agent de police ... "
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmd, "/travail", true) == 0)
SendClientMessage(playerid, COLOR_BLUE, " Pour faire agent de police tapez /policier");
}
Merci d'avance,
Damaker03.
-
Esseye comme ca !
if ( strcmp( cmdtext, "/dm-blood", true, 5 ) == 0 )
{
SendClientMessage(playerid, COLOR_BLUE, " Pour faire agent de police tapez /policier");
return 1;
}
AK NV.
-
EDIT:C'est bon, j'ai changer des trucs et sa marche !!!J'ai mis ça :
public OnPlayerCommandText(playerid, cmdtext[])
{
if ( strcmp( cmdtext, "/travail", true, 5 ) == 0 )
SendClientMessage(playerid, COLOR_BLUE, " Pour faire agent de police tapez /policier");
}
Sinon j'ai une autre question:
Esqu'on peux creer des variables ?? si oui,
esque tu peux m'expliquer comment faire des trucs avec les variables (genre ajouter 1, tout des truscs comme ça
Merci d'avance
Merci de m'avoir aider ;)
Damaker03.
-
Elle te servirais a quoi ?
AK NV.
-
Tu trouveras tout plein de réponses à tes question : pawn-lang.pdf (http://www.compuphase.com/pawn/pawn-lang.pdf)
++
-
j'sais pas vraiment expliquer mais par exemple pour faire:
Si la variable flic est égale a 1
le joueur peut utiliser la commande duty
sinon
dire vous n'êtes pas flic
Donc en faite quand le joueur deviendrai flic on enclencherai une variable...
Tu vois ce que je veux dire ?
Merci spykerc8 pour ton lien ^^
-
Bah c'est le principe des level....
-
C'est à dire ?
Damaker03.
-
bah le player est au niveau 0 il ne peu pas utiliser les commande, et plus il monte en niveau, en faisant des kill par exemple, bah il peut utiliser de plus en plus de commandes ;)
-
et comment je fais pour utiliser ça aprce que je connais pas la commande
Damaker03.