Szerző Téma: XPRENDszer, hogy kezdjem  (Megtekintve 658 alkalommal)

XPRENDszer, hogy kezdjem
« Dátum: 2013. július 01. - 19:52:23 »
0 Show voters
Kérem aki tud segítsen!
A szerverembe szeretnék egy XPrendszer szerû HSSP nevû rendszert berakni! De nem tudom, hogy hogyan kezdjem! Elég lenne csak egy pár sor! Tudjátok, én még nagyon alapokon viszem a szkriptelést!
« Utoljára szerkesztve: 2013. július 01. - 21:43:08 írta ZyZu »

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
XPRENDszer, hogy kezdjem
« Válasz #1 Dátum: 2013. július 01. - 21:42:35 »
0 Show voters
[mod]Nem PM -ben intézünk segítségkérési dolgokat hanem a fórumon itt a témában mivel másnak is jól jöhetnek ezek a dolgok.[/mod]

XPRENDszer, hogy kezdjem
« Válasz #2 Dátum: 2013. július 02. - 05:44:33 »
0 Show voters
Csak simán szeretnéd beleírni a játékmódodba?

Mert ha igen akkor természetesen segítek.. írj és itt megoldjuk.
« Utoljára szerkesztve: 2013. július 02. - 09:51:49 írta ZyZu »

XPRENDszer, hogy kezdjem
« Válasz #3 Dátum: 2013. július 02. - 10:15:26 »
0 Show voters
Összedobtam egyet neked, remélem ilyenre gondoltál ;)
nem teszteltem, de írj, ha valami gond van :)
 
#include a_samp
#include dini
 
#define MAX_LVL      5 //kedvedre állítod be
new level_exp = 100; //itt úgy oldjuk meg, hogy ha egy leveles száz exp kell, majd levelenként szorozzuk be, folytatás lenn
enum items {
level,
exp,
registered
}
new accinfo[MAX_PLAYERS][items]; //mivel max_players-t adtunk meg az online játékosoknak külön tárolja az enumban lévõ dolgokat
 
public OnPlayerConnect(playerid)
{
accinfo[playerid][registered] = dini_Int(\"char.txt\", \"registered\");
if(accinfo[playerid][registered] == 1)//Ha regisztrált
{
accinfo[playerid][level] = dini_Int(\"char.txt\", \"level\");   //kiolvassa a szintet
accinfo[playerid][exp] = dini_Int(\"char.txt\", \"exp\");       //és az exp-t
}
else //ha még nem regisztrált
{
dini_IntSet(\"char.txt\", \"level\", 1);    //beállítja a kezdõ szintet (1)
dini_IntSet(\"char.txt\", \"exp\", 0);      //és az exp-t nullára
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)    //amikor egy játékos meghal
{
new string[64];
new gy_neve[64];
new h_neve[64];
GetPlayerName(playerid, h_neve, sizeof(h_neve));
GetPlayerName(killerid, gy_neve, sizeof(gy_neve));
give_exp(killerid, 5); //ha valaki (killerid) megöl valakit (playerid-t) akkor kap 5 exp-t
                        //ez bonyolíthatod elágazásokkal, hogy ha a gyilkos kisebb nagyobb szintû volt pl
format(string, sizeof(string), \"Mivel megölted õt: %s, ezért kaptál 5 exp-t\", h_neve);
SendClientMessage(killerid, -1, string);    //ezt a gyilkosnak küldjük
format(string, sizeof(string), \"%s megölt téged\", gy_neve);
SendClientMessage(playerid, -1, string);//ezt a halottnak küljök
      return 1;
}
 
stock give_exp(playerid, amount)
{
if(accinfo[playerid][exp] < max_exp(playerid)) //ha az exp kevesebb mint a max_exp,
{
accinfo[playerid][exp] = (accinfo[playerid][exp] + amount); // akkor hozzá adja a kapott exp-t
}
else // ha viszont egyenlõ, vagy nagyobb az exp a max expnél,
{
    accinfo[playerid][level] = (accinfo[playerid][level] + 1); //akkor kapsz +1 szintet
    accinfo[playerid][exp] = 0 + (accinfo[playerid][exp] - max_exp(playerid)); //Ez a végén azért fontos, mert ha esetleg a kapott exp-vel átllépte a max-ot akkor a következõ szinthet exp-jéhez hozzá adja
}
return 1;
}
//max exp meghatározása:
stock max_exp(playerid) //ezzel tudjuk lekérdezni menyi a jelenlegi max exp
{
new asd;
asd = (level_exp * accinfo[playerid][level]); //itt a levelenkénti exp-t szorozza meg a szinteddel
return asd; //a max_exp függvény ezzel az értékkel tér vissza
}

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal