Jump to content

Sistem de Limbi


SpriTe_

Recommended Posts

Sistem de Limbi

-Introducere:

Urmarind multe TOPIC-uri de pe acest forum, jucandu-ma pe diferite servere chiar unice, am observat unele dificultati in scrierea corecta in diferite limi straine, ca: ENGLEZA , GERMANA chiar si ROMANA.

Si am decis sa fac acest TOUTURIAL pentru a face munca unui scripter cat de cat mai usoara.

-Inceputul:

TOUTURIALUL va avea 6 pasi:

                1.Sa creem o variabila care ne va fi folositoare in urmatorii pasi.

                2.Sa definim limbile care vor fi folosite in scriere.

                3.Sa creem limba care va predomina in acest FS/GM la callbackul OnPlayerConnect

                4.Sa folosim corect variabilile create.

                5.3 Custom functions for an easier usage.

-                                  SetPlayerLanguage(playerid, language);

-                                  GetPlayerLanguage(playerid);

-                                  SendLanguageMessage(playerid, lrom[], leng[], lde);

PASUL 1 - Cream variabila ce va stoca limba folosita.

Insertati aceasta variabila la inceputul scriptului:

[pawn]

new pLimba[MAX_PLAYERS char];

[/pawn]

si sa nu uitati de include-ul:

[pawn]

#include < a_samp >

#include < zcmd    >

[/pawn]

char - il punem pentru ca la compilare sa folosim mai putini byts.

PASUL 2 - cream definitiile pentru limbile folosite.

In cazul meu eu voi folosi doar 3 limbi, care le cunosc cel mai bine: " ROMANA, ENGLEZA, GERMANA ", nu am vrut sa pun si italina , spaniola, etc, caci ma complic eu pe mine si va voi complica eu pe voi.

Insertam aceste definitii la inceputul scriptului:

[pawn]

#define ROM          0

#define ENG          1

#define DE            2

#define SCM          SendClientMessage

[/pawn]

PASUL 3 - limba ce va predomina pe server.

la callbackul OnPlayerConnect punem limba care va predomina in cea mai mare parte pe server.

Codul va arata astfel:

[pawn]

public OnPlayerConnect(playerid)

{

    //Sa presupunem ca pe server va predomina limba Romana

    pLLimba{playerid} = ROM;

    SCM(playerid, -1, "Limba ce predomineaza in cea mai mare parte pe acest server este ROMANA");

    SCM(playerid, -1, "Pentru a modifica limba foloseste: /ROM- pentru limba romana, /ENG- pentru limba engleza si /GER- pentru limba germana");

    return 1;

}

[/pawn]

PASUL 4 - cream 2 funtii simple.

Cu ajutorul acestor doua functii simple veti putea verifica ce limba a selectat player-ul.

[pawn]

//Verifica ce limba a selectat playerul.

stock GetPlayerLanguage(playerid)

{

    return pLimba{playerid};

}

//Inserteaza limba playerului.

stock SetPlayerLanguage(playerid, language)

{

    pLimba{playerid} = language;

}

[/pawn]

PASUL 5 - folosim functiile create de noi mai sus.

Acum eu voi crea 3 comenzi pentru ca playerul sa-si poata alege mai usor limba dorita, in cazul meu le voi crea prin ZCMD

[pawn]

//Limba Romana.

CMD: rom ( playerid , params [ ] )

{

      SCM ( playerid, -1, "Ai selectat limba romana ( ROM ) , de acum toate textele iti vor aparea in limba romana");

      pLimba{playerid} = ROM;  //Acum puteti sa vedeti la ce v-a ajutat prima variabila.

      return 1 ;                            //Aceasta spune serverului caci comanda a fost procesata cu succes !

}

//Limba Engleza

CMD: eng( playerid , params [ ] )

{

      SCM( playerid, -1, " You selected the English(ENG) language, now messages will be written in English");

      pLimba{playerid} = ENG;

      return 1;

}

//Limba Germana

CMD: ger( playerid , params [ ] )

{

    SCM( playerid, -1, " Du hat di deutsche ( DE ) sprache gewahlt, nun Nachrichten in deutscher Sprache verfasst wurden");     

    pLimba{playerid} = DE;

}

[/pawn]

Cum trimitem mesaje in diferite limbi?

-Acum eu voi crea o comanda /help , care va avea trei optiuni, una in ROMANA, una in ENGLEZA si una in GERMANA.

Acum sa ne folosim de functiile ce le-am aratat in " INCEPUTUL ":

Exista doua variante una grea si una usoara:

[pawn]

CMD: help ( playerid , params [ ] )

{

      switch(GetPlayerLanguage(playerid))

    {

    case ROM:

            SCM( playerid , -1 , " Bun venit in centrul de informatii ! ");

            SCM( playerid , -1 , " Textele cu informatii vin aici ! " ) ;

    case ENG:

            SCM( playerid , -1 , " Welcome in HELP-CENTER ! ");

            SCM( playerid , -1 , " Information here ! ");

    case DE:

            SCM( playerid , -1 , " Willkommen auf der Hilfe-Center ! " );

            SCM( playerid , -1 , " Hilfe-Text hier ! " );

            }

    }

    return 1;

}

[/pawn]

Cum transmitem mesaje in diferite limbi, mai simplu ?   

-La fel folosim functiile din " INCEPUTUL " !

-Pentru asta eu voi crea deja aici un STOCK

[pawn]

stock SendLanguageMessage(playerid, color, lrom[], leng[], lde[] )  // In loc de " color " puneti culoarea dorita.

{

    switch(GetPlayerLanguage(playerid))

    {

        case ROM:SCM(playerid, color, lrom);

        case ENG:SCM(playerid, color, leng);

        case DE:SCM(playerid, color, lde);

    }

    return 1;

}

[/pawn]

CREDITS 

Scripter Commands, creator Touturial - SpriTe_

Ideea - Zh3r0

Pentru tot ce stiu - Allex

PS: Unii dintre voi care sunteti mai avansati al de Rock, SPEEDY, Gireada, probabil stiti ca aceasta este o mare parte din ideea  lui Zh3r0, dar eu am facut-o pe ZCMD, si am facut-o mai usor de folosit.

Link to comment
Share on other sites

Ar fi ceva si asta, trebuie explicat un pic de tot mai bine dar merge, se intelege.

Inafara de asta as recomanda y_languages. Multi mai eficient si mai usor de folosit.

Asta vroiam sa fac si eu cu y_languages, dar mi s-a parut ca trebuie sa mai invat un pic acolo, ca sa pot explica totul la punctul sau...

Poate in urmatorul touturial fac cu y_languages

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.