Peršokti į turinį

Kursime rank sistemą


Malekalekum

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3821 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, kai žiūrėjau, tai šitos pamokos neradau, tad sukursiu pamoką Rank Sistemą.

Veikimas:

Ji veiks paprastu principu, kiek turės žaidėjas Score žaidime, tai jis gaus atitinkamą Rank'ą.

Pradedame:

#define RANK_NAUJOKAS 0

#define RANK_PATYRES 1

#define RANK_EKSPERTAS 2

Juos skirsime tam tikriems skaičiams. Taip bus lengviau valdyti rangus, užuot naudoję 0, 1 ir 2, mes galime tiesiog panaudoti RANK_NAUJOKAS ir taip toliau.

Klausimas: Kodėl mes naudojame būtent DEFINES o ne kitokius kintamuosius?

Atsakymas: Nes Defines yra papraščiau naudoti, ir jos yra greitesnės.

Susikuriame Variabl'us:

new pRank[MAX_PLAYERS];

Po OnPlayerConnect dedame:

pRank[playerid] = RANK_NAUJOKAS;

Tai reiškia, kad kiekvieną kartą kai, žaidėjas prisijungs, Jis vėl nustatys jo rangą atgal į NAUJOKAS.

Dabar pradedame daryti funkciją kuris suskaičiuos koks jo rank'as bus:

forward CheckPlayerRank(playerid);

public CheckPlayerRank(playerid)

{

new iScore = GetPlayerScore(playerid);

switch(iScore)

{

case 0..100:

{

pRank[playerid] = RANK_NAUJOKAS;

SendClientMessage(playerid,SPALVA,"Jūsų rangas yra Naujokas");

}

case 101..200:

{

pRank[playerid] = RANK_PATYRES;

SendClientMessage(playerid,SPALVA,"Jūsų rangas yra Patyres");

}

default:

{

pRank[playerid] = RANK_EKSPERTAS;

SendClientMessage(playerid,SPALVA,"Jūsų rangas yra Ekspertas");

}

}

return 1;

}

Na dabar darome kad pakiltu žaidėjo score, juk rangas negali būti visada naujokas:

public OnPlayerDeath(playerid, killerid, reason)

{

SetPlayerScore(playerid, GetPlayerScore(playerid)-1); //nuzudytas zaidejas praras 1 taska.

CheckPlayerRank(playerid);

if(IsPlayerConnected(killerid))

{

SetPlayerScore(killerid, GetPlayerScore(killerid)+1); // nuzudes zaideja jam pakils 1 taskas.

CheckPlayerRank(killerid);

}

return 1;

}

Štai ir viskas, jei gavote kokių error'ų rašykite čia, tikrai padėsiu ištaisyti. wink.png

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3821 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...