GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Tutoriels et références SA:MP => Discussion démarrée par: UrbanGhetto le 11 Septembre 2007, 01:23:45

Titre: [TUTO] Les menus
Posté par: UrbanGhetto le 11 Septembre 2007, 01:23:45
Bonjour, Vous vous êtes tout jour demander a quoi pourrais vous servir un menu, Et bien a plein de choses, Par exemple au lieu de faire un commande /carcolor id de la couleur, Le menu le fais directement pour nous.

Aujourd’hui nous allons apprendre à faire un menu tunning comme celui-là :

(http://img101.imageshack.us/img101/3729/tunningcp8.jpg)

Commençons par annonçer le menu dans votre GameMode.

Tout en haut de votre script :

new Menu:tunning;
Dans public OnGameModeInit:

tunning = CreateMenu("~b~Compostant ~w~selection",1,125,150,300); // "tunning" active un menu qui nous donne les choix ci-dessous :
        if(IsValidMenu(tunning)) {
SetMenuColumnHeader(tunning , 0, "Choisissez un composant:");
        AddMenuItem(tunning ,0,"Nitro x10");
AddMenuItem(tunning ,0,"Hydraulics");
AddMenuItem(tunning ,0,"Roues Tout Terrain");
AddMenuItem(tunning ,0,"Roues Sport");
}

Tout en bas de votre script :

public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quel que chose du menu.
if (Current == tunning){
if (row == 0){
AddVehicleComponent(GetPlayerVehicleID(playerid),1010);
} else if (row == 1){
AddVehicleComponent(GetPlayerVehicleID(playerid),1087);
} else if (row == 2){
AddVehicleComponent(GetPlayerVehicleID(playerid),1025);
} else if (row == 3){
AddVehicleComponent(GetPlayerVehicleID(playerid),1081);
}
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
return 1;
}

Et enfin vous créez une commande pour activer le menu :

if (strcmp("/tunning", cmdtext, true, 10) == 0)
{
if(IsPlayerInAnyVehicle(playerid)) // Si le joueur est dans un véhicule....
{
new Car = GetPlayerVehicleID(playerid), Model = GetVehicleModel(Car);
switch(Model) { case 448,461,462,463,468,471,509,510,521,522,523,581,586: return SendClientMessage(playerid,0xFF0000AA,"> Vous ne pouvez pas ajouter de composants dans des motos."); } //Si on ajoute des composants dans des motos ou vélos notre jeu crash...
ShowMenuForPlayer(tunning,playerid); // On active le menu "tunning"
TogglePlayerControllable(playerid,0); // On freeze le joueur
}
else{ // Sinon....
SendClientMessage(playerid,COLOR_RED,"> Vous devez être dans un véhicule");
}
return 1;
}

Voila, Bien sur vous pouvez créer n’importe quel menu avec cette méthode, Même un menu /aide  :)

Bonne continuation  ;)
Titre: Re : [TUTO]Les menus
Posté par: Syg le 11 Septembre 2007, 01:26:46
C'est une très bonne idée mais est-ce que tu peux développer et expliquer ce que tu fais entre les exemples de codes.
Sinon, les gens ne vont faire que du copier/coller et tu poser 36000 questions sur le pourquoi du comment.

++
Syg
Titre: Re : [TUTO]Les menus
Posté par: UrbanGhetto le 11 Septembre 2007, 01:30:16
Pas de problème, J'edit le code avec les expliquations  :happy

Edit :Mission accomplie  :), Ma foie, je n’ai pas a expliquer grand chose vus que le fonctionnement de ce script est facile (Enfin, pour certains).
Titre: Re : [TUTO]Les menus
Posté par: R@f le 11 Septembre 2007, 16:51:05
c'est bien urban d'aider les autres, meme si je le savais deja comment le faire, bravo pour ce tuto, ah aussi, ce menu ressemble un peu a celui de XtremeAdmin2 ...
Titre: Re : [TUTO]Les menus
Posté par: UrbanGhetto le 11 Septembre 2007, 16:52:34
Ouais je m'en suis inspiré, Je vous cache rien  ::)

Mais celui de X-Admin execute la même action pour tout les choix....
Titre: Re : [TUTO]Les menus
Posté par: GTK_dadou le 11 Septembre 2007, 18:21:19
Salut a tous

oui pas mal le tuto j'avous avec les menu on peut faire de tout:
/aide = pour consulter les aide des mods.
/weapon = pour faire comme dans les ammu nation.
/tuning = comme les transfender.
enfin bref  :laugh

+++ a tous     :jesors
Titre: Re : [TUTO]Les menus
Posté par: NatiVe™ le 11 Septembre 2007, 18:35:50
C'est gentil ca !

A la place de AddStaticComponent pour teleporter quelqun on marque quoi ?

AK NV.
Titre: Re : [TUTO]Les menus
Posté par: UrbanGhetto le 11 Septembre 2007, 19:39:32
Je pence pas qu'un menu peut afficher la liste des joueurs, Enfin peut-être bien mais j'en ai aucune idée  :(
Titre: Re : [TUTO]Les menus
Posté par: NatiVe™ le 11 Septembre 2007, 19:41:11
Lol cest pas ca que je dit !!

Moi je dit par exemple la command /dm le menu s'affiche je choisis par exemple DM USINE et je suis teleporter laba !

AK NV.
Titre: Re : [TUTO]Les menus
Posté par: UrbanGhetto le 11 Septembre 2007, 19:48:11
Bah tu fais ça :

if(IsPlayerInAnyVehicle(playerid)){
new Float:X;
new Float:Y;
new Float:Z;
new VehicleID;
GetPlayerPos(playerid, X, Y, Z);
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID,//Position X,Y,Z);
} else {
SetPlayerPos(playerid,//Position X,Y,Z);
GameTextForPlayer(playerid, "// Message a afficher",5000,5);
SetPlayerInterior(playerid,0);
}

Tu fais exactement ce que tu a l'habitude de faire avec les commandes téléportations  :)
Titre: Re : [TUTO] Les menus
Posté par: NatiVe™ le 11 Septembre 2007, 20:30:07
Lol tu n'as absolument pas compris ! a la place de

AddVehicleComponent(GetPlayerVehicleID(playerid),1010);
Pour teleporter quelqu'un quelque part je met quoi ?

AK NV.
Titre: Re : [TUTO] Les menus
Posté par: UrbanGhetto le 11 Septembre 2007, 20:42:03
Tu mets ce que je vient de te donner dans le code ci-dessus   ;)

Ca te parait bizarre, Mais il faut tout ca pour téléporter quel qu'un avec son véhicule vers une position...
Titre: Re : [TUTO] Les menus
Posté par: NatiVe™ le 11 Septembre 2007, 21:15:34
Tu n'as toujour pas compris ! :(:(

AK NV.
Titre: Re : [TUTO] Les menus
Posté par: UrbanGhetto le 11 Septembre 2007, 21:31:36
Ok alors on arrête  :lmao
Titre: Re : [TUTO] Les menus
Posté par: NatiVe™ le 12 Septembre 2007, 05:52:34
Lol ! nan je veut pas arreter je veut apprendre :) je m'explique mieu !!

pour l'aide menu que tu vien de faire, c'est pour pouvoir ajouter des composant a la voiture type > nitro, jante, spoiliers etc...

Moi je voudrais savoir quoi remplacer par le code en rouge pour par exemple j'écris DM STADIUM dans le menu, sa me teleporte laba ! tout simplement !

Citer
public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:Current = GetPlayerMenu(playerid);
if (Current == tunning){
if (row == 0){
AddVehicleComponent(GetPlayerVehicleID(playerid),1010);
} else if (row == 1){
AddVehicleComponent(GetPlayerVehicleID(playerid),1087);
} else if (row == 2){
AddVehicleComponent(GetPlayerVehicleID(playerid),1025);
} else if (row == 3){
AddVehicleComponent(GetPlayerVehicleID(playerid),1081);
}
TogglePlayerControllable(playerid,1);
}
return 1;
}

Si c'était ce que tu as donner avant désolé d'avoir mal compris :)

AK NV.
Titre: Re : [TUTO] Les menus
Posté par: kamalbouchboy le 12 Septembre 2007, 10:22:01
merci à tous  :angelnot

++
A+
++
Titre: Re : [TUTO] Les menus
Posté par: Spyko le 12 Septembre 2007, 14:47:02
Bonjoure a tous deja merci pour sa m'et j'ai un probléme j'ai modfifier ton script et moi sa me donne une érreure http://pastebin.gtaonline.fr/pastebin.php?show=56 (http://pastebin.gtaonline.fr/pastebin.php?show=56)
merci d'avence de me repondre
 modifier Dsl jé resolut le probléme .Si quelqun a le meme probléme que moi faitent le savoire ^^ :angelnot
Titre: Re : [TUTO] Les menus
Posté par: kiki67100 le 19 Septembre 2007, 21:42:29
Salut,

Super tuto je le savais mais c'est bien pour les gens qui ne save pas merci :)

ArseniK -> TU peux remplacé tu if(row==0) ... par un

switch(row)
{
case 1:
//code ...
break;
case 2:
//Exemple pour le choix numero 2
SetPlayerPos(playerid,... ,...); //tu mets tes coordonné puis de ton choix
break;
//... Le reste
}

J'espere que sa ta aidé

@++

Kevin
Titre: Re : [TUTO] Les menus
Posté par: ApocKalipsS le 22 Septembre 2007, 13:24:12
Salut tous alors moi sa marche pas sa me met sa comme erreur :
C:\Documents and Settings\pcadrien\Mes documents\Serveur GTA\sftdm(4).pwn(1063) : error 021: symbol already defined: "OnGameModeInit"
C:\Documents and Settings\pcadrien\Mes documents\Serveur GTA\sftdm(4).pwn(1065) : error 021: symbol already defined: "SetMenuColumnHeader"
:wall :wall

Voil aidez moi SVP ! Merci :)
Titre: Re : [TUTO] Les menus
Posté par: UrbanGhetto le 22 Septembre 2007, 18:28:50
Tu as déjà le public OnGameModeIni, Tu peux pas faire 2 fois un public, Dans ce cas copie ce que j'ai donner a mettre dans OnGameModeIni dans ton OnGameModeIni puisqu'il est déjà définit  :)

Quand a la 2ème erreure je vois pas vraiment  ???

Suprimme tout simplement la ligne SetMenuColumnHeader mais ton menu ne sera pas complet dans ce cas...
Titre: Re : [TUTO] Les menus
Posté par: NatiVe™ le 22 Septembre 2007, 19:05:17


