Jump to content

Crearea factiunilor


Rimmon

Recommended Posts

Crearea factiunilor de la 0

Inceputul

Salut , in acest tutorial o sa va prezint cum se creeaza niste factiuni ,vreau sa va anunt ca nu am deschis niciodata un GM de RP sa vad cum se creeaza un sistem de factiuni.

Acest tutorial il voi face pe dini , pentru a fi pe intelesul tuturor , am mai facut cateva tutoriale pe SQLite si mi s-a spus ca sa fac pe ini nu SQL

Prima data creem 2 variabile pentru player , nu globale.

__________________________

new FactionM [ MAX_PLAYERS ] , FactionL [ MAX_PLAYERS ] ;

__________________________

FactionM - Factiunea in care esti membru

FactionL - Factiunea in care esti lider

Ne ducem sus in script sub

___________________________

#include <a_samp>

___________________________

si adaugam

___________________________

#include <dini>

#define FilePlace "Factions/%s.ini"

___________________________

define FilePlace "Factions/%s.ini" - locul unde se vor salva datele playerului

Adica in scriptfiles/Factions/%s.ini

Dupa ce am facut toate astea , v-om face un mic stock , care va "lua" numele playerului , ca sa ne miscam mai rapid

_________________

stock pName ( playerid ){

    new i [ 24 ] ;

    GetPlayerName ( playerid  ,i , 24 ) ;

    return i ;

}

________________

Crearea/Setarea/Updatarea

Ok , acum v-om merge la OnPlayerRequestClass , pentru a face o verificare contului care tocmai a intrat pe server.

1.Creem o noua variabila

2.Facem un simplu format care verifica locatia si daca contul care a intrat pe server exista.

3.Facem verificarea de la pasul 2

3.1 .Daca contul exista ii vom "reda" statisticile

3.2 .Daca nu exista , se va crea cu FactionM/L pe 0

________________

public OnPlayerRequestClass(playerid, classid)

{

    new str [ 50 ] ;

    format ( str , 50 , FilePlace , pName ( playerid ) ) ;

    if ( dini_Exists ( str ) ){ //contul exista

          FactionM [ playerid ] = dini_Int ( str , "Faction Member" ) ;

          FactionL [ playerid ] = dini_Int ( str , "Faction Leader"  ) ;

    }

    else//contul nu exista

          dini_Create ( str ) ;

          dini_IntSet ( str , "Faction Member"  , FactionM [ playerid ] = 0 ) ;

          dini_IntSet ( str , "Faction Leader"  , FactionL [ playerid ] = 0 ) ;

    }

    return 1;

}

________________

Dupa ce terminam cu OnPlayerRequestClass , mergem la OnPlayerDisconnect , pentru ai salva statisticile cand se deconecteaza.

________________

public OnPlayerDisconnect(playerid)

{

    new str [ 50 ] ;

    format ( str , 50 , FilePlace , pName ( playerid ) ) ; //Verifica contul

    dini_IntSet ( str , "Faction Member" , FactionM [ playerid ] ) ;

    dini_IntSet ( str , "Faction Leader" , FactionL [ playerid ] ) ;

    return 1;

}

________________

Cam asta e partea cu crearea/inserarea/salvarea , nu prea ma pricep la explicatii de genu , dar sper ca ati inteles cat de cat

Crearea Spawnurilor

Crearea unui astfel de sistem e mai usor decat sa mananci seminte (vorba mea cea noua =)) )

Trebuie doar sa gandesti putin , pentru a crea spawnurile si sa setam skinurile playerilor din anumite factiuni , vom face un simplu stock

Eu voi crea 2 factiuni

1-Politia romana

2-Fratia oboroaca

Stock-ul meu se va numi , CheckPlayerFaction.

____________________

stock CheckPlayerFaction (  playerid ) {

    if ( FactionM [ playerid ] == 1 || FactionL [ playerid ] == 1 ){ //Daca playerul este lider/membru in factiunea cu id-ul 1 (Politia romana)

          SetPlayerSkin ( playerid , 280 ) ;

          SetPlayerPos ( playerid , /*coordonatele spawn-ului*/ ) ;

          GivePlayerWeapon ( playerid , 24 , 100 ) ; //Armele care vreti sa le aiba playerul din factiunea respectiva

    }

    else if ( FactionM [ playerid ] == 2 || FactionL [ playerid ] == 2 ){ //Daca playerul este lider/membru in factiunea cu id-ul 2 (Fratia oboroaca)

          SetPlayerSkin ( playerid , 291 ) ;

          SetPlayerPos ( playerid , /*coordonatele spawn-ului*/ ) ;

          GivePlayerWeapon ( playerid , 24 , 100 ) ; //Armele care vreti sa le aiba playerul din factiunea respectiva

    }

    return 1;

}

____________________

Dupa ce ati facut toate acestea , adaugati stockul la OnPlayerSpawn , adica asa

_______________________

public OnPlayerSpawn (playerid)

{

    CheckPlayerFaction(playerid);

    return 1;

}

_______________________

Cam asta este toata treaba cu factiunile , eu nu v-am aratat nimic avansat , ca sa fie clar .

Eu va arat doar ca idee cum se creeaza , nu dau mura in gura , sper sa va descurcati de aici.

Massari e curva mea

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...
  • 3 weeks later...
  • 3 months later...
  • 2 weeks later...
  • 2 months later...

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.