GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ApocKalipsS le 26 Janvier 2008, 20:46:52

Titre: Beug --> menu
Posté par: ApocKalipsS le 26 Janvier 2008, 20:46:52
Bonjour,
Voila j'ai fais un menu d'ouverture d'un garage et à chaque fois que je prend une selection ca crash si je ne suis pas "Flic".

Voila mon code :
public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quel que chose du menu.
if (Current == GarageEntrer){
if(IsPlayerFlic == 1)
{
if (row == 0){
MoveObject(GarageFlic, 2334.854980, 2443.533936, 0.866666, 2);
} else if (row == 1){
MoveObject(GarageFlic, 2334.854980, 2443.533936, 6.782374, 2);
}
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
}else if(IsPlayerFlic == 0)
{
SendClientMessage(playerid, COLOR_GREY, " Tu n'est pas policier !");
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
return 1;
}

Aidez-moi SVP !

EDIT : Je l'ai refais comme ça :
public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quelque chose du menu.
if (Current == GarageEntrer){

if (row == 0){
MoveObject(GarageFlic, 2334.854980, 2443.533936, 0.500000, 2);
} else if (row == 1){
MoveObject(GarageFlic, 2334.854980, 2443.533936, 6.782374, 2);
}
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
return 1;
}

Et ça beug 1Fois sur 2 !! :(  :snip :wall
Titre: Re : Beug --> menu
Posté par: marsu le 26 Janvier 2008, 21:02:04
Désoler mais chui noob en menu donc je voit pas vraiment désoler
Titre: Re : Beug --> menu
Posté par: ApocKalipsS le 26 Janvier 2008, 21:18:18
Tu sais...
Si tu sais pas, tu poste pas ;)
Titre: Re : Beug --> menu
Posté par: marsu le 26 Janvier 2008, 21:23:13
C'était pour te montrer que des gens lise ton probléme ^^
Titre: Re : Beug --> menu
Posté par: NatiVe™ le 26 Janvier 2008, 21:24:26
Il est bizard ton menu !

Il n'y a pas de case !

Tu fai directement l'action ?

NV.

Titre: Re : Beug --> menu
Posté par: ApocKalipsS le 26 Janvier 2008, 21:44:54
Bon attendez je vais relir le TUTO à Urban.

Marsu : C'est vrai, mais si tous le monde ferais comem toi...
Titre: Re : Beug --> menu
Posté par: ApocKalipsS le 26 Janvier 2008, 21:50:45
J'ai relus... je vois pas de case 0_o
Titre: Re : Beug --> menu
Posté par: NatiVe™ le 26 Janvier 2008, 21:56:21
Re !

new Menu:Current = GetPlayerMenu(playerid);
if(Current == Menu) {
switch(row) {
case 0:
{
                             Action
}
case 1:
{
                             Action
                        }
               case 2:
                        {
                             Action
                        }
Etc...

NV.


Titre: Re : Beug --> menu
Posté par: ApocKalipsS le 27 Janvier 2008, 08:33:58
public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quelque chose du menu.
if (Current == GarageEntrer){
switch(row) {
case 0:
{
MoveObject(playerid, 2334.854980, 2443.533936, 0.982370, 2);
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
case 1:
{
MoveObject(playerid, 2334.854980, 2443.533936, 6.782374, 2);
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}

}
}
return 1;
}

Voila mon code... ça beug toujours !
Titre: Re : Beug --> menu
Posté par: ApocKalipsS le 27 Janvier 2008, 09:57:34
Bon j'ai refais un MENU :

public OnPlayerSelectedMenuRow(playerid, row) {
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quelque chose du menu.
if (Current == GarageEntrer){
switch(row) {
case 0:
{
MoveObject(GarageFlic, 2334.854980, 2443.533936, 0.942370, 2);
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
case 1:
{
MoveObject(GarageFlic, 2334.854980, 2443.533936, 6.782374, 2);
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}

}
}
Menu:Current = GetPlayerMenu(playerid);
if (Current == GrillePrison){
switch(row) {
case 0:
{
MoveObject(GrillePrison, 228.2658,145.5,1003.0234, 3);
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
case 1:
{
MoveObject(GrillePrison, 228.2658,151.3640,1003.0234, 3);
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}

}
}
return 1;
}

La j'ai deux menu, alors :
•Le 1er beug 1fois sur 2. Et des fois aussi il met le menu "GrillePrison" qui a en dessous, avec aucune selection possible.
•Le 2eme quand on rentre dans le PickUp qui lance l'action, le serveur crash.

 :wall :wall :wall :wall :wallCa commence à m'énerver :spam aidez-moi SVP !! :snip :wall :wall
Titre: Re : Beug --> menu
Posté par: NatiVe™ le 27 Janvier 2008, 10:31:52
Dans OnGameModeInit tu as mit aussi

Menu = CreateMenu("Phrase 1",1,125,150,300);
if (IsValidMenu(Menu)) {
SetMenuColumnHeader(Menu, 0, "Phrase 2");
AddMenuItem(Menu,0,"Option 1");
AddMenuItem(Menu,0,"Option 2");
AddMenuItem(Menu,0,"Option 3");
}

?? ??

NV.

Titre: Re : Beug --> menu
Posté par: ApocKalipsS le 27 Janvier 2008, 13:02:57
    GarageEntrer = CreateMenu("~b~Garage ~w~Police",1,125,150,300); // "GarageEntrer" active un menu qui nous donne les choix ci-dessous :
        if(IsValidMenu(GarageEntrer)) {
    AddMenuItem(GarageEntrer ,0,"Ouvrir le garage");
AddMenuItem(GarageEntrer ,0,"Fermer le garage");
  }

  GrillePrison1 = CreateMenu("~b~Grille ~w~Prison",1,125,150,300); // "GrillePrison" active un menu qui nous donne les choix ci-dessous :
        if(IsValidMenu(GrillePrison)) {
    AddMenuItem(GrillePrison ,0,"Ouvrir la grille");
AddMenuItem(GrillePrison ,0,"Fermer la grille");
  }

Voila ce que j'ai mis...
Et enfete : quand c'ets moi qui va sur l'icone, ca crash 1fois sur 2 mais quand c'est quelqu'un d'autre, ca crash jamais !
Bizzard..
Titre: Re : Beug --> menu
Posté par: NatiVe™ le 27 Janvier 2008, 13:35:35
Ca crash avec l'id 0 ??

NV.

Titre: Re : Beug --> menu
Posté par: ApocKalipsS le 27 Janvier 2008, 14:15:14
Nan c'ets que moi qui crash ! Sur mon server
Mia ssur le serveur à un autre, je ne crash pas. (Je vais voir si lui crash)
Titre: Re : Beug --> menu
Posté par: Syg le 28 Janvier 2008, 15:11:25
Je reprend ton premier post LePro.
Ton code est tellement mal indenté que tu n'as pas vu l'erreur flagrante qui était dedans :
public OnPlayerSelectedMenuRow(playerid, row)
{
new Menu:Current = GetPlayerMenu(playerid); // Si le joueur séléctionne quel que chose du menu.
if (Current == GarageEntrer)
{
if(IsPlayerFlic == 1)
{
if (row == 0)
{
MoveObject(GarageFlic, 2334.854980, 2443.533936, 0.866666, 2);
}
else if (row == 1)
{
MoveObject(GarageFlic, 2334.854980, 2443.533936, 6.782374, 2);
}
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
}
else if(IsPlayerFlic == 0)
{
SendClientMessage(playerid, COLOR_GREY, " Tu n'est pas policier !");
TogglePlayerControllable(playerid,1); // On défreeze le joueur
}
return 1;
}

Est-ce que tu vois mieux maintenant ?
Oui, donc à l'avenir, indente ton code correctement, tu éviteras les problème de ce genre.
Non ? Alors je t'explique :
Le else if(IsPlayerFlic == 0) correspond au test if (Current == GarageEntrer).

Au risque de me répéter : L'indentation du code ce n'est pas pour faire joli !!!

Pour ton "nouveau" menu, Native s'en occupe donc je le laisse faire.

++
Syg
Titre: Re : Re : Beug --> menu
Posté par: NatiVe™ le 28 Janvier 2008, 18:59:35
Pour ton "nouveau" menu, Native s'en occupe donc je le laisse faire.

De quoi ?  :blink :blink

Je m'occupe de quoi ??

NV.