Jump to content

Ako na VIP


eLko

Recommended Posts

Dnes som tu s mojim prvým tutom, v ktorom by som vám chcel ukázať ako si vytvoriť svoj VIP systém s ukladaním.

 

 

Ako 1. si vložíme include(samozrejme #include tam necháme)

#include //Stiahnete tu na webe

 

Ako 2. si vytvoríme new

new Vip[MAX_PLAYERS];
new removevip[50];
new vipsave[50];

 

Po 3. si vytvoríme stock

stock Meno(playerid)
{
  new pName[MAX_PLAYER_NAME];
  if(IsPlayerConnected(playerid))
  {
        GetPlayerName(playerid, pName, sizeof(pName));
  }
  return pName;
}

 

Po 4. si nadefinujeme DCMD

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

 

 

 

Tak začneme:

 

 

 

Do OnPlayerConnect

format(vipsave, sizeof(vipsave), "/VIP/%s.vip", Meno(playerid));// Cesta k hráčovému súboru meno.vip
Vip[playerid] = dini_Bool(vipsave, "VIP");// Zo súboru načítame VIP

 

 

Do OnPlayerCommandText

dcmd(getvip,6,cmdtext);
dcmd(removevip,9,cmdtext);

 

 

A teraz úplne dole(nedávajte to do žiadneho publicu)

dcmd_getvip(playerid, params[])
{
   new id = strval(params);
if (!strlen(params)) return SendClientMessage(playerid, FARBA, "Použitie: /getvip [iD]");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,  FARBA, "Hráč s takímto ID nieje práve na on-line.");
else if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, FARBA, "Iba RCON admin môže nadstavovať VIP");
else if(Vip[id] == 1) return SendClientMessage(playerid, FARBA, "Tento hráč už vlastní VIP");
else
{
	Vip[id] = 1;
	new getvip[50];
	format(getvip, sizeof(getvip), "Admin %s aktivoval hráčovy %s VIP.", Meno(playerid), Meno(id));
		SendClientMessageForAll(FARBA, getvip);
	format(vipsave, sizeof(vipsave), "/VIP/%s.vip", Meno(id));// Súbor sa bude ukladať do scriptfiles/VIP/meno.vip
	if(!dini_Exists(vipsave))// ak hráčov súbor neexistuje
	{
		dini_Create(vipsave);// tak ho vytvoríme
		dini_BoolSet(vipsave, "VIP", Vip[playerid]);// a uložíme VIP
	}
}
   return 1;
}


dcmd_removevip(playerid, params[])
{
   new id = strval(params);
if (!strlen(params)) return SendClientMessage(playerid, F_ZELENA, "Použitie: /removevip [iD]");
else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,  F_SLABOMODRA, "Hráč s takímto ID nieje práve na on-line.");
else if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, F_CERVENA, "Iba RCON admin môže odoberať VIP");
else if(Vip[id] == 0) return SendClientMessage(playerid, F_CERVENA, "Tento hráč nevlastní VIP");
else
{
Vip[id] = 0;
format(removevip, sizeof(removevip), "Admin %s odobral hráčovi %s VIP", Meno(playerid), Meno(id));
SendClientMessageToAll(FARBA, removevip);
format(vipsave, sizeof(vipsave), "/VIP/%s.vip", Meno(id));// Budeme to ukladať do priečinku vip v Scriptfiles, prípomonu si možte zmeniť
if(dini_Exists(removevip))
{
	dini_Remove(removevip); // Odstani hracov subor v /VIP/meno.vip
}
}
return 1;
}

 

 

 

 

 

 

Ak si budete chcieť vytvoriť vlastný príkaz tak si dajte do OnPlayerCommandText

dcmd(vasprikaz,9,cmdtext);//namiesto 9 dajte pocet pismenok

 

 

A dole

dcmd_removevip(playerid, params[])
{
    #pragma unused params
    if(Vip[playerid] == 0) return SendClientMessage(playerid, FARBA, "Nevlastníš VIP. Iba VIP hráč môže použiť tento príkaz.");
//vase funkcie alebo podmienky
    return 1;
}

 

 

 

Nieje to na skopírovanie!!

Isto tam bude nejaký primitívny error.

 

Dúfam že som na nič nezabudol :d.

Link to comment
Share on other sites

Ja som ten tip ze gramaticke chyby si nevsimam :d:D .. ako myslis ze aj na zaciatku ??

 

ta ze lomitko pred VIP suboroms

Ja mislim ze to je jedno. Viem že to ide :d:D. .. mam to tak v mojom VIP ....... :d

Link to comment
Share on other sites

  • 1 month later...
  • 3 years later...

zabudol si define tich farieb

ale to už doopravdy musím napsat.. Ty debile toto tema je 3 roky staré a pokud si ani neumíš najít na googlu #define tak raději vypni pawno a jdi dělat do M$ tam takové programatory uvítaj hned... 

Link to comment
Share on other sites

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...