ERREUR POST



Titre: Re : Re : [TUTO] Les menus
Posté par: UrbanGhetto le 22 Septembre 2007, 19:10:36

C:\Documents and Settings\pcadrien\Mes documents\Serveur GTA\sftdm(4).pwn(1065) : error 021: symbol already defined: "SetMenuColumnHeader"

Je pence pas, Already ca veux dire déjà...

A moins que tu as une ensienne version de Pawno
Titre: Re : [TUTO] Les menus
Posté par: Syg le 22 Septembre 2007, 22:14:12
Des erreurs sans script, c'est comme un repas sans fromage.
Sans le script qui correspond, on peut pas t'aider beaucoup.

Essaies de le poster dans le pastebin (http://pastebin.gtaonline.fr/pastebin.php) (pour savoir comment ça marche : http://www.gtaonline.fr/forums/index.php/topic,1098.0.html)

Le message d'erreur que tu as veut simplement dire que les deux fonctions citées ont été déclarées plus d'une fois.
Ceci peut venir du fait qu'elles sont effectivement déclarées plus d'une fois ou que tu as merdé dans les accolades et le compilo confond un appel à une fonction avec une déclaration.

++
SYg
Titre: Re : [TUTO] Les menus
Posté par: Bayshore le 25 Septembre 2007, 18:23:12
xDD urban, t'as copié le code de x-admin  :P
Titre: Re : [TUTO] Les menus
Posté par: UrbanGhetto le 25 Septembre 2007, 18:52:08
Non c'est pas tout a fais ca mais bon lol  :P

Edit : Toute façon même si ça vient de X-Admin la plus part des gens ne saurons pas recréer un menu en plus ils n'ont pas les expliquations... Même si il leur suffit de Copier Coller celui de X-Admin

Et en plus celui de X-Admin ne peut lancer qu'un seul type de fonction, Ex  :

SetPlayerHealth, Mais avec ce tuto on peut on peut facilement créer des fonctions differantes...
Titre: Re : [TUTO] Les menus
Posté par: steve90 le 28 Septembre 2007, 21:52:10
excusez moi mais un probleme persiste chez moi ca m'énerve

j'ai fait un menu à ma façon, mais le probleme s'est que aucune commande ne prend effect, et de + le joueur ne se defreez pas apres avoir quitter le menu

//---------------------------------------------------------

public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quel que chose du menu.
if (Current == drogue){
if (row == 0){
AddStaticPickup(1241, 3,1215.8640,-15.2648,1000.9219);
SetPlayerHealth(playerid,100.0);
GivePlayerMoney(playerid,-500);
} else if (row == 1){
AddStaticPickup(1241, 3,1215.8640,-15.2648,1000.9219);
SetPlayerHealth(playerid,75.0);
GivePlayerMoney(playerid,-3000);
} else if (row == 2){
AddStaticPickup(1241, 3,1215.8640,-15.2648,1000.9219);
SetPlayerHealth(playerid,50.0);
GivePlayerMoney(playerid,-2000);
} else if (row == 3){
AddStaticPickup(1241, 3,1215.8640,-15.2648,1000.9219);
SetPlayerHealth(playerid,25.0);
GivePlayerMoney(playerid,-1000);
}
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
return 1;
}

merci d'avance de votre aide
Titre: Re : [TUTO] Les menus
Posté par: Syg le 28 Septembre 2007, 21:59:36
Je pense que ton erreur vient de cette ligne :
if (Current == drogue){
Et plus précisément, du fait que tu as du te tromper dans l'autre partie de code qui crée le menu.
Donc ce serait bien de la poster aussi.

++
Syg
Titre: Re : [TUTO] Les menus
Posté par: steve90 le 28 Septembre 2007, 22:04:02
merci Syq

voiçi le tout


new Menu:drogue;


dans ongamemodeinit:

drogue = CreateMenu("~b~Drogue ~w~Fourniture",1,125,150,300); // "tunning" active un menu qui nous donne les choix ci-dessous :
    if(IsValidMenu(drogue)) {
SetMenuColumnHeader(drogue , 0, "Choisissez un composant:");
AddMenuItem(drogue ,0,"Morphine");
AddMenuItem(drogue ,0,"Marijuana");
AddMenuItem(drogue ,0,"Shiet");
AddMenuItem(drogue ,0,"Cocaine");

dans onplayercommandtext:

{
if (strcmp("/drogue", cmdtext, true, 10) == 0)
{
if (IsPlayerInCheckpoint(playerid)) // Si le joueur est dans un véhicule....
{
ShowMenuForPlayer(drogue,playerid); // On active le menu "tunning"
TogglePlayerControllable(playerid,0); // On freeze le joueur
}
else{ // Sinon....
SendClientMessage(playerid,COLOR_RED,"> Vous devez être à l'endroit prévu");
}
}
return 1;
}


et au final :

public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quel que chose du menu.
if (Current == drogue){
if (row == 0){
AddStaticPickup(1241, 3,1215.8640,-15.2648,1000.9219);
SetPlayerHealth(playerid,100.0);
GivePlayerMoney(playerid,-500);
} else if (row == 1){
AddStaticPickup(1241, 3,1215.8640,-15.2648,1000.9219);
SetPlayerHealth(playerid,75.0);
GivePlayerMoney(playerid,-3000);
} else if (row == 2){
AddStaticPickup(1241, 3,1215.8640,-15.2648,1000.9219);
SetPlayerHealth(playerid,50.0);
GivePlayerMoney(playerid,-2000);
} else if (row == 3){
AddStaticPickup(1241, 3,1215.8640,-15.2648,1000.9219);
SetPlayerHealth(playerid,25.0);
GivePlayerMoney(playerid,-1000);
}
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
return 1;
}
Titre: Re : [TUTO] Les menus
Posté par: steve90 le 30 Septembre 2007, 18:17:51
excusez moi d'insister mais s'est parce que j'ai beaucoup besoin de ce script pour mon gamemod et donc je suis bloqué en attendant ...
Titre: Re : [TUTO] Les menus
Posté par: Syg le 30 Septembre 2007, 22:31:04
Je viens de faire un copier/coller de ton bout de script dans mon script de test et je suis au regret de te dire qu'il marche parfaitement bien chez moi (modification de la vie et décompte de l'argent).

J'ai juste enlever le test if (IsPlayerInCheckpoint(playerid)) puisque je ne voulais pas m'embèter à créer un checkpoint.
Mais c'est la seule différence avec toi.

Donc je ne vois pas d'où peut venir ton erreur, ton code est tout à fait correct.

Par contre, j'ai un question : quelles touches tu utilises quand tu est dans le menu, est-ce que tu n'utiliserais pas la touche SUPPR pour sélectionner au lieu de SHIFT droit ?

Normalement, c'est flèche haut/flèche bas pour se déplacer, shift droit pour sélectionner (et sortir du menu) et SUPPR pour sortir du menu (sans rien sélectionner).
Et dans le cas où on appuye surr SUPPR dans un menu, on reste freezé et rien ne se passe (normal, on a rien sélectionné).

Je te conseille donc de rajouter ça à ton script :
public OnPlayerExitedMenu(playerid)
{
   TogglePlayerControllable(playerid,1); // On défreeze le joueur
}

pour la cas où un joueur sort du menu sans rien sélectionner.

++
Syg
Titre: Re : [TUTO] Les menus
Posté par: steve90 le 01 Octobre 2007, 07:53:42
bon c'est déjà ça, qu'il marche pas chez moi ce n'est pas un probleme, j'y touche plus. Merci de ton aide

sinon pour sélectionné j'utilise la touche "num 0" qui pour moi est (courir) donc je pense que c'est la même chose que alt :p et pour appellé le menu normalement une fois sur le checkpoint il est cité ''tappez /drogue...." :)

esque tu as bien eu la pillule d'adrénaline, la vie, et le retirement d'argent quand tu as sélectionné 1 des drogues?
Titre: Re : [TUTO] Les menus
Posté par: Syg le 01 Octobre 2007, 10:11:20
Pour ce qui est de la pilule, je sais pas, j'étais pas au bon endroit sur la carte mais je pense que elle a du se créer.
Je vais faire le test.
Edit Syg : C'est bon pour la pilule, elle est un peu haute mais elle est là. Es-tu sur des coordonées car ta pillule est quand même à 1000.9219 mètres d'altitude !!

Sinon, pour la vie et l'argent, c'était OK pour moi.

Et effectivement, la touche SHIFT droit chez moi c'est pour courrir (donc équivalent à la touche NUM 0 chez toi).
Essaies temporairement de reconfiguré cette touche pour voir si ça change quelque chose.

Est-ce que d'autres joueurs ont essayé depuis d'autres machines pour te dire si ça marche ou pas ?

++
Syg
Titre: Re : [TUTO] Les menus
Posté par: steve90 le 01 Octobre 2007, 15:57:56
re :p je vient te dire que j'ai retesté mon script avec ta commande pour etre defreezeer même si ont ne prend rien, et ca a marché !

ps: la pillule je la spawn dans le checkpoint, d'ailleur tu la prend automatiquement, et lorsque je prend une drogue, je voi très vite la pillule apparaitre au bon endroit

sinon tu trouve comment le principe de la pillule comme drogue? :p ca le fait je trouve genre tu rentre vite dans le bar tu regagne de la vie, et tu vas au ralenti genre "max payne", très éfficace, mais bon je devrait faire en sorte que le joueur puisse le stocker dans une list d'objet qu'il a :p
Titre: Re : [TUTO] Les menus
Posté par: Syg le 01 Octobre 2007, 16:28:00
Tu as peut-être été victime d'un des maux siuvants :
   1 - Je modifie, je recompile et j'oublie de recharger mon mode
   2 - Je modifie, j'oublie de compiler et je recharge mon mode
   3 - Je modifie le mauvais script, je recompile et je recharge mon mode
   4 - ..... (liste non exhaustive)
Ca arrive très souvent.

Alors pour la pilule, c'est une bonne idée mais je te conseille alors d'utiliser CreatePickup au lieu de AddStaticPickup.
L'avantage de CreatePickup c'est que tu pourras détruire le pickup au bout d'un certain temps si le joueur ne le prend pas (même si il n'a pas le choix puisqu'il apparait au même endroit). Et si le joueur prendle pickup, tu pourras le détruire quand même, ça liberera un peu de ressource.

Pour la destruction du pickup, utilises la fonction SetTimerEx (si tu veux des précisions, n'hésites pas à le demander).

Sinon, j'ai fait mes tests avec les coordonnées suivantes : (1215.8640, -15.2648, 1000.9219) que j'ai récupérées dans ton post.
On voit clairement que la pilulle est créee à 1000.9219 mètres d'altitude,mais ce n'est peut-être qu'une erreur dans ton post.
Le problème c'esst que je n'ai pas pu la prendre, elle était un peu trop haute pour moi ...  :)



++
Syg
Titre: Re : [TUTO] Les menus
Posté par: raptor2003 le 15 Octobre 2007, 17:54:46
SetPlayerPos  ;)
Titre: Re : [TUTO] Les menus
Posté par: Syg le 15 Octobre 2007, 23:35:51
Oui, le SetPlayerPos c'est ce que j'avais essayer mais en mettant les mêmes coordonnées que la pillule elle-même, mon joueur est tombé sans la prendre.
Mais bon, je n'ai essayé qu'une seule fois.

++
Syg
Titre: Re : [TUTO] Les menus
Posté par: Eloctro le 22 Octobre 2007, 20:01:35
Citer
Tu as peut-être été victime d'un des maux suivants :
   1 - Je modifie, je recompile et j'oublie de recharger mon mode
   2 - Je modifie, j'oublie de compiler et je recharge mon mode
   3 - Je modifie le mauvais script, je recompile et je recharge mon mode
   4 - ..... (liste non exhaustive)
Ca arrive très souvent.

maux/mot je crois que tu voilais dire sa je ses aussi que j'en fait de temps en temps mes la sa ma flashé.
(http://www.gtaonline.fr/forums/Themes/proton/images/warnwarn.gif) Charabia incompréhensible + fautes de français répétitives de façon volontaire + remontage de vieux topics sans aucun but + freepost. (http://www.gtaonline.fr/forums/Themes/proton/images/warnwarn.gif)
Titre: Re : [TUTO] Les menus
Posté par: Syg le 22 Octobre 2007, 22:08:52
Sans vouloir me vanter, je dirais que je fais très rarement des fautes d'orthographe mais ça m'arrive.

Par contre là, dans le cas qui nous occupe, ce n'était pas du tout une faute, "maux" est un mot de la langue française, c'est le pluriel de "mal", je l'ai utilisé intentionnellement.
Si j'avais écrit "...victime d'un des mals suivants :" ou "...victime d'un des mots suivants :", j'aurais volontier rigolé avec toi de ma boulette.

Avant de critiquer l'orthographe prétendument erronée de certains posts, achète toi un dictionnaire et serts t'en avant de te moquer.

Maintenant, c'est mon tour :

"maux/mot je crois que tu voilais dire sa je ses aussi que j'en fait de temps en temps mes la sa ma flashé."
Traduction en français :
"Maux/mots, je crois que tu voulais dire ça, je sais aussi que j'en fait de temps en temps mais la ça m'a flashé."

Et tu oses dire "de temps en temps" !!!!! C'est pitoyable ...
Je ne dis plus rien, je vais être désagréable.

++
Syg
Titre: Re : [TUTO] Les menus
Posté par: Spyko le 22 Novembre 2007, 19:48:29
Salut ya un petit probléme quand on redémarre le serveur sa le mélange avec le menu de xtreamadmin ^^
Titre: Re : [TUTO] Les menus
Posté par: UrbanGhetto le 22 Novembre 2007, 19:54:27
Le redémarre pas  ???
Titre: Re : [TUTO] Les menus
Posté par: sckouizi le 03 Avril 2008, 19:36:47
Bonjour, je ne sais pas ou mettre cette commande dans pawno,


if (strcmp("/tunning", cmdtext, true, 10) == 0)
{
if(IsPlayerInAnyVehicle(playerid)) // Si le joueur est dans un véhicule....
{
new Car = GetPlayerVehicleID(playerid), Model = GetVehicleModel(Car);
switch(Model) { case 448,461,462,463,468,471,509,510,521,522,523,581,586: return SendClientMessage(playerid,0xFF0000AA,"> Vous ne pouvez pas ajouter de composants dans des motos."); } //Si on ajoute des composants dans des motos ou vélos notre jeu crash...
ShowMenuForPlayer(tunning,playerid); // On active le menu "tunning"
TogglePlayerControllable(playerid,0); // On freeze le joueur
}
else{ // Sinon....
SendClientMessage(playerid,COLOR_RED,"> Vous devez être dans un véhicule");
}
return 1;
}

Merci de m'aider
Titre: Re : [TUTO] Les menus
Posté par: NatiVe™ le 03 Avril 2008, 19:49:05
Tu la met dans la CallBack

OnPlayerCommandText

NV.

Titre: Re : [TUTO] Les menus
Posté par: sckouizi le 03 Avril 2008, 20:04:58
Je n'y arrive pas  :( :( Est ce que quelqu'un aurait la gentillesse de me le mettre en téléchargement svp, juste le GM du tuning, ou alors copié tout votre GM est mettez le ici je c'est pas, il me trouve 2 erreurs, loose identification je c'est plus trop quoi et une erreur pour la couleur.
Titre: Re : [TUTO] Les menus
Posté par: [StAfF]MaN le 03 Avril 2008, 23:17:49
Un loose indentification franchement sa gène en rien....

Maintenant si tu nous montrais l'erreur a propos de la couleur et la ligne concerné, on pourrait t'aider, nul besoin de mettre notre GM entier xDD tu me fait rigoler ;)
Ne demande pas ce qu'on ne donnera jamais ;) Demande de l'aide, sa on en regorge ;)
Titre: Re : [TUTO] Les menus
Posté par: sckouizi le 04 Avril 2008, 00:24:30
Ok bah voilà  :)

