Jump to content

Recommended Posts

Posted

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

Posted

Ai fi putut sa-l faci pe Y_Ini e mai rapid si mai usor de accesat dar oricum bravo.

Eu sunt nimeni. Dar prefer sa fiu un nimeni inconjurat de prieteni adevarati, decat un om faimos inconjurat de falsi.

Nu sunt un scripter perfect, nu sunt nici macar pe aproape, insa in in ciuda acestui fapt incerc sa invat sa le fac pe toate.

Posted

Ai fi putut sa-l faci pe Y_Ini e mai rapid si mai usor de accesat dar oricum bravo.

1.Ma innebuniti , serios..lasati-ma sa folosesc ce vreau

2.M-am gandit sa il fac pe SQLite , dar mi s-a spus sa il fac pe ini pentru a fi pe intelesu tuturor..

Massari e curva mea

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.