Szerző Téma: Pawno Hiba :S :(  (Megtekintve 666 alkalommal)

Pawno Hiba :S :(
« Dátum: 2011. Szeptember 09. - 20:42:10 »
0 Show voters
Csõ all!
[pawn]C:\\Users\\Admin\\Desktop\\nyelv.pwn(1) : error 010: invalid function or declaration
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
1 Error.[/pawn]
Erre ha valaki tudna egy megoldást írni megköszönném :)

Koncz_Norbert

  • Vendég
Pawno Hiba :S :(
« Válasz #1 Dátum: 2011. Szeptember 09. - 20:46:35 »
0 Show voters
Bemásolnád a nyelv.pwn fájlból az elsõ sorát, kérlek?

Pawno Hiba :S :(
« Válasz #2 Dátum: 2011. Szeptember 09. - 20:53:08 »
0 Show voters
itt az egész
[pawn]/==============================================================================
// Név:         NYELVKEZELÕ
// Verzió:       0.2
// Frissítve:   2010/MÁRCUIS/*
// Készítõ:     Gamestar
//==============================================================================
#tryinclude \"a_samp\"
#define TELEPORT_VERSION \"0.9\"
//==============================================================================
// Többszöri beágyazás elleni védelem
//==============================================================================
#if defined _language_included
#endinput
#endif
#define _language_included
//==============================================================================
// Konfiguráció
//==============================================================================
// Ha engedélyezni szeretnéd a párbeszédpanel módot, hagyd definiálva
#define LANGUAGE_DIALOG
// Csak akkor van rá szükség, ha párbeszédpanel mód engedélyezve van,
// az azonosítószámát pedig írd át, ha már használva van valahol
#define LANGUAGE_DIALOG_ID 3232
//==============================================================================
// Prototípusok létrehozása
//==============================================================================
forward OnPlayerChangeLanguage(playerid, newlanguageid);
forward OnServerChangeLanguage(newlanguageid);
//==============================================================================
// Direktívák
//==============================================================================
#define MAX_LANGUAGES (4)
#define MAX_LANGUAGE_SHORT_LEN (32)
#define MAX_LANGUAGE_STRINGS (300)
#define MAX_LANGUAGE_STRING_LEN (128)
#define NO_LANGUAGE (0xFFFF)
//==============================================================================
// Változók, tárolók létrehozása
//==============================================================================
enum (<<= 1)
{
LANGUAGE_FLAG_NONE,
LANGUAGE_FLAG_ACTIVE = 1,
LANGUAGE_FLAG_CHATMODE1,
LANGUAGE_FLAG_CHATMODE2
};
static
    GL_g_LanguageServerFlag,
GL_g_LanguageFlag[ MAX_LANGUAGES ],
GL_g_LanguageShort[ MAX_LANGUAGES ][ MAX_LANGUAGE_SHORT_LEN ],
GL_g_LanguageStringIdent[ MAX_LANGUAGES ][ MAX_LANGUAGE_STRINGS ][ MAX_LANGUAGE_SHORT_LEN ],
GL_g_LanguageString[ MAX_LANGUAGES ][ MAX_LANGUAGE_STRINGS ][ MAX_LANGUAGE_STRING_LEN ],
GL_g_LanguageStringCount[ MAX_LANGUAGES ],
GL_g_ServerLanguage,
GL_g_PlayerLanguage[ MAX_PLAYERS ];
/*----------------------------------------------------------------------------*-
Függvény:
Language_IsActive
Paraméterek:
languageid - a nyelv azonosítószáma
Visszatérés:
GL_g_LanguageFlag[ languageid ] & LANGUAGE_FLAG_ACTIVE; ( az azonosító aktivitása )
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_IsActive( languageid )
{
// Visszatérünk az értékkel
return GL_g_LanguageFlag[ languageid ] & LANGUAGE_FLAG_ACTIVE;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_SetActive (helyi)
Paraméterek:
languageid - a nyelv azonosítószáma
set - logikai érték
Visszatérés:
true
Megjegyzés:
Ez csak a függvénykönyvtáron belül használható, mert kavarodáshoz vezethet
-*----------------------------------------------------------------------------*/
static stock Language_SetActive( languageid, set )
{
// Ha igaz érték
if( set )
    // Aktívra állítjuk
    GL_g_LanguageFlag[ languageid ] |= LANGUAGE_FLAG_ACTIVE;
// Másképpen pedig inaktívra állítjuk
else GL_g_LanguageFlag[ languageid ] &= ~LANGUAGE_FLAG_ACTIVE;
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_LoadFormFile
Paraméterek:
languageid - a nyelv azonosítószáma
file - a fájl elérése
Visszatérés:
true - ha sikeres
NO_LANGUAGE - ha sikertelen
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_LoadFormFile( languageid, file[  ] )
{
// Ha a nyelv nem aktív
if( !Language_IsActive( languageid ) )
{
   // Sikertelen visszatérés
   return NO_LANGUAGE;
}
// Megnézzük létezik-e a fájl
if( fexist( file ) )
{
    // Segédváltozók, megnyitjuk a fájlt, olvasási szándékkal
    new File:myfile = fopen( file, filemode:io_read ),
      myline[256];
    // Addig olvassuk a fájlt, amíg lehet
    while( fread( myfile, myline, sizeof( myline ) ) )
    {
        // Ha van beolvasott szöveg
        if( myline[ 0 ] )
        {
            // Ha csak bejegyzés, akkor kihagyjuk
            if( myline[ 0 ] == \'#\') continue;
            // Különválasztjuk a 2 \"szöveget\"
            new delim = strfind( myline, \"=\" );
            // Ha van elválasztó
            if( delim != -1 )
            {
                // Segédtároló létrehozása
                new string_ident[ MAX_LANGUAGE_SHORT_LEN ];
                // Eltárolás
                for( new j = 0; j < delim; j++ )
                        string_ident[ j ] = myline[ j ];
               // Hozzáadunk egy rövidítést és egy hozzá tartozó szöveget
               Language_AddString( languageid, string_ident, myline[ delim + 1 ] );
         }
      }
   }
}
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_AddString
Paraméterek:
languageid - a nyelv azonosítószáma
ident - a szöveg rövidítése
string - a szöveg
Visszatérés:
true - ha sikeres
NO_LANGUAGE - ha sikertelen
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_AddString( languageid, ident[  ], string[  ] )
{
// Ha a nyelv nem aktív
if( !Language_IsActive( languageid ) )
{
   // Sikertelen visszatérés
   return NO_LANGUAGE;
}
// Ha már nem fér el több szöveg
if( GL_g_LanguageStringCount[ languageid ] == MAX_LANGUAGE_STRINGS )
{
    // Jelezzük
    printf(\"#%i nyelvhez már nem fér el a \'%s\' szöveg!\", languageid, ident );
    // Sikertelen visszatérés
   return NO_LANGUAGE;
}
// Létrehozunk egy változót a könnyebb kezelhetõség érdekében
new entry = GL_g_LanguageStringCount[ languageid ];
// Tároljuk a rövidítést
strmid( GL_g_LanguageStringIdent[ languageid ][ entry ], ident, 0, MAX_LANGUAGE_SHORT_LEN, MAX_LANGUAGE_SHORT_LEN );
// Tároljuk a szöveget
strmid( GL_g_LanguageString[ languageid ][ entry ], string, 0, MAX_LANGUAGE_STRING_LEN, MAX_LANGUAGE_STRING_LEN );
// Növeljük a betöltött szövegek számát
GL_g_LanguageStringCount[ languageid ]++;
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_SendMessage
Paraméterek:
playerid - játékos azonosítószáma
color - szín
ident - szöveg rövidítése
{Float,_}:... - értékek
Visszatérés:
INVALID_PLAYER_ID - ha sikertelen
true
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_SendMessage( playerid, color, ident[ ],{Float,_}:...)
{
// Ha a játékos nincs csatlakozva
if( !IsPlayerConnected( playerid ) )
{
    // Sikertlen visszatérés
    return INVALID_PLAYER_ID;
}
// Tároló létrehozása
new myString[ 128 ] = \'\\0\';
// Szöveg lekérdezése
Language_GetString( Language_GetPlayerLanguageID( playerid ), ident, myString, sizeof( myString ) );
// Formációnak a forrása: http://pastebin.com/f75c37149
new len = strlen(myString),d=0,posArg = 3,dest[512];
for( new i = 0; i < len; i++)
{
    if(myString == \'%\')

    {


        switch (myString[i+1])


        {


            case \'s\':


         {


               new pos, arg, tmppos, str[ 128 ];


                while(getarg(posArg,pos)!=\'\\0\')


               {


                    arg=getarg(posArg,pos++);


               str[tmppos]=arg;


                     tmppos++;


                }


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


            case \'i\', \'d\':


         {


             new str[128];


             format(str,sizeof(str),\"%d\",getarg(posArg));


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


            case \'f\':


         {


             new str[128];


             format(str,sizeof(str),\"%f\",getarg(posArg));


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


         case \'.\':


         {


             new len2 = myString[i+2];


             if(len2 == 0)


            {


               dest[d] = myString
;

               d++;


            }


            else


            {


                new str[32],formatting[5];


                formatting[0] = \'%\';


                formatting[1] = \'.\';


                formatting[2] = len2;


                formatting[3] = \'f\';


                format(str,sizeof(str),formatting,getarg(posArg));


                strins(dest,str,d,len2);


                d+=len;


               posArg++;


               i+= 2;


            }


         }


         default:


         {


            dest[d] = myString
;

            d++;


         }


      }


   }


   else


   {


      dest[d] = myString
;

      d++;


   }


}


SendClientMessage(playerid,color,dest);


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_SendMessage


Paraméterek:


color - szín


ident - szöveg rövidítése


{Float,_}:... - értékek


Visszatérés:


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_SendMessageToAll( color, ident[ ],{Float,_}:...)


{


// Tároló létrehozása


new myString[ 128 ] = \'\\0\';


// Szöveg lekérdezése


Language_GetString( Language_GetDefaultLanguage( ), ident, myString, sizeof( myString ) );


// Formációnak a forrása:
http://pastebin.com/f75c37149

new len = strlen(myString),d=0,posArg = 2,dest[512];


for(new i=0;i<len;i++)


{


    if(myString
== \'%\')

    {


        switch (myString[i+1])


        {


            case \'s\':


         {


               new pos,arg,tmppos;


               new str[128];


                while(getarg(posArg,pos)!=\'\\0\')


               {


                    arg=getarg(posArg,pos++);


               str[tmppos]=arg;


                     tmppos++;


                }


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


            case \'i\', \'d\':


         {


             new str[128];


             format(str,sizeof(str),\"%d\",getarg(posArg));


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


            case \'f\':


         {


             new str[128];


             format(str,sizeof(str),\"%f\",getarg(posArg));


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


         case \'.\':


         {


             new len2 = myString[i+2];


             if(len2 == 0)


            {


               dest[d] = myString
;

               d++;


            }


            else


            {


                new str[32],formatting[5];


                formatting[0] = \'%\';


                formatting[1] = \'.\';


                formatting[2] = len2;


                formatting[3] = \'f\';


                format(str,sizeof(str),formatting,getarg(posArg));


                strins(dest,str,d,len2);


                d+=len;


               posArg++;


               i+= 2;


            }


         }


         default:


         {


            dest[d] = myString
;

            d++;


         }


      }


   }


   else


   {


      dest[d] = myString
;

      d++;


   }


}


SendClientMessageToAll(color,dest);


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_GetString


Paraméterek:


languageid - a nyelv azonosítószáma


ident - a szöveg rövidítése


dest - célkarakterlánc


len - célkarakterlánc mérete


Visszatérés:


g_Language_Active[ languageid ] ( az azonosító aktivitása )


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_GetString( languageid, ident[  ], dest[  ], len )


{


// Ha a nyelv nem aktív


if( !Language_IsActive( languageid ) )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


// Segédváltozó


new j;


// Megkeressük a rövidítést


for( j = 0; j < MAX_LANGUAGE_STRINGS; j++ )


   if( !strcmp( GL_g_LanguageStringIdent[ languageid ][ j ], ident ))


       break;


// Ha nem lett meg


if( j == MAX_LANGUAGE_STRINGS )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


    // Beírjuk a célkarakterláncba


     strmid( dest, GL_g_LanguageString[ languageid ][ j ], 0, strlen( GL_g_LanguageString[ languageid ][ j ] ), len );


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_Add


Paraméterek:


languageshort - nyelv rövidítése (pl. English - ENG, German - GER)


Visszatérés:


true - ha sikeres


NO_LANGUAGE - ha sikertelen


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_Add( languageshort[  ] )


{


// Segédváltozó


new languageid;


// Ciklus segítségével a legközelebbi szabad azonosító megkeresése


for( languageid = 0; languageid < MAX_LANGUAGES; languageid++ )


    if( !Language_IsActive( languageid ) )


      break;


// Ha túllépi a korlátozást, akkor sikertelen


if( languageid == MAX_LANGUAGES )


    return NO_LANGUAGE;


// Megjegyezzük, hogy aktív


Language_SetActive( languageid, 1 );


// Megadjuk a nyelv rövidítését


Language_SetShort( languageid, languageshort );


// Visszatérés


return languageid;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_SetShort


Paraméterek:


languageid - a nyelv azonosítószáma


languageshort - a nyelv új rövidítése


Visszatérés:


    NO_LANGUAGE - ha sikertelen


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_SetShort( languageid, languageshort[  ] )


{


    // Ha a nyelv nem aktív


if( !Language_IsActive( languageid ) )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


// Rövidítés módosítása


strmid( GL_g_LanguageShort[ languageid ], languageshort, 0, MAX_LANGUAGE_SHORT_LEN, MAX_LANGUAGE_SHORT_LEN );


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_GetShort


Paraméterek:


languageid - a nyelv azonosítószáma


dest - cél


len - hossz


Visszatérés:


    NO_LANGUAGE - ha sikertelen


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_GetShort( languageid, dest[  ], len )


{


    // Ha a nyelv nem aktív


if( !Language_IsActive( languageid ) )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


// Rövidítés tárolása


strmid( dest, GL_g_LanguageShort[ languageid ], 0, MAX_LANGUAGE_SHORT_LEN, len );


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_GetCount


Paraméterek:


-


Visszatérés:


    count


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_GetCount( )


{


// Segédváltozó


new count;


// Ciklus indítása, és a változó értékének növelése az aktívoknál


for( new j = 0; j < MAX_LANGUAGES; j++ ) if( Language_IsActive( j ) ) count++;


// Visszatérés


return count;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_SetDefaultLanguage


Paraméterek:


languageid - a nyelv azonosítószáma


Visszatérés:


NO_LANGUAGE - ha sikertelen


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_SetDefaultLanguage( languageid )


{


    // Ha a nyelv nem aktív


if( !Language_IsActive( languageid ) )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


// Átállítjuk a nyelvet


GL_g_ServerLanguage = languageid;


// Meghívás


if(funcidx(\"OnServerChangeLanguage\"))


{


    CallLocalFunction(\"OnServerChangeLanguage\",\"i\",languageid);


}


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_GetDefaultLanguage


Paraméterek:


-


Visszatérés:


    GL_g_ServerLanguage


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_GetDefaultLanguage( )


{


// Visszatérés


return GL_g_ServerLanguage;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_SetPlayerLanguage


Paraméterek:


playerid - a játékos azonosítószáma


languageid - a nyelv azonosítószáma


Visszatérés:


NO_LANGUAGE - ha sikertelen


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_SetPlayerLanguage( playerid, languageid )


{


    // Ha a játékos/nyelv nem aktív vagy nincs elég nyelv


if( !IsPlayerConnected( playerid ) || !Language_IsActive( languageid ) )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


// Modosítjuk a nyelvét


GL_g_PlayerLanguage[ playerid ] = languageid;


// Meghívás


if(funcidx(\"OnPlayerChangeLanguage\"))


{


    CallLocalFunction(\"OnPlayerChangeLanguage\",\"ii\",playerid,languageid);


}


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_GetPlayerLanguageID


Paraméterek:


playerid - a játékos azonosítószáma


Visszatérés:


NO_LANGUAGE - ha sikertelen


GL_g_PlayerLanguage[ playerid ]


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_GetPlayerLanguageID( playerid )


{


// Ha a játékos nem aktív


if( !IsPlayerConnected( playerid ) )


{


    // Sikertelen visszatérés


    return NO_LANGUAGE;


}


// Visszatérés


return GL_g_PlayerLanguage[ playerid ];


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_ToggleChatLanguageTag


Paraméterek:


toggle - logikai érték


Visszatérés:


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_ToggleChatLanguageTag( toggle )


{


    // Ha igaz érték


if( toggle )


    // Aktívra állítjuk


    GL_g_LanguageServerFlag |= LANGUAGE_FLAG_CHATMODE1;


// Másképpen pedig inaktívra állítjuk


else GL_g_LanguageServerFlag &= ~LANGUAGE_FLAG_CHATMODE1;


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_IsChatLanguageTag


Paraméterek:


-


Visszatérés:


GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE1


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_IsChatLanguageTag( )


{


// Visszatérés


return GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE1;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_ToggleLanguageChat


Paraméterek:


toggle - logikai érték


Visszatérés:


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_ToggleLanguageChat( toggle )


{


    // Ha igaz érték


if( toggle )


    // Aktívra állítjuk


    GL_g_LanguageServerFlag |= LANGUAGE_FLAG_CHATMODE2;


// Másképpen pedig inaktívra állítjuk


else GL_g_LanguageServerFlag &= ~LANGUAGE_FLAG_CHATMODE2;


// Visszatérés


return 1;


}


/*----------------------------------------------------------------------------*-


Függvény:


    Language_IsLanguageChat


Paraméterek:


-


Visszatérés:


GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE2


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_IsLanguageChat( )


{


// Visszatérés


return GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE2;


}


public OnPlayerConnect( playerid )


{


// Kiírjuk, hogy válthat nyelvet


SendClientMessage( playerid, 0xFF3DF8AA, \"To change the language use \'/language\' command.\" );


// Beállítjuk a nyelvét az alapméretezettre


Language_SetPlayerLanguage( playerid, Language_GetDefaultLanguage( ) );


// Ha megindexelhetõ


if (funcidx(\"Language_OnPlayerConnect\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnPlayerConnect\", \"i\", playerid);


}


return 1;


}


public OnPlayerText( playerid, text[  ] )


{


// Ha a nyelvi beszélgetõ ablak (1 mód) engedélyezve van


if( Language_IsChatLanguageTag( ) )


{


    // Tárolók létrehozása


    new myString[ 128 ],


        myShort[ MAX_LANGUAGE_SHORT_LEN ];


    // Rövidítés tárolása


    Language_GetShort( Language_GetPlayerLanguageID( playerid ), myShort, sizeof( myShort ) );


    // Formázás


    format( myString, sizeof( myString ), \"[%s]: %s\", myShort, text );


    // Ha a 2. beszélgetõablak mód engedélyezve van, azaz, csak


    // az azonos nyelvûek látják egymás üzeneteit


    if( Language_IsLanguageChat( ) )


    {


        // Ciklus


        for( new j = 0; j < GetMaxPlayers( ); j++ )


        {


            // Ha a 2 nyelv egyezik


            if( Language_GetPlayerLanguageID( playerid ) == Language_GetPlayerLanguageID( j ) )


            {


                // Elküldés


            SendPlayerMessageToPlayer( j, playerid, myString );


            // Visszatérés


            return 0;


         }


      }


   }


    // Üzenet elküldése mindenkinek


    SendPlayerMessageToAll( playerid, myString );


    // Visszatérés


    return 0;


}


// Ha megindexelhetõ


if (funcidx(\"Language_OnPlayerText\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnPlayerText\", \"is\", playerid, text);


}


return 1;


}


public OnFilterScriptInit( )


{


    // 2 mód letiltása


Language_ToggleChatLanguageTag( 0 );


Language_ToggleLanguageChat( 0 );


// Kijelzés


print(\"*** Nyelvkezelõ 0.1 by Gamestar betöltve ***\");


// Ha megindexelhetõ


if (funcidx(\"Language_OnFilterScriptInit\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnFilterScriptInit\", \"\");


}


return 1;


}


public OnGameModeInit( )


{


    // 2 mód letiltása


Language_ToggleChatLanguageTag( 0 );


Language_ToggleLanguageChat( 0 );


// Kijelzés


print(\"*** Nyelvkezelõ 0.1 by Gamestar betöltve ***\");


// Ha megindexelhetõ


if (funcidx(\"Language_OnGameModeInit\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnGameModeInit\", \"\");


}


return 1;


}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])


{


// Ha a párbeszédpanelazonosító egyezik


if( dialogid == LANGUAGE_DIALOG_ID )


{


    // Ha igennel válaszolt


    if( response == 1 )


   {


          // Tárolók létrehozása


          new GL_l_Short[ MAX_LANGUAGE_SHORT_LEN ], myString[ 128 ];


            // Tároljuk a rövidítését


            Language_GetShort( listitem, GL_l_Short, sizeof( GL_l_Short ) );


       // Formázás


      format( myString, sizeof( myString ), \"Language succesfull changed to (short): %s\", GL_l_Short );


      // Üzenet


      SendClientMessage( playerid, 0xFFFFFFAA, myString );


      // Módosítjuk a nyelvét


      Language_SetPlayerLanguage( playerid, listitem );


   }


   // Ha nem igennel válaszolt


   else


   {


      // Nem teszünk semmit


   }


}


// Ha megindexelhetõ


if (funcidx(\"Language_OnDialogResponse\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnDialogResponse\", \"iiiis\", playerid, dialogid, response, listitem, inputtext );


}


return 0;


}


#define language_dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


public OnPlayerCommandText( playerid, cmdtext[  ] )


{


// Parancs


language_dcmd(language,strlen(\"language\"),cmdtext);


// Ha megindexelhetõ


if (funcidx(\"Language_OnPlayerCommandText\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnPlayerCommandText\", \"is\", playerid, cmdtext );


}


return 0;


}


dcmd_language( playerid, params[  ] )


{


#if defined LANGUAGE_DIALOG


#pragma unused params


// Tárolók létrehozása


    new GL_l_Short[ MAX_LANGUAGE_SHORT_LEN ],myString[ 256 ];


// Ciklust indítunk


    for( new j = 0; j < MAX_LANGUAGES; j++ )


     {


         // Ha aktív


        if( Language_IsActive( j ) )


         {


             // Tároljuk a rövidítését


            Language_GetShort( j, GL_l_Short, sizeof( GL_l_Short ) );


      // Formázás


      format( myString, sizeof( myString ), \"%s\\n%s\", myString, GL_l_Short );


   }


}


ShowPlayerDialog( playerid, LANGUAGE_DIALOG_ID, DIALOG_STYLE_LIST, \"MI - Select Language\", myString, \"Apply\", \"Cancel\" );


#else


// Ha nem adott meg paramétert


if( !params[ 0 ] )


{


    // Tárolók létrehozása


    new


      GL_l_Short[ MAX_LANGUAGE_SHORT_LEN ],


      myString[ 32 ],


      counter = 1;


   // Üzenet


        SendClientMessage( playerid, 0xFFFF00AA, \"Language list:\" );


    // Ciklust indítunk

Koncz_Norbert

  • Vendég
Pawno Hiba :S :(
« Válasz #3 Dátum: 2011. Szeptember 09. - 20:54:47 »
0 Show voters
[pawn]
//==============================================================================
// Név:         NYELVKEZELÕ
// Verzió:       0.2
// Frissítve:   2010/MÁRCUIS/*
// Készítõ:     Gamestar
//==============================================================================
#tryinclude \"a_samp\"
#define TELEPORT_VERSION \"0.9\"
//==============================================================================
// Többszöri beágyazás elleni védelem
//==============================================================================
#if defined _language_included
#endinput
#endif
#define _language_included
//==============================================================================
// Konfiguráció
//==============================================================================
// Ha engedélyezni szeretnéd a párbeszédpanel módot, hagyd definiálva
#define LANGUAGE_DIALOG
// Csak akkor van rá szükség, ha párbeszédpanel mód engedélyezve van,
// az azonosítószámát pedig írd át, ha már használva van valahol
#define LANGUAGE_DIALOG_ID 3232
//==============================================================================
// Prototípusok létrehozása
//==============================================================================
forward OnPlayerChangeLanguage(playerid, newlanguageid);
forward OnServerChangeLanguage(newlanguageid);
//==============================================================================
// Direktívák
//==============================================================================
#define MAX_LANGUAGES (4)
#define MAX_LANGUAGE_SHORT_LEN (32)
#define MAX_LANGUAGE_STRINGS (300)
#define MAX_LANGUAGE_STRING_LEN (128)
#define NO_LANGUAGE (0xFFFF)
//==============================================================================
// Változók, tárolók létrehozása
//==============================================================================
enum (<<= 1)
{
LANGUAGE_FLAG_NONE,
LANGUAGE_FLAG_ACTIVE = 1,
LANGUAGE_FLAG_CHATMODE1,
LANGUAGE_FLAG_CHATMODE2
};
static
    GL_g_LanguageServerFlag,
GL_g_LanguageFlag[ MAX_LANGUAGES ],
GL_g_LanguageShort[ MAX_LANGUAGES ][ MAX_LANGUAGE_SHORT_LEN ],
GL_g_LanguageStringIdent[ MAX_LANGUAGES ][ MAX_LANGUAGE_STRINGS ][ MAX_LANGUAGE_SHORT_LEN ],
GL_g_LanguageString[ MAX_LANGUAGES ][ MAX_LANGUAGE_STRINGS ][ MAX_LANGUAGE_STRING_LEN ],
GL_g_LanguageStringCount[ MAX_LANGUAGES ],
GL_g_ServerLanguage,
GL_g_PlayerLanguage[ MAX_PLAYERS ];
/*----------------------------------------------------------------------------*-
Függvény:
Language_IsActive
Paraméterek:
languageid - a nyelv azonosítószáma
Visszatérés:
GL_g_LanguageFlag[ languageid ] & LANGUAGE_FLAG_ACTIVE; ( az azonosító aktivitása )
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_IsActive( languageid )
{
// Visszatérünk az értékkel
return GL_g_LanguageFlag[ languageid ] & LANGUAGE_FLAG_ACTIVE;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_SetActive (helyi)
Paraméterek:
languageid - a nyelv azonosítószáma
set - logikai érték
Visszatérés:
true
Megjegyzés:
Ez csak a függvénykönyvtáron belül használható, mert kavarodáshoz vezethet
-*----------------------------------------------------------------------------*/
static stock Language_SetActive( languageid, set )
{
// Ha igaz érték
if( set )
    // Aktívra állítjuk
    GL_g_LanguageFlag[ languageid ] |= LANGUAGE_FLAG_ACTIVE;
// Másképpen pedig inaktívra állítjuk
else GL_g_LanguageFlag[ languageid ] &= ~LANGUAGE_FLAG_ACTIVE;
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_LoadFormFile
Paraméterek:
languageid - a nyelv azonosítószáma
file - a fájl elérése
Visszatérés:
true - ha sikeres
NO_LANGUAGE - ha sikertelen
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_LoadFormFile( languageid, file[  ] )
{
// Ha a nyelv nem aktív
if( !Language_IsActive( languageid ) )
{
   // Sikertelen visszatérés
   return NO_LANGUAGE;
}
// Megnézzük létezik-e a fájl
if( fexist( file ) )
{
    // Segédváltozók, megnyitjuk a fájlt, olvasási szándékkal
    new File:myfile = fopen( file, filemode:io_read ),
      myline[256];
    // Addig olvassuk a fájlt, amíg lehet
    while( fread( myfile, myline, sizeof( myline ) ) )
    {
        // Ha van beolvasott szöveg
        if( myline[ 0 ] )
        {
            // Ha csak bejegyzés, akkor kihagyjuk
            if( myline[ 0 ] == \'#\') continue;
            // Különválasztjuk a 2 \"szöveget\"
            new delim = strfind( myline, \"=\" );
            // Ha van elválasztó
            if( delim != -1 )
            {
                // Segédtároló létrehozása
                new string_ident[ MAX_LANGUAGE_SHORT_LEN ];
                // Eltárolás
                for( new j = 0; j < delim; j++ )
                        string_ident[ j ] = myline[ j ];
               // Hozzáadunk egy rövidítést és egy hozzá tartozó szöveget
               Language_AddString( languageid, string_ident, myline[ delim + 1 ] );
         }
      }
   }
}
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_AddString
Paraméterek:
languageid - a nyelv azonosítószáma
ident - a szöveg rövidítése
string - a szöveg
Visszatérés:
true - ha sikeres
NO_LANGUAGE - ha sikertelen
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_AddString( languageid, ident[  ], string[  ] )
{
// Ha a nyelv nem aktív
if( !Language_IsActive( languageid ) )
{
   // Sikertelen visszatérés
   return NO_LANGUAGE;
}
// Ha már nem fér el több szöveg
if( GL_g_LanguageStringCount[ languageid ] == MAX_LANGUAGE_STRINGS )
{
    // Jelezzük
    printf(\"#%i nyelvhez már nem fér el a \'%s\' szöveg!\", languageid, ident );
    // Sikertelen visszatérés
   return NO_LANGUAGE;
}
// Létrehozunk egy változót a könnyebb kezelhetõség érdekében
new entry = GL_g_LanguageStringCount[ languageid ];
// Tároljuk a rövidítést
strmid( GL_g_LanguageStringIdent[ languageid ][ entry ], ident, 0, MAX_LANGUAGE_SHORT_LEN, MAX_LANGUAGE_SHORT_LEN );
// Tároljuk a szöveget
strmid( GL_g_LanguageString[ languageid ][ entry ], string, 0, MAX_LANGUAGE_STRING_LEN, MAX_LANGUAGE_STRING_LEN );
// Növeljük a betöltött szövegek számát
GL_g_LanguageStringCount[ languageid ]++;
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_SendMessage
Paraméterek:
playerid - játékos azonosítószáma
color - szín
ident - szöveg rövidítése
{Float,_}:... - értékek
Visszatérés:
INVALID_PLAYER_ID - ha sikertelen
true
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_SendMessage( playerid, color, ident[ ],{Float,_}:...)
{
// Ha a játékos nincs csatlakozva
if( !IsPlayerConnected( playerid ) )
{
    // Sikertlen visszatérés
    return INVALID_PLAYER_ID;
}
// Tároló létrehozása
new myString[ 128 ] = \'\\0\';
// Szöveg lekérdezése
Language_GetString( Language_GetPlayerLanguageID( playerid ), ident, myString, sizeof( myString ) );
// Formációnak a forrása: http://pastebin.com/f75c37149
new len = strlen(myString),d=0,posArg = 3,dest[512];
for( new i = 0; i < len; i++)
{
    if(myString == \'%\')

    {


        switch (myString[i+1])


        {


            case \'s\':


         {


               new pos, arg, tmppos, str[ 128 ];


                while(getarg(posArg,pos)!=\'\\0\')


               {


                    arg=getarg(posArg,pos++);


               str[tmppos]=arg;


                     tmppos++;


                }


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


            case \'i\', \'d\':


         {


             new str[128];


             format(str,sizeof(str),\"%d\",getarg(posArg));


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


            case \'f\':


         {


             new str[128];


             format(str,sizeof(str),\"%f\",getarg(posArg));


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


         case \'.\':


         {


             new len2 = myString[i+2];


             if(len2 == 0)


            {


               dest[d] = myString
;

               d++;


            }


            else


            {


                new str[32],formatting[5];


                formatting[0] = \'%\';


                formatting[1] = \'.\';


                formatting[2] = len2;


                formatting[3] = \'f\';


                format(str,sizeof(str),formatting,getarg(posArg));


                strins(dest,str,d,len2);


                d+=len;


               posArg++;


               i+= 2;


            }


         }


         default:


         {


            dest[d] = myString
;

            d++;


         }


      }


   }


   else


   {


      dest[d] = myString
;

      d++;


   }


}


SendClientMessage(playerid,color,dest);


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_SendMessage


Paraméterek:


color - szín


ident - szöveg rövidítése


{Float,_}:... - értékek


Visszatérés:


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_SendMessageToAll( color, ident[ ],{Float,_}:...)


{


// Tároló létrehozása


new myString[ 128 ] = \'\\0\';


// Szöveg lekérdezése


Language_GetString( Language_GetDefaultLanguage( ), ident, myString, sizeof( myString ) );


// Formációnak a forrása:
http://pastebin.com/f75c37149

new len = strlen(myString),d=0,posArg = 2,dest[512];


for(new i=0;i<len;i++)


{


    if(myString
== \'%\')

    {


        switch (myString[i+1])


        {


            case \'s\':


         {


               new pos,arg,tmppos;


               new str[128];


                while(getarg(posArg,pos)!=\'\\0\')


               {


                    arg=getarg(posArg,pos++);


               str[tmppos]=arg;


                     tmppos++;


                }


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


            case \'i\', \'d\':


         {


             new str[128];


             format(str,sizeof(str),\"%d\",getarg(posArg));


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


            case \'f\':


         {


             new str[128];


             format(str,sizeof(str),\"%f\",getarg(posArg));


             strins(dest,str,d,strlen(str));


             d+=strlen(str);


            posArg++;


            i++;


         }


         case \'.\':


         {


             new len2 = myString[i+2];


             if(len2 == 0)


            {


               dest[d] = myString
;

               d++;


            }


            else


            {


                new str[32],formatting[5];


                formatting[0] = \'%\';


                formatting[1] = \'.\';


                formatting[2] = len2;


                formatting[3] = \'f\';


                format(str,sizeof(str),formatting,getarg(posArg));


                strins(dest,str,d,len2);


                d+=len;


               posArg++;


               i+= 2;


            }


         }


         default:


         {


            dest[d] = myString
;

            d++;


         }


      }


   }


   else


   {


      dest[d] = myString
;

      d++;


   }


}


SendClientMessageToAll(color,dest);


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_GetString


Paraméterek:


languageid - a nyelv azonosítószáma


ident - a szöveg rövidítése


dest - célkarakterlánc


len - célkarakterlánc mérete


Visszatérés:


g_Language_Active[ languageid ] ( az azonosító aktivitása )


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_GetString( languageid, ident[  ], dest[  ], len )


{


// Ha a nyelv nem aktív


if( !Language_IsActive( languageid ) )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


// Segédváltozó


new j;


// Megkeressük a rövidítést


for( j = 0; j < MAX_LANGUAGE_STRINGS; j++ )


   if( !strcmp( GL_g_LanguageStringIdent[ languageid ][ j ], ident ))


       break;


// Ha nem lett meg


if( j == MAX_LANGUAGE_STRINGS )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


    // Beírjuk a célkarakterláncba


     strmid( dest, GL_g_LanguageString[ languageid ][ j ], 0, strlen( GL_g_LanguageString[ languageid ][ j ] ), len );


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_Add


Paraméterek:


languageshort - nyelv rövidítése (pl. English - ENG, German - GER)


Visszatérés:


true - ha sikeres


NO_LANGUAGE - ha sikertelen


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_Add( languageshort[  ] )


{


// Segédváltozó


new languageid;


// Ciklus segítségével a legközelebbi szabad azonosító megkeresése


for( languageid = 0; languageid < MAX_LANGUAGES; languageid++ )


    if( !Language_IsActive( languageid ) )


      break;


// Ha túllépi a korlátozást, akkor sikertelen


if( languageid == MAX_LANGUAGES )


    return NO_LANGUAGE;


// Megjegyezzük, hogy aktív


Language_SetActive( languageid, 1 );


// Megadjuk a nyelv rövidítését


Language_SetShort( languageid, languageshort );


// Visszatérés


return languageid;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_SetShort


Paraméterek:


languageid - a nyelv azonosítószáma


languageshort - a nyelv új rövidítése


Visszatérés:


    NO_LANGUAGE - ha sikertelen


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_SetShort( languageid, languageshort[  ] )


{


    // Ha a nyelv nem aktív


if( !Language_IsActive( languageid ) )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


// Rövidítés módosítása


strmid( GL_g_LanguageShort[ languageid ], languageshort, 0, MAX_LANGUAGE_SHORT_LEN, MAX_LANGUAGE_SHORT_LEN );


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_GetShort


Paraméterek:


languageid - a nyelv azonosítószáma


dest - cél


len - hossz


Visszatérés:


    NO_LANGUAGE - ha sikertelen


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_GetShort( languageid, dest[  ], len )


{


    // Ha a nyelv nem aktív


if( !Language_IsActive( languageid ) )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


// Rövidítés tárolása


strmid( dest, GL_g_LanguageShort[ languageid ], 0, MAX_LANGUAGE_SHORT_LEN, len );


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_GetCount


Paraméterek:


-


Visszatérés:


    count


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_GetCount( )


{


// Segédváltozó


new count;


// Ciklus indítása, és a változó értékének növelése az aktívoknál


for( new j = 0; j < MAX_LANGUAGES; j++ ) if( Language_IsActive( j ) ) count++;


// Visszatérés


return count;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_SetDefaultLanguage


Paraméterek:


languageid - a nyelv azonosítószáma


Visszatérés:


NO_LANGUAGE - ha sikertelen


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_SetDefaultLanguage( languageid )


{


    // Ha a nyelv nem aktív


if( !Language_IsActive( languageid ) )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


// Átállítjuk a nyelvet


GL_g_ServerLanguage = languageid;


// Meghívás


if(funcidx(\"OnServerChangeLanguage\"))


{


    CallLocalFunction(\"OnServerChangeLanguage\",\"i\",languageid);


}


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_GetDefaultLanguage


Paraméterek:


-


Visszatérés:


    GL_g_ServerLanguage


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_GetDefaultLanguage( )


{


// Visszatérés


return GL_g_ServerLanguage;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_SetPlayerLanguage


Paraméterek:


playerid - a játékos azonosítószáma


languageid - a nyelv azonosítószáma


Visszatérés:


NO_LANGUAGE - ha sikertelen


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_SetPlayerLanguage( playerid, languageid )


{


    // Ha a játékos/nyelv nem aktív vagy nincs elég nyelv


if( !IsPlayerConnected( playerid ) || !Language_IsActive( languageid ) )


{


   // Sikertelen visszatérés


   return NO_LANGUAGE;


}


// Modosítjuk a nyelvét


GL_g_PlayerLanguage[ playerid ] = languageid;


// Meghívás


if(funcidx(\"OnPlayerChangeLanguage\"))


{


    CallLocalFunction(\"OnPlayerChangeLanguage\",\"ii\",playerid,languageid);


}


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_GetPlayerLanguageID


Paraméterek:


playerid - a játékos azonosítószáma


Visszatérés:


NO_LANGUAGE - ha sikertelen


GL_g_PlayerLanguage[ playerid ]


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_GetPlayerLanguageID( playerid )


{


// Ha a játékos nem aktív


if( !IsPlayerConnected( playerid ) )


{


    // Sikertelen visszatérés


    return NO_LANGUAGE;


}


// Visszatérés


return GL_g_PlayerLanguage[ playerid ];


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_ToggleChatLanguageTag


Paraméterek:


toggle - logikai érték


Visszatérés:


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_ToggleChatLanguageTag( toggle )


{


    // Ha igaz érték


if( toggle )


    // Aktívra állítjuk


    GL_g_LanguageServerFlag |= LANGUAGE_FLAG_CHATMODE1;


// Másképpen pedig inaktívra állítjuk


else GL_g_LanguageServerFlag &= ~LANGUAGE_FLAG_CHATMODE1;


// Visszatérés


return true;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_IsChatLanguageTag


Paraméterek:


-


Visszatérés:


GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE1


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_IsChatLanguageTag( )


{


// Visszatérés


return GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE1;


}


/*----------------------------------------------------------------------------*-


Függvény:


Language_ToggleLanguageChat


Paraméterek:


toggle - logikai érték


Visszatérés:


true


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_ToggleLanguageChat( toggle )


{


    // Ha igaz érték


if( toggle )


    // Aktívra állítjuk


    GL_g_LanguageServerFlag |= LANGUAGE_FLAG_CHATMODE2;


// Másképpen pedig inaktívra állítjuk


else GL_g_LanguageServerFlag &= ~LANGUAGE_FLAG_CHATMODE2;


// Visszatérés


return 1;


}


/*----------------------------------------------------------------------------*-


Függvény:


    Language_IsLanguageChat


Paraméterek:


-


Visszatérés:


GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE2


Megjegyzés:


-


-*----------------------------------------------------------------------------*/


stock Language_IsLanguageChat( )


{


// Visszatérés


return GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE2;


}


public OnPlayerConnect( playerid )


{


// Kiírjuk, hogy válthat nyelvet


SendClientMessage( playerid, 0xFF3DF8AA, \"To change the language use \'/language\' command.\" );


// Beállítjuk a nyelvét az alapméretezettre


Language_SetPlayerLanguage( playerid, Language_GetDefaultLanguage( ) );


// Ha megindexelhetõ


if (funcidx(\"Language_OnPlayerConnect\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnPlayerConnect\", \"i\", playerid);


}


return 1;


}


public OnPlayerText( playerid, text[  ] )


{


// Ha a nyelvi beszélgetõ ablak (1 mód) engedélyezve van


if( Language_IsChatLanguageTag( ) )


{


    // Tárolók létrehozása


    new myString[ 128 ],


        myShort[ MAX_LANGUAGE_SHORT_LEN ];


    // Rövidítés tárolása


    Language_GetShort( Language_GetPlayerLanguageID( playerid ), myShort, sizeof( myShort ) );


    // Formázás


    format( myString, sizeof( myString ), \"[%s]: %s\", myShort, text );


    // Ha a 2. beszélgetõablak mód engedélyezve van, azaz, csak


    // az azonos nyelvûek látják egymás üzeneteit


    if( Language_IsLanguageChat( ) )


    {


        // Ciklus


        for( new j = 0; j < GetMaxPlayers( ); j++ )


        {


            // Ha a 2 nyelv egyezik


            if( Language_GetPlayerLanguageID( playerid ) == Language_GetPlayerLanguageID( j ) )


            {


                // Elküldés


            SendPlayerMessageToPlayer( j, playerid, myString );


            // Visszatérés


            return 0;


         }


      }


   }


    // Üzenet elküldése mindenkinek


    SendPlayerMessageToAll( playerid, myString );


    // Visszatérés


    return 0;


}


// Ha megindexelhetõ


if (funcidx(\"Language_OnPlayerText\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnPlayerText\", \"is\", playerid, text);


}


return 1;


}


public OnFilterScriptInit( )


{


    // 2 mód letiltása


Language_ToggleChatLanguageTag( 0 );


Language_ToggleLanguageChat( 0 );


// Kijelzés


print(\"*** Nyelvkezelõ 0.1 by Gamestar betöltve ***\");


// Ha megindexelhetõ


if (funcidx(\"Language_OnFilterScriptInit\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnFilterScriptInit\", \"\");


}


return 1;


}


public OnGameModeInit( )


{


    // 2 mód letiltása


Language_ToggleChatLanguageTag( 0 );


Language_ToggleLanguageChat( 0 );


// Kijelzés


print(\"*** Nyelvkezelõ 0.1 by Gamestar betöltve ***\");


// Ha megindexelhetõ


if (funcidx(\"Language_OnGameModeInit\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnGameModeInit\", \"\");


}


return 1;


}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])


{


// Ha a párbeszédpanelazonosító egyezik


if( dialogid == LANGUAGE_DIALOG_ID )


{


    // Ha igennel válaszolt


    if( response == 1 )


   {


          // Tárolók létrehozása


          new GL_l_Short[ MAX_LANGUAGE_SHORT_LEN ], myString[ 128 ];


            // Tároljuk a rövidítését


            Language_GetShort( listitem, GL_l_Short, sizeof( GL_l_Short ) );


       // Formázás


      format( myString, sizeof( myString ), \"Language succesfull changed to (short): %s\", GL_l_Short );


      // Üzenet


      SendClientMessage( playerid, 0xFFFFFFAA, myString );


      // Módosítjuk a nyelvét


      Language_SetPlayerLanguage( playerid, listitem );


   }


   // Ha nem igennel válaszolt


   else


   {


      // Nem teszünk semmit


   }


}


// Ha megindexelhetõ


if (funcidx(\"Language_OnDialogResponse\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnDialogResponse\", \"iiiis\", playerid, dialogid, response, listitem, inputtext );


}


return 0;


}


#define language_dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


public OnPlayerCommandText( playerid, cmdtext[  ] )


{


// Parancs


language_dcmd(language,strlen(\"language\"),cmdtext);


// Ha megindexelhetõ


if (funcidx(\"Language_OnPlayerCommandText\") != -1)


{


    // Visszatérés


   return CallLocalFunction(\"Language_OnPlayerCommandText\", \"is\", playerid, cmdtext );


}


return 0;


}


dcmd_language( playerid, params[  ] )


{


#if defined LANGUAGE_DIALOG


#pragma unused params


// Tárolók létrehozása


    new GL_l_Short[ MAX_LANGUAGE_SHORT_LEN ],myString[ 256 ];


// Ciklust indítunk


    for( new j = 0; j < MAX_LANGUAGES; j++ )


     {


         // Ha aktív


        if( Language_IsActive( j ) )


         {


             // Tároljuk a rövidítését


            Language_GetShort( j, GL_l_Short, sizeof( GL_l_Short ) );


      // Formázás


      format( myString, sizeof( myString ), \"%s\\n%s\", myString, GL_l_Short );


   }


}


ShowPlayerDialog( playerid, LANGUAGE_DIALOG_ID, DIALOG_STYLE_LIST, \"MI - Select Language\", myString, \"Apply\", \"Cancel\" );


#else


// Ha nem adott meg paramétert


if( !params[ 0 ] )


{


    // Tárolók létrehozása


    new


      GL_l_Short[ MAX_LANGUAGE_SHORT_LEN ],


      myString[ 32 ],


      counter = 1;


   // Üzenet


        SendClientMessage( playerid, 0xFFFF00AA, \"Language list:\" );


    // Ciklust indítunk

Pawno Hiba :S :(
« Válasz #4 Dátum: 2011. Szeptember 09. - 21:02:25 »
0 Show voters
[pawn]C:\\Users\\Admin\\Desktop\\Drift szeró\\filterscripts\\nyelv.pwn(224) : error 021: symbol already defined: \"SendClientMessage\"
C:\\Users\\Admin\\Desktop\\Drift szeró\\filterscripts\\nyelv.pwn(224 -- 317) : error 010: invalid function or declaration
C:\\Users\\Admin\\Desktop\\Drift szeró\\filterscripts\\nyelv.pwn(332) : error 021: symbol already defined: \"SendClientMessageToAll\"
C:\\Users\\Admin\\Desktop\\Drift szeró\\filterscripts\\nyelv.pwn(332 -- 419) : error 010: invalid function or declaration
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
4 Errors.
[/pawn]

Koncz_Norbert

  • Vendég
Pawno Hiba :S :(
« Válasz #5 Dátum: 2011. Szeptember 09. - 21:29:49 »
0 Show voters

//==============================================================================
// Név:         NYELVKEZELÕ
// Verzió:       0.2
// Frissítve:   2010/MÁRCUIS/*
// Készítõ:     Gamestar
//==============================================================================
#tryinclude \"a_samp\"
#define TELEPORT_VERSION \"0.9\"
//==============================================================================
// Többszöri beágyazás elleni védelem
//==============================================================================
#if defined _language_included
#endinput
#endif
#define _language_included
//==============================================================================
// Konfiguráció
//==============================================================================
// Ha engedélyezni szeretnéd a párbeszédpanel módot, hagyd definiálva
#define LANGUAGE_DIALOG
// Csak akkor van rá szükség, ha párbeszédpanel mód engedélyezve van,
// az azonosítószámát pedig írd át, ha már használva van valahol
#define LANGUAGE_DIALOG_ID 3232
//==============================================================================
// Prototípusok létrehozása
//==============================================================================
forward OnPlayerChangeLanguage(playerid, newlanguageid);
forward OnServerChangeLanguage(newlanguageid);
//==============================================================================
// Direktívák
//==============================================================================
#define MAX_LANGUAGES (4)
#define MAX_LANGUAGE_SHORT_LEN (32)
#define MAX_LANGUAGE_STRINGS (300)
#define MAX_LANGUAGE_STRING_LEN (128)
#define NO_LANGUAGE (0xFFFF)
//==============================================================================
// Változók, tárolók létrehozása
//==============================================================================
enum (<<= 1)
{
LANGUAGE_FLAG_NONE,
LANGUAGE_FLAG_ACTIVE = 1,
LANGUAGE_FLAG_CHATMODE1,
LANGUAGE_FLAG_CHATMODE2
};
static
    GL_g_LanguageServerFlag,
GL_g_LanguageFlag[ MAX_LANGUAGES ],
GL_g_LanguageShort[ MAX_LANGUAGES ][ MAX_LANGUAGE_SHORT_LEN ],
GL_g_LanguageStringIdent[ MAX_LANGUAGES ][ MAX_LANGUAGE_STRINGS ][ MAX_LANGUAGE_SHORT_LEN ],
GL_g_LanguageString[ MAX_LANGUAGES ][ MAX_LANGUAGE_STRINGS ][ MAX_LANGUAGE_STRING_LEN ],
GL_g_LanguageStringCount[ MAX_LANGUAGES ],
GL_g_ServerLanguage,
GL_g_PlayerLanguage[ MAX_PLAYERS ];
/*----------------------------------------------------------------------------*-
Függvény:
Language_IsActive
Paraméterek:
languageid - a nyelv azonosítószáma
Visszatérés:
GL_g_LanguageFlag[ languageid ] & LANGUAGE_FLAG_ACTIVE; ( az azonosító aktivitása )
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_IsActive( languageid )
{
// Visszatérünk az értékkel
return GL_g_LanguageFlag[ languageid ] & LANGUAGE_FLAG_ACTIVE;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_SetActive (helyi)
Paraméterek:
languageid - a nyelv azonosítószáma
set - logikai érték
Visszatérés:
true
Megjegyzés:
Ez csak a függvénykönyvtáron belül használható, mert kavarodáshoz vezethet
-*----------------------------------------------------------------------------*/
static stock Language_SetActive( languageid, set )
{
// Ha igaz érték
if( set )
    // Aktívra állítjuk
    GL_g_LanguageFlag[ languageid ] |= LANGUAGE_FLAG_ACTIVE;
// Másképpen pedig inaktívra állítjuk
else GL_g_LanguageFlag[ languageid ] &= ~LANGUAGE_FLAG_ACTIVE;
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_LoadFormFile
Paraméterek:
languageid - a nyelv azonosítószáma
file - a fájl elérése
Visszatérés:
true - ha sikeres
NO_LANGUAGE - ha sikertelen
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_LoadFormFile( languageid, file[  ] )
{
// Ha a nyelv nem aktív
if( !Language_IsActive( languageid ) )
{
// Sikertelen visszatérés
return NO_LANGUAGE;
}
// Megnézzük létezik-e a fájl
if( fexist( file ) )
{
    // Segédváltozók, megnyitjuk a fájlt, olvasási szándékkal
    new File:myfile = fopen( file, filemode:io_read ),
   myline[256];
    // Addig olvassuk a fájlt, amíg lehet
    while( fread( myfile, myline, sizeof( myline ) ) )
    {
        // Ha van beolvasott szöveg
        if( myline[ 0 ] )
        {
            // Ha csak bejegyzés, akkor kihagyjuk
            if( myline[ 0 ] == \'#\') continue;
            // Különválasztjuk a 2 \"szöveget\"
            new delim = strfind( myline, \"=\" );
            // Ha van elválasztó
            if( delim != -1 )
            {
                // Segédtároló létrehozása
                new string_ident[ MAX_LANGUAGE_SHORT_LEN ];
                // Eltárolás
                for( new j = 0; j < delim; j++ )
                        string_ident[ j ] = myline[ j ];
               // Hozzáadunk egy rövidítést és egy hozzá tartozó szöveget
               Language_AddString( languageid, string_ident, myline[ delim + 1 ] );
      }
   }
}
}
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_AddString
Paraméterek:
languageid - a nyelv azonosítószáma
ident - a szöveg rövidítése
string - a szöveg
Visszatérés:
true - ha sikeres
NO_LANGUAGE - ha sikertelen
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_AddString( languageid, ident[  ], string[  ] )
{
// Ha a nyelv nem aktív
if( !Language_IsActive( languageid ) )
{
// Sikertelen visszatérés
return NO_LANGUAGE;
}
// Ha már nem fér el több szöveg
if( GL_g_LanguageStringCount[ languageid ] == MAX_LANGUAGE_STRINGS )
{
    // Jelezzük
    printf(\"#%i nyelvhez már nem fér el a \'%s\' szöveg!\", languageid, ident );
    // Sikertelen visszatérés
return NO_LANGUAGE;
}
// Létrehozunk egy változót a könnyebb kezelhetõség érdekében
new entry = GL_g_LanguageStringCount[ languageid ];
// Tároljuk a rövidítést
strmid( GL_g_LanguageStringIdent[ languageid ][ entry ], ident, 0, MAX_LANGUAGE_SHORT_LEN, MAX_LANGUAGE_SHORT_LEN );
// Tároljuk a szöveget
strmid( GL_g_LanguageString[ languageid ][ entry ], string, 0, MAX_LANGUAGE_STRING_LEN, MAX_LANGUAGE_STRING_LEN );
// Növeljük a betöltött szövegek számát
GL_g_LanguageStringCount[ languageid ]++;
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_SendMessage
Paraméterek:
playerid - játékos azonosítószáma
color - szín
ident - szöveg rövidítése
{Float,_}:... - értékek
Visszatérés:
INVALID_PLAYER_ID - ha sikertelen
true
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_SendMessage( playerid, color, ident[ ],{Float,_}:...)
{
// Ha a játékos nincs csatlakozva
if( !IsPlayerConnected( playerid ) )
{
    // Sikertlen visszatérés
    return INVALID_PLAYER_ID;
}
// Tároló létrehozása
new myString[ 128 ] = \'\\0\';
// Szöveg lekérdezése
Language_GetString( Language_GetPlayerLanguageID( playerid ), ident, myString, sizeof( myString ) );
// Formációnak a forrása: http://pastebin.com/f75c37149
new len = strlen(myString),d=0,posArg = 3,dest[512];
for( new i = 0; i < len; i++)
{
    if(myString == \'%\')
    {
        switch (myString[i+1])
        {
            case \'s\':
      {
               new pos, arg, tmppos, str[ 128 ];
                while(getarg(posArg,pos)!=\'\\0\')
               {
                    arg=getarg(posArg,pos++);
            str[tmppos]=arg;
                     tmppos++;
                }
          strins(dest,str,d,strlen(str));
          d+=strlen(str);
         posArg++;
         i++;
      }
            case \'i\', \'d\':
      {
          new str[128];
          format(str,sizeof(str),\"%d\",getarg(posArg));
          strins(dest,str,d,strlen(str));
          d+=strlen(str);
         posArg++;
         i++;
      }
            case \'f\':
      {
          new str[128];
          format(str,sizeof(str),\"%f\",getarg(posArg));
          strins(dest,str,d,strlen(str));
          d+=strlen(str);
         posArg++;
         i++;
      }
      case \'.\':
      {
          new len2 = myString[i+2];
          if(len2 == 0)
         {
            dest[d] = myString;
            d++;
         }
         else
         {
             new str[32],formatting[5];
             formatting[0] = \'%\';
             formatting[1] = \'.\';
             formatting[2] = len2;
             formatting[3] = \'f\';
             format(str,sizeof(str),formatting,getarg(posArg));
             strins(dest,str,d,len2);
             d+=len;
            posArg++;
            i+= 2;
         }
      }
      default:
      {
         dest[d] = myString;
         d++;
      }
   }
}
else
{
   dest[d] = myString;
   d++;
}
}
SendClientMessage(playerid, color, dest);
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_SendMessage
Paraméterek:
color - szín
ident - szöveg rövidítése
{Float,_}:... - értékek
Visszatérés:
true
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_SendMessageToAll( color, ident[ ],{Float,_}:...)
{
// Tároló létrehozása
new myString[ 128 ] = \'\\0\';
// Szöveg lekérdezése
Language_GetString( Language_GetDefaultLanguage( ), ident, myString, sizeof( myString ) );
// Formációnak a forrása: http://pastebin.com/f75c37149
new len = strlen(myString),d=0,posArg = 2,dest[512];
for(new i=0;i<len;i++)
{
    if(myString == \'%\')
    {
        switch (myString[i+1])
        {
            case \'s\':
      {
               new pos,arg,tmppos;
               new str[128];
                while(getarg(posArg,pos)!=\'\\0\')
               {
                    arg=getarg(posArg,pos++);
            str[tmppos]=arg;
                     tmppos++;
                }
          strins(dest,str,d,strlen(str));
          d+=strlen(str);
         posArg++;
         i++;
      }
            case \'i\', \'d\':
      {
          new str[128];
          format(str,sizeof(str),\"%d\",getarg(posArg));
          strins(dest,str,d,strlen(str));
          d+=strlen(str);
         posArg++;
         i++;
      }
            case \'f\':
      {
          new str[128];
          format(str,sizeof(str),\"%f\",getarg(posArg));
          strins(dest,str,d,strlen(str));
          d+=strlen(str);
         posArg++;
         i++;
      }
      case \'.\':
      {
          new len2 = myString[i+2];
          if(len2 == 0)
         {
            dest[d] = myString;
            d++;
         }
         else
         {
             new str[32],formatting[5];
             formatting[0] = \'%\';
             formatting[1] = \'.\';
             formatting[2] = len2;
             formatting[3] = \'f\';
             format(str,sizeof(str),formatting,getarg(posArg));
             strins(dest,str,d,len2);
             d+=len;
            posArg++;
            i+= 2;
         }
      }
      default:
      {
         dest[d] = myString;
         d++;
      }
   }
}
else
{
   dest[d] = myString;
   d++;
}
}
SendClientMessageToAll(color,dest);
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_GetString
Paraméterek:
languageid - a nyelv azonosítószáma
ident - a szöveg rövidítése
dest - célkarakterlánc
len - célkarakterlánc mérete
Visszatérés:
g_Language_Active[ languageid ] ( az azonosító aktivitása )
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_GetString( languageid, ident[  ], dest[  ], len )
{
// Ha a nyelv nem aktív
if( !Language_IsActive( languageid ) )
{
// Sikertelen visszatérés
return NO_LANGUAGE;
}
// Segédváltozó
new j;
// Megkeressük a rövidítést
for( j = 0; j < MAX_LANGUAGE_STRINGS; j++ )
if( !strcmp( GL_g_LanguageStringIdent[ languageid ][ j ], ident ))
    break;
// Ha nem lett meg
if( j == MAX_LANGUAGE_STRINGS )
{
// Sikertelen visszatérés
return NO_LANGUAGE;
}
// Beírjuk a célkarakterláncba
     strmid( dest, GL_g_LanguageString[ languageid ][ j ], 0, strlen( GL_g_LanguageString[ languageid ][ j ] ), len );
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_Add
Paraméterek:
languageshort - nyelv rövidítése (pl. English - ENG, German - GER)
Visszatérés:
true - ha sikeres
NO_LANGUAGE - ha sikertelen
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_Add( languageshort[  ] )
{
// Segédváltozó
new languageid;
// Ciklus segítségével a legközelebbi szabad azonosító megkeresése
for( languageid = 0; languageid < MAX_LANGUAGES; languageid++ )
    if( !Language_IsActive( languageid ) )
   break;
// Ha túllépi a korlátozást, akkor sikertelen
if( languageid == MAX_LANGUAGES )
    return NO_LANGUAGE;
// Megjegyezzük, hogy aktív
Language_SetActive( languageid, 1 );
// Megadjuk a nyelv rövidítését
Language_SetShort( languageid, languageshort );
// Visszatérés
return languageid;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_SetShort
Paraméterek:
languageid - a nyelv azonosítószáma
languageshort - a nyelv új rövidítése
Visszatérés:
    NO_LANGUAGE - ha sikertelen
true
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_SetShort( languageid, languageshort[  ] )
{
    // Ha a nyelv nem aktív
if( !Language_IsActive( languageid ) )
{
// Sikertelen visszatérés
return NO_LANGUAGE;
}
// Rövidítés módosítása
strmid( GL_g_LanguageShort[ languageid ], languageshort, 0, MAX_LANGUAGE_SHORT_LEN, MAX_LANGUAGE_SHORT_LEN );
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_GetShort
Paraméterek:
languageid - a nyelv azonosítószáma
dest - cél
len - hossz
Visszatérés:
    NO_LANGUAGE - ha sikertelen
true
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_GetShort( languageid, dest[  ], len )
{
    // Ha a nyelv nem aktív
if( !Language_IsActive( languageid ) )
{
// Sikertelen visszatérés
return NO_LANGUAGE;
}
// Rövidítés tárolása
strmid( dest, GL_g_LanguageShort[ languageid ], 0, MAX_LANGUAGE_SHORT_LEN, len );
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_GetCount
Paraméterek:
-
Visszatérés:
    count
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_GetCount( )
{
// Segédváltozó
new count;
// Ciklus indítása, és a változó értékének növelése az aktívoknál
for( new j = 0; j < MAX_LANGUAGES; j++ ) if( Language_IsActive( j ) ) count++;
// Visszatérés
return count;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_SetDefaultLanguage
Paraméterek:
languageid - a nyelv azonosítószáma
Visszatérés:
NO_LANGUAGE - ha sikertelen
true
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_SetDefaultLanguage( languageid )
{
    // Ha a nyelv nem aktív
if( !Language_IsActive( languageid ) )
{
// Sikertelen visszatérés
return NO_LANGUAGE;
}
// Átállítjuk a nyelvet
GL_g_ServerLanguage = languageid;
// Meghívás
if(funcidx(\"OnServerChangeLanguage\"))
{
    CallLocalFunction(\"OnServerChangeLanguage\",\"i\",languageid);
}
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_GetDefaultLanguage
Paraméterek:
-
Visszatérés:
    GL_g_ServerLanguage
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_GetDefaultLanguage( )
{
// Visszatérés
return GL_g_ServerLanguage;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_SetPlayerLanguage
Paraméterek:
playerid - a játékos azonosítószáma
languageid - a nyelv azonosítószáma
Visszatérés:
NO_LANGUAGE - ha sikertelen
true
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_SetPlayerLanguage( playerid, languageid )
{
    // Ha a játékos/nyelv nem aktív vagy nincs elég nyelv
if( !IsPlayerConnected( playerid ) || !Language_IsActive( languageid ) )
{
// Sikertelen visszatérés
return NO_LANGUAGE;
}
// Modosítjuk a nyelvét
GL_g_PlayerLanguage[ playerid ] = languageid;
// Meghívás
if(funcidx(\"OnPlayerChangeLanguage\"))
{
    CallLocalFunction(\"OnPlayerChangeLanguage\",\"ii\",playerid,languageid);
}
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_GetPlayerLanguageID
Paraméterek:
playerid - a játékos azonosítószáma
Visszatérés:
NO_LANGUAGE - ha sikertelen
GL_g_PlayerLanguage[ playerid ]
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_GetPlayerLanguageID( playerid )
{
// Ha a játékos nem aktív
if( !IsPlayerConnected( playerid ) )
{
    // Sikertelen visszatérés
    return NO_LANGUAGE;
}
// Visszatérés
return GL_g_PlayerLanguage[ playerid ];
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_ToggleChatLanguageTag
Paraméterek:
toggle - logikai érték
Visszatérés:
true
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_ToggleChatLanguageTag( toggle )
{
    // Ha igaz érték
if( toggle )
    // Aktívra állítjuk
    GL_g_LanguageServerFlag |= LANGUAGE_FLAG_CHATMODE1;
// Másképpen pedig inaktívra állítjuk
else GL_g_LanguageServerFlag &= ~LANGUAGE_FLAG_CHATMODE1;
// Visszatérés
return true;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_IsChatLanguageTag
Paraméterek:
-
Visszatérés:
GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE1
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_IsChatLanguageTag( )
{
// Visszatérés
return GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE1;
}
/*----------------------------------------------------------------------------*-
Függvény:
Language_ToggleLanguageChat
Paraméterek:
toggle - logikai érték
Visszatérés:
true
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_ToggleLanguageChat( toggle )
{
    // Ha igaz érték
if( toggle )
    // Aktívra állítjuk
    GL_g_LanguageServerFlag |= LANGUAGE_FLAG_CHATMODE2;
// Másképpen pedig inaktívra állítjuk
else GL_g_LanguageServerFlag &= ~LANGUAGE_FLAG_CHATMODE2;
// Visszatérés
return 1;
}
/*----------------------------------------------------------------------------*-
Függvény:
    Language_IsLanguageChat
Paraméterek:
-
Visszatérés:
GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE2
Megjegyzés:
-
-*----------------------------------------------------------------------------*/
stock Language_IsLanguageChat( )
{
// Visszatérés
return GL_g_LanguageServerFlag & LANGUAGE_FLAG_CHATMODE2;
}
public OnPlayerConnect( playerid )
{
// Kiírjuk, hogy válthat nyelvet
SendClientMessage( playerid, 0xFF3DF8AA, \"To change the language use \'/language\' command.\" );
// Beállítjuk a nyelvét az alapméretezettre
Language_SetPlayerLanguage( playerid, Language_GetDefaultLanguage( ) );
// Ha megindexelhetõ
if (funcidx(\"Language_OnPlayerConnect\") != -1)
{
    // Visszatérés
return CallLocalFunction(\"Language_OnPlayerConnect\", \"i\", playerid);
}
return 1;
}
public OnPlayerText( playerid, text[  ] )
{
// Ha a nyelvi beszélgetõ ablak (1 mód) engedélyezve van
if( Language_IsChatLanguageTag( ) )
{
    // Tárolók létrehozása
    new myString[ 128 ],
        myShort[ MAX_LANGUAGE_SHORT_LEN ];
    // Rövidítés tárolása
    Language_GetShort( Language_GetPlayerLanguageID( playerid ), myShort, sizeof( myShort ) );
    // Formázás
    format( myString, sizeof( myString ), \"[%s]: %s\", myShort, text );
    // Ha a 2. beszélgetõablak mód engedélyezve van, azaz, csak
    // az azonos nyelvûek látják egymás üzeneteit
    if( Language_IsLanguageChat( ) )
    {
        // Ciklus
        for( new j = 0; j < GetMaxPlayers( ); j++ )
        {
            // Ha a 2 nyelv egyezik
            if( Language_GetPlayerLanguageID( playerid ) == Language_GetPlayerLanguageID( j ) )
            {
                // Elküldés
         SendPlayerMessageToPlayer( j, playerid, myString );
         // Visszatérés
         return 0;
      }
   }
}
    // Üzenet elküldése mindenkinek
    SendPlayerMessageToAll( playerid, myString );
    // Visszatérés
    return 0;
}
// Ha megindexelhetõ
if (funcidx(\"Language_OnPlayerText\") != -1)
{
    // Visszatérés
return CallLocalFunction(\"Language_OnPlayerText\", \"is\", playerid, text);
}
return 1;
}
public OnFilterScriptInit( )
{
    // 2 mód letiltása
Language_ToggleChatLanguageTag( 0 );
Language_ToggleLanguageChat( 0 );
// Kijelzés
print(\"*** Nyelvkezelõ 0.1 by Gamestar betöltve ***\");
// Ha megindexelhetõ
if (funcidx(\"Language_OnFilterScriptInit\") != -1)
{
    // Visszatérés
return CallLocalFunction(\"Language_OnFilterScriptInit\", \"\");
}
return 1;
}
public OnGameModeInit( )
{
    // 2 mód letiltása
Language_ToggleChatLanguageTag( 0 );
Language_ToggleLanguageChat( 0 );
// Kijelzés
print(\"*** Nyelvkezelõ 0.1 by Gamestar betöltve ***\");
// Ha megindexelhetõ
if (funcidx(\"Language_OnGameModeInit\") != -1)
{
    // Visszatérés
return CallLocalFunction(\"Language_OnGameModeInit\", \"\");
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
// Ha a párbeszédpanelazonosító egyezik
if( dialogid == LANGUAGE_DIALOG_ID )
{
    // Ha igennel válaszolt
    if( response == 1 )
{
      // Tárolók létrehozása
      new GL_l_Short[ MAX_LANGUAGE_SHORT_LEN ], myString[ 128 ];
            // Tároljuk a rövidítését
            Language_GetShort( listitem, GL_l_Short, sizeof( GL_l_Short ) );
    // Formázás
   format( myString, sizeof( myString ), \"Language succesfull changed to (short): %s\", GL_l_Short );
   // Üzenet
   SendClientMessage( playerid, 0xFFFFFFAA, myString );
   // Módosítjuk a nyelvét
   Language_SetPlayerLanguage( playerid, listitem );
}
// Ha nem igennel válaszolt
else
{
   // Nem teszünk semmit
}
}
// Ha megindexelhetõ
if (funcidx(\"Language_OnDialogResponse\") != -1)
{
    // Visszatérés
return CallLocalFunction(\"Language_OnDialogResponse\", \"iiiis\", playerid, dialogid, response, listitem, inputtext );
}
return 0;
}
#define language_dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
public OnPlayerCommandText( playerid, cmdtext[  ] )
{
// Parancs
language_dcmd(language,strlen(\"language\"),cmdtext);
// Ha megindexelhetõ
if (funcidx(\"Language_OnPlayerCommandText\") != -1)
{
    // Visszatérés
return CallLocalFunction(\"Language_OnPlayerCommandText\", \"is\", playerid, cmdtext );
}
return 0;
}
dcmd_language( playerid, params[  ] )
{
#if defined LANGUAGE_DIALOG
#pragma unused params
// Tárolók létrehozása
new GL_l_Short[ MAX_LANGUAGE_SHORT_LEN ],myString[ 256 ];
// Ciklust indítunk
for( new j = 0; j < MAX_LANGUAGES; j++ )
     {
         // Ha aktív
        if( Language_IsActive( j ) )
         {
             // Tároljuk a rövidítését
            Language_GetShort( j, GL_l_Short, sizeof( GL_l_Short ) );
   // Formázás
   format( myString, sizeof( myString ), \"%s\\n%s\", myString, GL_l_Short );
}
}
ShowPlayerDialog( playerid, LANGUAGE_DIALOG_ID, DIALOG_STYLE_LIST, \"MI - Select Language\", myString, \"Apply\", \"Cancel\" );
#else
// Ha nem adott meg paramétert
if( !params[ 0 ] )
{
    // Tárolók létrehozása
    new
   GL_l_Short[ MAX_LANGUAGE_SHORT_LEN ],
   myString[ 32 ],
   counter = 1;
// Üzenet
        SendClientMessage( playerid, 0xFFFF00AA, \"Language list:\" );
    // Ciklust indítunk
    for( new j = 0; j < MAX_LANGUAGES; j++ )
    {
        // Ha aktív
        if( Language_IsActive( j ) )
        {
            // Tároljuk a rövidítését
            Language_GetShort( j, GL_l_Short, sizeof( GL_l_Short ) );
            // Formázás
            format( myString, sizeof( myString ), \"%d.) %s\", counter, GL_l_Short);
            // Elküldjük üzenetként
            SendClientMessage( playerid, 0xAFAFAFAA, myString );
            // Növeljük a számlálót
            counter++;
   }
}
// Üzenet
SendClientMessage( playerid, 0xFFFF00AA, \"Usage: /language [short(form list)]\" );
}
// Ha van paraméter
else
{
    // Tárolók létrehozása
    new
   GL_l_Short[ MAX_LANGUAGE_SHORT_LEN ],
   myString[ 128 ],
   j;
// Ciklust indítunk
    for( j = 0; j < MAX_LANGUAGES; j++ )
    {
        // Ha aktív
        if( Language_IsActive( j ) )
        {
            // Tároljuk a rövidítését
            Language_GetShort( j, GL_l_Short, sizeof( GL_l_Short ) );
            // Ha a rövidítés egyezik, megállunk
            if( !strcmp( GL_l_Short, params, true ) ) break;
   }
}
// Ha nem találtuk meg
if( j == MAX_LANGUAGES )
{
    SendClientMessage( playerid, 0xAA3333AA, \"Invalid language short,sorry!\" );
    // Sikertelen visszatérés
    return 1;
}
// Formázás
format( myString, sizeof( myString ), \"Language succesfull changed to (short): %s\", GL_l_Short );
// Üzenet
SendClientMessage( playerid, 0xFFFFFFAA, myString );
// Módosítás
Language_SetPlayerLanguage( playerid, j );
}
#endif
// Visszatérés
return 1;
}
#undef language_dcmd
#if defined _ALS_OnDialogResponse
#undef OnDialogResponse
#else
#define _ALS_OnDialogResponse
#endif
#define OnDialogResponse Language_OnDialogResponse
forward Language_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
#if defined _ALS_OnFilterScriptInit
#undef OnFilterScriptInit
#else
#define _ALS_OnFilterScriptInit
#endif
#define OnFilterScriptInit Language_OnFilterScriptInit
forward Language_OnFilterScriptInit();
#if defined _ALS_OnGameModeInit
#undef OnGameModeInit
#else
#define _ALS_OnGameModeInit
#endif
#define OnGameModeInit Language_OnGameModeInit
forward Language_OnGameModeInit();
#if defined _ALS_OnPlayerConnect
#undef OnPlayerConnect
#else
#define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect Language_OnPlayerConnect
forward Language_OnPlayerConnect(playerid);
#if defined _ALS_OnPlayerText
#undef OnPlayerText
#else
#define _ALS_OnPlayerText
#endif
#define OnPlayerText Language_OnPlayerText
forward Language_OnPlayerText(playerid, text[]);
#if defined _ALS_OnPlayerCommandText
#undef OnPlayerCommandText
#else
#define _ALS_OnPlayerCommandText
#endif
#define OnPlayerCommandText Language_OnPlayerCommandText
forward Language_OnPlayerCommandText(playerid, cmdtext[  ] );

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal