Jump to content

[Tutorial]Account-systeem


Recommended Posts

Geplaatst: (bewerkt)

haha "Ymosky = PWNED"

geintje

EDIT:

	if(strcmp(cmdtext,"/admins",true) == 0)
{
	SendClientMessage(playerid, COLOR_STEELBLUE, "These are the people currently able to help you:");

	new admins = 0;

	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i) == 1)
		{
			if(adminlevel[i] >= 1)
			{
				admins++;
				new pname[MAX_PLAYER_NAME];
				GetPlayerName(i, pname, sizeof(pname));
				format(string, sizeof(string), "%d) Name: %s, ID: %d", admins, pname, i,(i));
				SendClientMessage(playerid, COLOR_LIGHTSTEELBLUE, string);
			}
		}
	}

	if(admins == 0)
	{
		SendClientMessage(playerid,COLOR_DARKRED, "[ERROR]: There are no admins currently online");
	}
	return 1;
}

Bewerkt: door GTA_GAMER_JD
  • 3 weken later...
  • Reacties 228
  • Created
  • Laatste reactie

Top Posters In This Topic

  • Sandra

    24

  • vice

    12

  • .Timothy

    12

  • Remcconen

    11

Top Posters In This Topic

Posted Images

Geplaatst:

Hoe moet ik dit installeren want dat kan ik efkes niet volgen. :S . wel een goede tut maar toch..

Geplaatst:

Ok, ik heb een "ban" command gemaakt, en ik wil hem delen :tu: :tu: !

Boven aan:

new banned[MAX_PLAYERS];
forward BanTimer(playerid);

Bij de register command doe je dit erbij:

dini_IntSet(udb_encode(playername), "Banned", 0);

vervolgens bij de login command doe je dit erbij:

banned[playerid] = dini_Int(udb_encode(playername), "Banned");
if (banned[playerid] == 0)

Als de speler het wachtwoord correct heeft, dan worden zijn geregeristreerde specificaties geladen. nu word dit alleen gedaan als de speler niet gebaned is.

Nu de command:

		
if(strcmp(cmd, "/ban", true) == 0)
	{
		if(IsPlayerAdmin(playerid))
		{
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp) || !IsNumeric(tmp))
			{
				SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /ban [playerid]");
			}
			else
			{
				new id = strval(tmp);
				if(!IsPlayerConnected(id))
				{
					SendClientMessage(playerid, COLOR_RED, "This player is not present!");
				}
				else
				{
					dini_IntSet(udb_encode(playername), "Banned", 1);
					SendClientMessage(id, COLOR_RED, "You have been banned!");
					SetTimer("BanTimer", 2500, false);
				}
			}
		}
		else
		{
			SendClientMessage(playerid, COLOR_RED, "You are not an admin!");
		}
		return 1;
	}

Als laatste dit stukje:

public BanTimer(playerid)
{
Kick(playerid);
return 1;
}

Hierdoor wordt de betreffende speler met een vertraging gekickt.

Succes en ik hoop dat het werkt

Geplaatst: (bewerkt)

Leuk, alleen het werkt niet. Je moet de speler bannen, niet kicken. En je bant jezelf waarschijnlijk.

Bewerkt: door Remcconen
Geplaatst:
Leuk, alleen het werkt niet. Je moet de speler bannen, niet kicken. En je bant jezelf waarschijnlijk.

Inderdaad. :7

		
dini_IntSet(udb_encode(playername), "Banned", 1);
SendClientMessage(id, COLOR_RED, "You have been banned!");

Dit zet de variabele 'Banned' in je EIGEN userfile op 1. :7

Geplaatst:
Leuk, alleen het werkt niet. Je moet de speler bannen, niet kicken. En je bant jezelf waarschijnlijk.

Dit is een command zonder het principe van dat banned. Ik had de command fout maar heb hem verbetert!

boven aan:

new bannedname[MAX_PLAYER_NAME];
new banned[MAX_PLAYERS];

forward BanTimer(playerid);

bij de registreer code:

dini_IntSet(udb_encode(playername), "Banned", 0);

vervolgens bij de "login" command:

banned[playerid] = dini_Int(udb_encode(playername), "Banned");
if (banned[playerid] == 0)

if(strcmp(cmd, "/ban", true) == 0)
	{
		if(IsPlayerAdmin(playerid))
		{
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp) || !IsNumeric(tmp))
			{
				SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /ban [playerid]");
			}
			else
			{
				new id = strval(tmp);
				if(!IsPlayerConnected(id))
				{
					SendClientMessage(playerid, COLOR_RED, "This player is not present!");
				}
				else
				{
					GetPlayerName(id, "opponentname", sizeof(opponentname));
					dini_IntSet(udb_encode(opponentname), "Banned", 1);
					SendClientMessage(id, COLOR_RED, "You have been banned!");
					SetTimer("BanTimer", 2500, false);
				}
			}
		}
		else
		{
			SendClientMessage(playerid, COLOR_RED, "You are not an admin!");
		}
		return 1;
	}

en dan het timer public stukje:

public BanTimer(playerid)
{
Kick(playerid);
return 1;
}

Nu is het toch wel goed? zoniet, reageer alstublieft, dan verbeter ik het.

Geplaatst: (bewerkt)
Hoe moet ik dit installeren want dat kan ik efkes niet volgen. :S . wel een goede tut maar toch..
Kijk eens op de SA-MP wiki, bij "Windows Server". Daar vind je alle informatie die je nodig hebt ;)

Ik snap dat wel hoe je een eigen server maakt want kheb er al een. Maar ik heb het over het account systeem. Omdat ik binnenkort zelf een gamemode wil gaan maken.

Bewerkt: door gamekingz
  • 2 weken later...
Geplaatst:

Ik weet niet of het eerder is gevraagd/beantwoord, maar:

Ik zou graag een andere admin structure willen bijv:

Trial Administrator

Game Administrator

Senior Administrator

Lead Admin

Owner

En tevens Scripter.

Maar, hoe doe ik dit?

Ik heb al geprobeerd met new's enzo, maar daar word ik niet echt wijzer van.

Verder, perfecte tutorial! Ben een beginnende scripter en dit is écht handig!

// Rutger.

Geplaatst:

Ik denk dat je dat het beste zo kan aanpakken:

Bovenaan (onder de includes) zet je dit:

#define LEVEL_PLAYER 0
#define LEVEL_SCRIPTER 1
#define LEVEL_TRIALADMIN 2
#define LEVEL_GAMEADMIN 3
#define LEVEL_SENIORADMIN 4
#define LEVEL_LEADADMIN 5
#define LEVEL_OWNER 6

En dan in die stukjes waar het script checkt of je level 3 bent, vervang je de 3 door LEVEL_OWNER.

Geplaatst:
Ik denk dat je dat het beste zo kan aanpakken:

Bovenaan (onder de includes) zet je dit:

#define LEVEL_PLAYER 0
#define LEVEL_SCRIPTER 1
#define LEVEL_TRIALADMIN 2
#define LEVEL_GAMEADMIN 3
#define LEVEL_SENIORADMIN 4
#define LEVEL_LEADADMIN 5
#define LEVEL_OWNER 6

En dan in die stukjes waar het script checkt of je level 3 bent, vervang je de 3 door LEVEL_OWNER.

Volgens mij werkt het, maar ik heb ook een CMD gemaakt '/makeadmin'.

En als ik dan /makeadmin [iD] Lead Admin doe dan word ik level 0.

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.

×
×
  • Create New...