Help me build this?
#1

Ok, since my server is small, i only need a few commands, (kick ban warn ect)

Basic admin stuff, nothing fancy. I dont need one of those BIG admin scripts.
And i cant make a admin system to save my life.

I was wondering of someone could help me make this?

just a two level admin system, with Commands to moderate the server.

Could someone do a split project with me? (credits will be givin)
Reply
#2

Kick (edit the things that u want changed)
Код:
if(strcmp(cmd, "/kick", true) == 0 && PlayerAdminLevel[playerid] == 1337) // Admin Kick
	{
  tmp = strtok(cmdtext, idx);
  if(!strlen(tmp)) {
  SendClientMessage(playerid, COLOR_ERROR, "USAGE: /kick (id)");
  return 1;
  }
  giveplayerid = strval(tmp);
  
  if(!IsNumeric(tmp)) {
  SendClientMessage(playerid, COLOR_ERROR, "USAGE: /kick (id) ID Must be a number");
  return 1;
  }
  new output[255];
  strmid(output,cmdtext,10,strlen(cmdtext));
  if (IsPlayerConnected(giveplayerid)) {
  SetPlayerInterior(giveplayerid,10);
  SetPlayerPos(giveplayerid,219.6257,111.2549,999.0156);
  SetPlayerFacingAngle(giveplayerid,2.2339);
  SetCameraBehindPlayer(giveplayerid);
  GetPlayerName(giveplayerid, string, 24);
  format(string, 100, "**(ADMIN KICK)** %s(%d) %s", string,giveplayerid,output);
  SendClientMessageToAll(0xFF7F50AA, string);
  printf("%s", string);
  //format(string, 100, "\2;**(ADMIN KICK)** %s(%d) %s\2;", string,giveplayerid,output);
  //ircSay(EchoConnection, EchoChan,string);
  Kicking[giveplayerid] = 1;
  SetTimer("KickPlayer",700,0);
  }
Banning (btw u can edit site blabla this is just a script part of my gamemode on my server lolz)
Код:
 if(strcmp(cmd, "/ban", true) == 0 && PlayerAdminLevel[playerid] == 1337) // Admin Ban
	{
  tmp = strtok(cmdtext, idx);
  if(!strlen(tmp)) {
  SendClientMessage(playerid, COLOR_ERROR, "USAGE: /ban (id)");
  return 1;
  }
  giveplayerid = strval(tmp);
  
  if(!IsNumeric(tmp)) {
  SendClientMessage(playerid, COLOR_ERROR, "USAGE: /ban (id) ID Must be a number");
  return 1;
  }
  new output[255];
  strmid(output,cmdtext,9,strlen(cmdtext));
  if (IsPlayerConnected(giveplayerid)) {
  SetPlayerInterior(giveplayerid,0);
  SetPlayerPos(giveplayerid,-127.0526,2258.4316,29.4287);
  SetPlayerFacingAngle(giveplayerid,217.0701);
  SetCameraBehindPlayer(giveplayerid);
	SetTimer("BanExplosionone",500,0);
	AdminKilled[giveplayerid] =1;
  GetPlayerName(giveplayerid, string, 24);
  format(string, 100, "**(ADMIN BAN)** %s(%d) %s", string,giveplayerid,output);
  SendClientMessageToAll(0xFF7F50AA, string);
  printf("%s", string);
  if(udb_Exists(PlayerName(giveplayerid)) && PLAYERLIST_authed[giveplayerid]) {
	dUserSetINT(PlayerName(giveplayerid)).("nameban",1);
	}
  SendClientMessage(giveplayerid,COLOR_RED,"||| YOU HAVE BEEN BANNED FROM THIS SERVER");
  SendClientMessage(giveplayerid,COLOR_RED,"||| You can appeal this action at our website");
  SendClientMessage(giveplayerid,COLOR_RED,"||| Visit www.ls-rp.biz for details");
  SendClientMessage(giveplayerid,COLOR_RED,"||| Please note that we do not unban hackers/cheaters");
  Banning[giveplayerid] = 1;

  }
If u need anything else just post and if u cant get this to work ill help u with ure problem...
Reply
#3

Код:
#define FILTERSCRIPT

#include <a_samp>
#include <dini>
#include <dudb>

#define eadmin     0x33660000

new IsLogged[MAX_PLAYERS];

enum pInfo
{
	AdminLevel,
	Cash,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print(" Blank Filterscript by your name here");
	print("--------------------------------------\n");
	return 1;
}

public OnFilterScriptExit()
{
	return 1;
}

#else

main()
{
	print("\n----------------------------------");
	print(" Blank Gamemode by your name here");
	print("----------------------------------\n");
}

#endif

public OnGameModeInit()
{
	// Don't use these lines if it's a filterscript
	SetGameModeText("Blank Script");
	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
	return 1;
}

public OnGameModeExit()
{
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
	return 1;
}

public OnPlayerConnect(playerid)
{
  IsLogged[playerid] = 0;
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
  IsLogged[playerid] = 0;
	return 1;
}

public OnPlayerSpawn(playerid)
{
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
  new cmd[256], idx, file[128], tmp[256], tmp2[256];
	cmd = strtok(cmdtext, idx);
	if(strcmp(cmd, "/register", true) == 0)
	{
	  new name[MAX_PLAYER_NAME];
	  tmp = strtok(cmdtext, idx);
	  GetPlayerName(playerid, name, sizeof(name));
	  if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /register [password]");
	  format(file,sizeof(file),"%s.ini",name);
	  if(!fexist(file))
			{
			  dini_Create(file);
			  dini_IntSet(file, "Password", udb_hash(tmp));
			  dini_IntSet(file,"AdminLevel", 0);
			  dini_IntSet(file,"Cash", 0);
			  SendClientMessage(playerid, eadmin, "[System]: Account Created!");
			  PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
			  GetPlayerName(playerid, name, sizeof(name));
			  printf("%s has registered a account!", name);
			}
			else
			{
			  SendClientMessage(playerid, eadmin, "[System]: Account Already Found In Database");
        PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
			}
		return 1;
	}
	if(strcmp(cmd, "/login", true) == 0)
	{
	  new PlayerName[24];
	  tmp = strtok(cmdtext, idx);
	  if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "USAGE: /login [password]");
		new name[MAX_PLAYER_NAME];
		if(IsLogged[playerid] == 1)
		{
			SendClientMessage(playerid, eadmin, "You already are logged in!");
			return 1;
		}
		else
		{
			GetPlayerName(playerid, name, sizeof(name));
			format(file,sizeof(file),"%s.ini",name);
			if(fexist(file))
			{
		  	tmp2 = dini_Get(file, "Password");
			 	if(udb_hash(tmp) != strval(tmp2))
				{
				  SendClientMessage(playerid, eadmin, "Login Failed!");
	 			  GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
	 			  printf("%s has failed to login", name);
				}
				else
				{
				 	IsLogged[playerid] = 1;
				 	SetPlayerMoney(playerid, dini_Int(file, "Cash"));
					PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
					SendClientMessage(playerid, eadmin, "[System]: Account Logged into!");
				}
			}
		}
		return 1;
	}
	return 0;
}
public OnPlayerUpdate(playerid)
{

	return 1;
}
Now, how would i get this to have commands, and save automatic? or maybe onPlayerUpdate to save?
Reply
#4

[me="[N]BL!nk [DMU - 208.43.133.131:6600]"]bumps the topie with a long hard thrust.[/me]
Reply
#5

Quote:
Originally Posted by [N
BL!nk [DMU - 208.43.133.131:6600] ]
[me="[N]BL!nk [DMU - 208.43.133.131:6600]"]bumps the topie with a long hard thrust.[/me]
Dont use OnPlayerUpdate to save stats, do it in OnPlayerDisconnect
Reply
#6

Ok, and any help on a /setadmin command?
Reply
#7

http://forum.sa-mp.com/index.php?topic=52094.0
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)