Szerző Téma: Dialog hiba  (Megtekintve 758 alkalommal)

dexi

  • Vendég
Dialog hiba
« Dátum: 2011. december 17. - 17:12:22 »
0 Show voters
[pawn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   new namee[MAX_PLAYER_NAME]; // Név tárolása.
    GetPlayerName ( playerid, namee, sizeof ( namee ) ); // Név lekérése.
   pontok = GetPlayerScore(playerid); // \"pontok\" értékének megadása.
   penz = GetPlayerMoney(playerid); // \"penz\" értékének megadása.
   admin = PlayerInfo[playerid][adminlevel]; // \"admin\" értékének megadása
   GetPlayerName(playerid, nev, sizeof( nev )); // \"nev\" Lekérése(név)
   format(fajl,   sizeof (fajl),   \"/Registration/%s.ini\", nev); // fajl megformálása.
/*[--------------------------------------------------------------------------------------------------]*/
   if(dialogid == r33g)
   {
   if(response)
   {
   dini_Create(fajl); // Fájl létrehozása [ NÉV.ini ]
   /*--[ Adatok létrehozása ]--*/
   dini_Set(fajl, \"Pass | Jelszó\", inputtext);
   dini_IntSet(fajl, \"Money | Pénz\", penz);
   dini_IntSet(fajl, \"Level | Szint\", pontok);
   dini_IntSet(fajl, \"A-Level | A-Szint\", admin);
   /*--[ Alap adatok betöltése ]--*/
   PlayerInfo[playerid][adminlevel] = 0;
   /*--[ Szöveg kiíratása ]--*/
   SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen regisztráltál!\");
   /*--[ Regisztrálás után ]--*/
   ShowPlayerDialog(playerid,lOOgin,DIALOG_STYLE_INPUT, \"Bejelentkezés\",\"\\nÍrd be a jelszavad.\",\"Belépés\",\"Kilépés\");
   }
   return 1;
   }
   if(dialogid == lOOgin)
   {
   if(!response)
   if(!strcmp(dini_Get( fajl, \"Pass | Jelszó\"), inputtext ) )
   {
   /*--[ Adatok betöltése ]--*/
    SetPlayerMoney(playerid, dini_Int(fajl, \"Money | Pénz\"));
   SetPlayerScore(playerid, dini_Int(fajl, \"Level | Szint\"));
   PlayerInfo[playerid][adminlevel] = dini_Int(fajl, \"A-Level | A-Szint\");
        }
   else SendClientMessage(playerid, COLOR_RED, \"Rossz a jelszó!\");
   }
   SendClientMessage(playerid, COLOR_RED, \"Bejelentkezés nélkül nem játhatsz.\");
        Kick(playerid);
   return 1;
}[/pawn]
A gond az hogy beírom a jelszót enterezek vagy rámegyek a bejelentkezésre, és kickel hogy bejelentkezés nélkül nem játszhatok. Nem értem mi a baja.. Valaki meglesné? ( A magyarázatokat a sorok mellett magamnak írtam oda mert átnéztem minden lehetséges hibát. )

Nem elérhető Vic15

  • 500
    • Profil megtekintése
Dialog hiba
« Válasz #1 Dátum: 2011. december 17. - 17:44:55 »
+1 Show voters
Próbáld meg ezt.
 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new namee[MAX_PLAYER_NAME]; // Név tárolása.
    GetPlayerName ( playerid, namee, sizeof ( namee ) ); // Név lekérése.
pontok = GetPlayerScore(playerid); // \"pontok\" értékének megadása.
penz = GetPlayerMoney(playerid); // \"penz\" értékének megadása.
admin = PlayerInfo[playerid][adminlevel]; // \"admin\" értékének megadása
GetPlayerName(playerid, nev, sizeof( nev )); // \"nev\" Lekérése(név)
format(fajl,   sizeof (fajl),   \"/Registration/%s.ini\", nev); // fajl megformálása.
/*[--------------------------------------------------------------------------------------------------]*/
if(dialogid == r33g)
{
if(response)
{
dini_Create(fajl); // Fájl létrehozása [ NÉV.ini ]
/*--[ Adatok létrehozása ]--*/
dini_Set(fajl, \"Pass | Jelszó\", inputtext);
dini_IntSet(fajl, \"Money | Pénz\", penz);
dini_IntSet(fajl, \"Level | Szint\", pontok);
dini_IntSet(fajl, \"A-Level | A-Szint\", admin);
/*--[ Alap adatok betöltése ]--*/
PlayerInfo[playerid][adminlevel] = 0;
/*--[ Szöveg kiíratása ]--*/
SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen regisztráltál!\");
/*--[ Regisztrálás után ]--*/
ShowPlayerDialog(playerid,lOOgin,DIALOG_STYLE_INPUT, \"Bejelentkezés\",\"\\nÍrd be a jelszavad.\",\"Belépés\",\"Kilépés\");
}
return 1;
}
if(dialogid == lOOgin)
{
if(!response)
                {
if(!strcmp(dini_Get( fajl, \"Pass | Jelszó\"), inputtext ) )
{
/*--[ Adatok betöltése ]--*/
    SetPlayerMoney(playerid, dini_Int(fajl, \"Money | Pénz\"));
SetPlayerScore(playerid, dini_Int(fajl, \"Level | Szint\"));
PlayerInfo[playerid][adminlevel] = dini_Int(fajl, \"A-Level | A-Szint\");
        }
else SendClientMessage(playerid, COLOR_RED, \"Rossz a jelszó!\");
}
                } else {
SendClientMessage(playerid, COLOR_RED, \"Bejelentkezés nélkül nem játhatsz.\");
        Kick(playerid);
                }
return 1;
}

dexi

  • Vendég
Dialog hiba
« Válasz #2 Dátum: 2011. december 17. - 17:47:02 »
0 Show voters
C:\\Modom\\borgv2.pwn(43) : error 025: function heading differs from prototype
C:\\Modom\\borgv2.pwn(43) : error 029: invalid expression, assumed zero
C:\\Modom\\borgv2.pwn(46) : error 021: symbol already defined: \"GetPlayerName\"
C:\\Modom\\borgv2.pwn(54) : error 010: invalid function or declaration
C:\\Modom\\borgv2.pwn(56) : error 010: invalid function or declaration
C:\\Modom\\borgv2.pwn(58) : error 021: symbol already defined: \"dini_Create\"
C:\\Modom\\borgv2.pwn(61) : warning 219: local variable \"fajl\" shadows a variable at a preceding level
C:\\Modom\\borgv2.pwn(61) : error 025: function heading differs from prototype
C:\\Modom\\borgv2.pwn(61) : error 021: symbol already defined: \"dini_Set\"
C:\\Modom\\borgv2.pwn(62) : error 021: symbol already defined: \"dini_IntSet\"
C:\\Modom\\borgv2.pwn(63) : error 021: symbol already defined: \"dini_IntSet\"
C:\\Modom\\borgv2.pwn(64) : error 021: symbol already defined: \"dini_IntSet\"
C:\\Modom\\borgv2.pwn(66) : error 010: invalid function or declaration
C:\\Modom\\borgv2.pwn(68) : error 021: symbol already defined: \"SendClientMessage\"
C:\\Modom\\borgv2.pwn(70) : error 021: symbol already defined: \"ShowPlayerDialog\"
C:\\Modom\\borgv2.pwn(72) : error 010: invalid function or declaration
C:\\Modom\\borgv2.pwn(74) : error 010: invalid function or declaration
C:\\Modom\\borgv2.pwn(76) : error 010: invalid function or declaration
C:\\Modom\\borgv2.pwn(78) : error 010: invalid function or declaration
C:\\Modom\\borgv2.pwn(81) : error 025: function heading differs from prototype
C:\\Modom\\borgv2.pwn(81) : error 021: symbol already defined: \"SetPlayerMoney\"
C:\\Modom\\borgv2.pwn(81) : warning 215: expression has no effect
C:\\Modom\\borgv2.pwn(81) : error 001: expected token: \";\", but found \")\"
C:\\Modom\\borgv2.pwn(81) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
22 Errors.

Dialog hiba
« Válasz #3 Dátum: 2011. december 17. - 17:58:44 »
+1 Show voters
Semmit nem változtattam rajt csak egy kis sor rendezést tettem hátha így átlátod a dolgot.
[pawn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new
   namee[MAX_PLAYER_NAME]; // Név tárolása.
GetPlayerName (playerid, namee, sizeof ( namee ) ); // Név lekérése.
pontok = GetPlayerScore(playerid); // \"pontok\" értékének megadása.
penz = GetPlayerMoney(playerid); // \"penz\" értékének megadása.
admin = PlayerInfo[playerid][adminlevel]; // \"admin\" értékének megadása
GetPlayerName(playerid, nev, sizeof( nev )); // \"nev\" Lekérése(név)
format(fajl,   sizeof (fajl),   \"/Registration/%s.ini\", nev); // fajl megformálása.
/*[--------------------------------------------------------------------------------------------------]*/
////////////////////////////////////////////////////////////////////////////////////////////////////
if(dialogid == r33g)
{
   if(response)
   {
      dini_Create(fajl); // Fájl létrehozása [ NÉV.ini ]
      /*--[ Adatok létrehozása ]--*/
      dini_Set(fajl, \"Pass | Jelszó\", inputtext);
      dini_IntSet(fajl, \"Money | Pénz\", penz);
      dini_IntSet(fajl, \"Level | Szint\", pontok);
      dini_IntSet(fajl, \"A-Level | A-Szint\", admin);
      /*--[ Alap adatok betöltése ]--*/
      PlayerInfo[playerid][adminlevel] = 0;
      /*--[ Szöveg kiíratása ]--*/
      SendClientMessage(playerid, COLOR_GREEN, \"Sikeresen regisztráltál!\");
      /*--[ Regisztrálás után ]--*/
      ShowPlayerDialog(playerid,lOOgin,DIALOG_STYLE_INPUT, \"Bejelentkezés\",\"\\nÍrd be a jelszavad.\",\"Belépés\",\"Kilépés\");
   }
   return 1;
}
////////////////////////////////////////////////////////////////////////////////////////////////////
if(dialogid == lOOgin)
{
   if(!response)
      if(!strcmp(dini_Get( fajl, \"Pass | Jelszó\"), inputtext ) )
      {
         /*--[ Adatok betöltése ]--*/
         SetPlayerMoney(playerid, dini_Int(fajl, \"Money | Pénz\"));
         SetPlayerScore(playerid, dini_Int(fajl, \"Level | Szint\"));
         PlayerInfo[playerid][adminlevel] = dini_Int(fajl, \"A-Level | A-Szint\");
      }
   else SendClientMessage(playerid, COLOR_RED, \"Rossz a jelszó!\");
}
////////////////////////////////////////////////////////////////////////////////////////////////////
SendClientMessage(playerid, COLOR_RED, \"Bejelentkezés nélkül nem játhatsz.\");
Kick(playerid);
return 1;
}[/pawn]
Párszor ránéztem a nyitott témáidra de sose írtam eléggé összevissza írod a kódokat lehet hogy nem látod még át õket és azért.
Próbálj úgy ránézni egy kód sorozatra hogy az sorrendben felülrõl lefelé kerül végrehajtásra egészen egy return utasításig ami az egyszeri lefutás végét jelenti.
Ha kettõ SendClientMessage szerepel a legelsõ üzenet jelenik meg elsõnek utána a második ez igaz minden egyes utasítás sorozatra.
Ebbõl kiindulva láthatod hogy a kódod végén szereplõ
[pawn]   SendClientMessage(playerid, COLOR_RED, \"Bejelentkezés nélkül nem játhatsz.\");
Kick(playerid);[/pawn]
akármilyen dialog megjelenítésekor lefut mivel semmilyen feltételhez nincs kötve, kivétel egyetlen egy dialog esetében (   if(dialogid == r33g)) mert az ez alatt szereplõ utasítás sorozat véget ér egy return 1; utasítással.
A másik dialognak meg semmilyen vége nincs így simán lefut az utána következõ Send és Kick utasítás.
Jobban nézd át, több hiba is van, én meg hiába írnám le jobb ha te tapasztalod ki.
A végén csak ismételni tudom önmagam: figyelj a sorrendre, ahogy írod egymás alá a sorokat az ugyanúgy fog lefutni játék közben is.
Természetesen az ismétlõdõ meghívások alkalmával az útelágazások miatt ( if ) ( else ) más és más utasítások hajtódnak végre.

dexi

  • Vendég
Dialog hiba
« Válasz #4 Dátum: 2011. december 17. - 18:08:32 »
0 Show voters
Köszi a tanácsot : ). Beillesztettem amit most írtál, és 22 error, ugyanaz mint Vic-énél. ( Én hülye most nézem hogy az inputtext a honlap miatt átalakult.. így már mindegyiknél 0 error.  Letesztelem Vic-ét.
E:
Vic-é sem mûködik. Kezd elmenni a kedvem az egésztõl =(
« Utoljára szerkesztve: 2011. december 17. - 18:19:47 írta dexi »

Dialog hiba
« Válasz #5 Dátum: 2011. december 17. - 18:28:00 »
0 Show voters
Idézetet írta: ɐʞzssǝlosz date=1324141124\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"14357\" data-ipsquote-contentclass=\"forums_Topic
Semmit nem változtattam rajt csak egy kis sor rendezést tettem hátha így átlátod a dolgot.
 
Ne várd hogy más megírja helyetted, én az egészet másképp írnám meg, de abból megint nem értenél szinte semmit.  Próbálkozz.

dexi

  • Vendég
Dialog hiba
« Válasz #6 Dátum: 2011. december 17. - 18:36:49 »
0 Show voters
Köszi zsolesszka, a te segítségeddel sikerült megoldanom ! : )
Az segített benne nagyrészt hogy elhelyezgetted ezeket a  zárójeleket \"{\"   \"}\". Ezt ezentúl énis használni fogom, jóval átláthatóbb: ). Zárom.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal