[Tutorial] Crearea factiunilor !

[Tutorial] Crearea factiunilor !

In jos

 [Tutorial] Crearea factiunilor ! Empty [Tutorial] Crearea factiunilor !

Mesaj Scris de .Nick Mier 20 Noi 2013, 12:50 am

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.

__________________________

Cod:
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
___________________________

Cod:
#include <a_samp>
___________________________

si adaugam

___________________________
Cod:

#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

_________________
Cod:

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


________________
Cod:

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.


________________
Cod:
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.


____________________
Cod:
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

_______________________
Cod:
public OnPlayerSpawn (playerid)
{
     CheckPlayerFaction(playerid);
     return 1;
}
_______________________


Tutorial creat de: Rimmon !
Sursa: http://www.sa-mp.ro/

.Nick
.Nick
Administrator
Administrator

Mesaje : 187
Data de inscriere : 19/01/2008
Sanctiuni Sanctiuni :
  • 0 Avertismente


http://samp.gettalk.net

Sus In jos

Sus

- Subiecte similare

 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum