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
-
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
-
Désoler mais chui noob en menu donc je voit pas vraiment désoler
-
Tu sais...
Si tu sais pas, tu poste pas ;)
-
C'était pour te montrer que des gens lise ton probléme ^^
-
Il est bizard ton menu !
Il n'y a pas de case !
Tu fai directement l'action ?
NV.
-
Bon attendez je vais relir le TUTO à Urban.
Marsu : C'est vrai, mais si tous le monde ferais comem toi...
-
J'ai relus... je vois pas de case 0_o
-
Re !
new Menu:Current = GetPlayerMenu(playerid);
if(Current == Menu) {
switch(row) {
case 0:
{
Action
}
case 1:
{
Action
}
case 2:
{
Action
}
Etc...
NV.
-
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 !
-
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
-
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.
-
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..
-
Ca crash avec l'id 0 ??
NV.
-
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)
-
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
-
Pour ton "nouveau" menu, Native s'en occupe donc je le laisse faire.
De quoi ? :blink :blink
Je m'occupe de quoi ??
NV.