H:\Documents and Settings\robin\Bureau\tunnig.pwn(36) : error 010: invalid function or declaration
H:\Documents and Settings\robin\Bureau\tunnig.pwn(113) : error 017: undefined symbol "COLOR_RED"
H:\Documents and Settings\robin\Bureau\tunnig.pwn(118) : warning 209: function "OnPlayerCommandText" should return a value
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
Titre: Re : [TUTO] Les menus
Posté par: [StAfF]MaN le 04 Avril 2008, 00:35:42
alors pour le undefined symbol c'est pas dure, en haut de ton script tu va mettre ça :

#define COLOR_RED 0xAA3333AA

pour l'autre erreur "OnPlayerCommandeText" c'est pas compliqué non plus, il te manque le "return 1;" c'est tout, pour l'erreur a la ligne 36, je ne vois pas, tu pourrai nous la montrer stp ^^
Titre: Re : [TUTO] Les menus
Posté par: sckouizi le 04 Avril 2008, 01:09:39
merci!! plus que une erreur!

Ligne 36 :         
Citer
        if(IsValidMenu(tunning)) {
Titre: Re : [TUTO] Les menus
Posté par: [StAfF]MaN le 04 Avril 2008, 01:11:00
if(IsValidMenu(tunning)== 1) {
Titre: Re : [TUTO] Les menus
Posté par: sckouizi le 04 Avril 2008, 01:12:16
Non ca me met toujours la même erreur  :(
Titre: Re : [TUTO] Les menus
Posté par: [StAfF]MaN le 04 Avril 2008, 01:14:31
fait voir la commande entière, parce que j'ai fait revient au même en faite
Titre: Re : [TUTO] Les menus
Posté par: sckouizi le 04 Avril 2008, 01:18:24
lol, ok j'ai refait toute le config, maintenant l'erreur est à la ligne 33 regarde :

public OnGameModeInit()
tunning = CreateMenu("~b~Compostant ~w~selection",1,125,150,300); // "tunning" active un menu qui nous donne les choix ci-dessous :
            if(IsValidMenu(tunning)== 1) {
   SetMenuColumnHeader(tunning , 0, "Choisissez un composant:");
        AddMenuItem(tunning ,0,"Nitro x10");
   AddMenuItem(tunning ,0,"Hydraulics");
   AddMenuItem(tunning ,0,"Roues Tout Terrain");
   AddMenuItem(tunning ,0,"Roues Sport");
}
public OnGameModeExit()
{
   return 1;
}

Titre: Re : [TUTO] Les menus
Posté par: [StAfF]MaN le 04 Avril 2008, 01:20:45
essaie ça (ne met pas tout ton code mais juste la commande ciblée ;)


public OnGameModeInit()
{
tunning = CreateMenu("~b~Compostant ~w~selection",1,125,150,300); // "tunning" active un menu qui nous donne les choix ci-dessous :
            if(IsValidMenu(tunning)== 1) {
   SetMenuColumnHeader(tunning , 0, "Choisissez un composant:");
        AddMenuItem(tunning ,0,"Nitro x10");
   AddMenuItem(tunning ,0,"Hydraulics");
   AddMenuItem(tunning ,0,"Roues Tout Terrain");
   AddMenuItem(tunning ,0,"Roues Sport");
}
return 1;
}
public OnGameModeExit()
{
   return 1;
}
Titre: Re : [TUTO] Les menus
Posté par: sckouizi le 04 Avril 2008, 01:23:14
lol non c'est bon merci ;) trop cool 4 warnings mais ça marche  :P

Merci beaucoup et à bientôt  :D
Titre: Re : [TUTO] Les menus
Posté par: [StAfF]MaN le 04 Avril 2008, 01:25:19
Arg ta modif ton message quand je regardais lol ^^ bon si ta trouver met la réponse pour les autres, et montre les warnings, qu'on te fasse un script nickel ;)
Titre: Re : [TUTO] Les menus
Posté par: sckouizi le 04 Avril 2008, 01:29:08
Ok, alors voilà les warnings :

Citer
H:\DOCUME~1\robin\Bureau\GTASER~1\FILTER~1\tunning.pwn(34) : warning 217: loose indentation
H:\DOCUME~1\robin\Bureau\GTASER~1\FILTER~1\tunning.pwn(36) : warning 217: loose indentation
H:\DOCUME~1\robin\Bureau\GTASER~1\FILTER~1\tunning.pwn(37) : warning 217: loose indentation
H:\DOCUME~1\robin\Bureau\GTASER~1\FILTER~1\tunning.pwn(41) : warning 217: loose indentation
H:\DOCUME~1\robin\Bureau\GTASER~1\FILTER~1\tunning.pwn(117) : warning 209: function "OnPlayerCommandText" should return a value
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


5 Warnings.

et ma config ici :

Citer
public OnGameModeInit()                         //LIGNE 31
{
tunning = CreateMenu("~b~Compostant ~w~selection",1,125,150,300); // "tunning" active un menu qui nous donne les choix ci-dessous :
            if(IsValidMenu(tunning)== 1) {
   SetMenuColumnHeader(tunning , 0, "Choisissez un composant:");
        AddMenuItem(tunning ,0,"Nitro x10");
   AddMenuItem(tunning ,0,"Hydraulics");
   AddMenuItem(tunning ,0,"Roues Tout Terrain");
   AddMenuItem(tunning ,0,"Roues Sport");
}
return 1;
}


LIGNE 117
Citer
public OnPlayerInfoChange(playerid)
{
   return 1;
}
Titre: Re : [TUTO] Les menus
Posté par: [StAfF]MaN le 04 Avril 2008, 01:30:50
public OnGameModeInit()                         //LIGNE 31
{
tunning = CreateMenu("~b~Compostant ~w~selection",1,125,150,300); // "tunning" active un menu qui nous donne les choix ci-dessous :
if(IsValidMenu(tunning)== 1) {
SetMenuColumnHeader(tunning , 0, "Choisissez un composant:");
AddMenuItem(tunning ,0,"Nitro x10");
AddMenuItem(tunning ,0,"Hydraulics");
AddMenuItem(tunning ,0,"Roues Tout Terrain");
AddMenuItem(tunning ,0,"Roues Sport");
}
return 1;
}

ligne 117 je ne vois pas ... essaie ça :
public OnPlayerInfoChange(playerid)
{
return 1;
}

et met surtout ton code comme ceci :

public OnGameModeInit()
{
tunning = CreateMenu("~b~Compostant ~w~selection",1,125,150,300); // "tunning" active un menu qui nous donne les choix ci-dessous :
if(IsValidMenu(tunning)== 1) {
SetMenuColumnHeader(tunning , 0, "Choisissez un composant:");
AddMenuItem(tunning ,0,"Nitro x10");
AddMenuItem(tunning ,0,"Hydraulics");
AddMenuItem(tunning ,0,"Roues Tout Terrain");
AddMenuItem(tunning ,0,"Roues Sport");
}
return 1;
}
public OnGameModeExit()
{
return 1;
}
Titre: Re : [TUTO] Les menus
Posté par: sckouizi le 04 Avril 2008, 01:42:01
1 warnings
Citer
H:\DOCUME~1\robin\Bureau\GTASER~1\FILTER~1\tunning.pwn(116) : warning 209: function "OnPlayerCommandText" should return a value
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


1 Warning.

Ligne 116 :

Citer
public OnPlayerInfoChange(playerid)
{
return 1;
}
Titre: Re : [TUTO] Les menus
Posté par: [StAfF]MaN le 04 Avril 2008, 10:40:58
enlève le return 1; de cette ligne pour voir
Titre: Re : [TUTO] Les menus
Posté par: NatiVe™ le 04 Avril 2008, 10:54:30
Met ca,

OnPlayerCommandText(payerid, cmdtext[])
(
return 1;
}

NV.

Titre: Re : [TUTO] Les menus
Posté par: sckouizi le 04 Avril 2008, 19:29:19
Non dsl ça ne marche pas que ce soit une réponse ou l'autre, vos 2 rép. ne marche pas  :(
Si j'enlève le return 1; rien ne changen j'ai toujours la meme erreur, et si je met

OnPlayerCommandText(payerid, cmdtext[])
(
return 1;
}

Il me trouve 3 erreurs, dont une ou il dise q'il y est déjàs  :'(

Si je garde le fichier comme il est et que je le met sur mon serveur, je tape /tunnig et là le jeu plante...
Titre: Re : [TUTO] Les menus
Posté par: MadFire le 12 Mai 2008, 13:28:25
Tu l'aurai pas mis dans OnPlayerCommandText(payerid, cmdtext[]) par hasard ?
Titre: Re : [TUTO] Les menus
Posté par: Syg le 15 Mai 2008, 16:03:51
Je pense qu'on est devant le cas classique où il manque un accolade pour terminer OnPlayerCommandText.
Le compilo ne sait plus où se termine la callback OnPlayerCommandText (puisque l'erreur porte sur cette callback) et met l'erreur à la ligne où il croit qu'elle se termine.

Donc revois la correspondance des accolades {} dans ta fonction OnPlayerCommandText.

++
Syg
Titre: Re : [TUTO] Les menus
Posté par: pinouf42 le 23 Juin 2008, 16:49:43
Moi lorsque je met des menus, il font planter le serveur.
Titre: Re : [TUTO] Les menus
Posté par: doudoutoutou le 16 Juillet 2008, 00:42:14
si ça fait planter ton server c'est qu'il y a une erreur dans ton menu, tu as peut être oublié de mettre un truc. Faut que tu développe plus pour pouvoir trouver ton erreur.
Titre: Re : [TUTO] Les menus
Posté par: vincentdu90 le 17 Juillet 2009, 16:24:13
Bonjour,

Désolé de remonter les vieux post mais je voudrais comprendre les partie de CreateMenu et AddMenuItem :

CreateMenu("~b~Compostant ~w~selection",1,125,150,300); : Le début je comprend la fin aussi ce sont les coordonnées mais a quoi correspond le 1 dans la fonction ?

AddMenuItem(tunning ,0,"Nitro x10"); : Et ici a quoi correspond le 0 .

Merci d'avance de votre aide .
Titre: Re : [TUTO] Les menus
Posté par: cristab le 17 Juillet 2009, 16:26:59
http://wiki.sa-mp.com/wiki/CreateMenu (http://wiki.sa-mp.com/wiki/CreateMenu)  voila pour toi
Titre: Re : [TUTO] Les menus
Posté par: vincentdu90 le 17 Juillet 2009, 16:28:44
Merci de ta réponse rapide

Si je comprend bien s'est le nombre de colonne et est on obliger de mettre ceci dans le menu :

SetMenuColumnHeader(tunning , 0, "Choisissez un composant:");

ce qui est a mon avis le sous menu .
Titre: Re : [TUTO] Les menus
Posté par: cristab le 17 Juillet 2009, 16:35:58
voila un petit exemple

Code: (une colonne) [Sélectionner]
CreateMenu("~b~Compostant ~w~selection",1,125,150,300);
AddMenuItem(tunning ,0,"Nitro x10");


Code: ( 2 colonne) [Sélectionner]
CreateMenu("~b~Compostant ~w~selection",2,125,150,300);
AddMenuItem(tunning ,0,"Nitro");
AddMenuItem(tunning ,1,"x10");

la en deux colonne le mais sa ne sert pas a grand chose appart mettre tes menu en fr eng je pense
Titre: Re : [TUTO] Les menus
Posté par: S!m le 17 Juillet 2009, 23:30:28
Salut,

il y a toujours la possibilité de mettre une description ou un prix...

++Sim++
Titre: Re : [TUTO] Les menus
Posté par: Nico_Torres le 04 Août 2009, 15:40:05
Citation de: UrbanGhetto
Dans public OnGameModeInit:

On doit le trouver où ?

Citation de: UrbanGhetto
("~b~Compostant ~w~selection",1,125,150,300)

A quoi sert ce qui est en rouge ?

Citation de: UrbanGhetto
switch(Model) { case 448,461,462,463,468,471,509,510,521,522,523,581,586

Ce qui est en rouge c'est des model de voiture ( carid ? ) ?

Voilà quelque questions :P

Titre: Re : Re : [TUTO] Les menus
Posté par: cristab le 04 Août 2009, 16:01:19

On doit le trouver où ?

Dans le script


A quoi sert ce qui est en rouge ?

c'est la position du menu


Ce qui est en rouge c'est des model de voiture ( carid ? ) ?

Les numeros coorespond a un type de vehicule chaque vehicule a un numeros pour les connaitre clique la ===> http://www.gtaonline.fr/forums/index.php/topic,425.0.html (http://www.gtaonline.fr/forums/index.php/topic,425.0.html)

j'espere que j'ai etait claire pour le OnGameModeInit si tu veut le faire en FS c'est OnFilterScriptInit





Titre: Re : [TUTO] Les menus
Posté par: xEagl3Zx le 15 Septembre 2009, 17:53:14
Euh salut ...

Comment on fait pour rajouté de l'argent euh plutot faire payer ... et comment on fait genre je fait un menu ya plin de truc et il y a NITRO je selectione NITRO et il y a Nitro x5, Nitro x10 ... genre sa ?? ... ?? Merci de vouloir repondre ... Par script ... la reponsse S.V.P. ... Merci ...

++TZ++
Titre: Re : [TUTO] Les menus
Posté par: Zombotech_Boss le 08 Mars 2010, 12:03:38
Bonjour les gens, ma question est bête mais je vais créer un menu de tuning et je voulais savoir si on pouvait encore utiliser ces vieux menu de SA:MP 0.2 pour 0.3a ? (si j'ai dit une connerie bêtise (( restont poli  :angelnot )), veuillez m'en excusez).

((( EDIT : Oups, vieux sujet, pas fais expret, je croyait que les autre c'était des post-it ^^'  :boulet |->  :jesors )))
Titre: Re : [TUTO] Les menus
Posté par: cristab le 08 Mars 2010, 16:07:15
fonctionne toujours oui
Titre: Re : [TUTO] Les menus
Posté par: Jones le 14 Août 2010, 04:53:25
Une chance que la comunité de Samp est inventé les menus car les menus n'était pas disponible sur 0.2x ;) Il auras bientot la sortie du Samp 0.3b :D J'ai hate j'ai même eu la chance de le tester :D aucun bug magnifique je l'attend avec grande impatiences,


Sinon Merci pour ton tutorial sa vas en aidé plusieurs
Titre: Re : Re : [TUTO] Les menus
Posté par: scott1 le 14 Août 2010, 05:29:11
Une chance que la comunité de Samp est inventé les menus car les menus n'était pas disponible sur 0.2x

Ah non, moi j'ai le souvenir d'en avoir vu en 02.2r2, je me trompe peut être.
Titre: Re : [TUTO] Les menus
Posté par: Ssk le 14 Août 2010, 10:47:45
euh les menus ont toujours existé et samp 0.3b tout le monde peut le tester, et euh pas de bug ?
Titre: Re : [TUTO] Les menus
Posté par: scott1 le 14 Août 2010, 19:23:11
Voila pour toi Sasuke http://forum.sa-mp.com/showthread.php?t=167003 (http://forum.sa-mp.com/showthread.php?t=167003)