Jump to content

[Tutorial]Account-systeem


Sandra

Recommended Posts

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
Link to comment
Delen op andere websites

  • 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

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

Link to comment
Delen op andere websites

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

Link to comment
Delen op andere websites

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.

Link to comment
Delen op andere websites

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
Link to comment
Delen op andere websites

  • 2 weken later...

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.

Link to comment
Delen op andere websites

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.

Link to comment
Delen op andere websites

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.

Link to comment
Delen op andere websites

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