Jump to content
  • 0

pomoc Admin System Chyba


Deejva

Dotaz

Ahoj, máme tu kamarádovo admin script, tomu to dělal další kámoš, a nemůžeme přijít na chybu, proč je tato chyba. Jaká chyba ? Vše fungune, ale chyba je v tom, že nejde psát do CHATU !

PS: MAM TO JAKO FILTERSCRIPT

 

#include <a_samp>

#define COLOR_GREY 0xAFAFAFAA
#define COLOR_RED 0xFF0000AA
#define COLOR_ORANZOVA 0xFF8C00AA
#define MAX_SLOTS 30
#define dcmd(%1,%2,%3)			if ((!strcmp((%3)[1], #%1, true, (%2))) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return true
#include <dini>
#pragma tabsize 0

new Muted[MAX_SLOTS];
//new Car[MAX_SLOTS];

forward SendReportMessage(color, string[], level);


enum IfAdmin
{
Admin,

};
new PlayerAdmin[MAX_SLOTS][ifAdmin];

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

public OnPlayerRequestSpawn(playerid)
{
new cesta[128];
format(cesta,128,"/AS/%s.ini",meno(playerid));
if(PlayerAdmin[playerid][Admin] > 0) return true;
if(!dini_Exists(cesta))
{
 dini_Create(cesta);
	dini_IntSet(cesta, "Level",0);
}	else	{
	PlayerAdmin[playerid][Admin] = dini_Int(cesta, "Level");
}
return 1;
}

public OnPlayerText(playerid, text[])
{

if (Muted[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ORANZOVA,"Nemůžeš psát protože jsi umlčený!");
}
return 0;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
new string[128];
new playerid2;
new cmd[32];
new tmp[32];
new idx;
new name [MAX_PLAYER_NAME];
new name1 [MAX_PLAYER_NAME];


cmd = strtok(cmdtext, idx);



if(strcmp(cmd, "/mute", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /mute [iD] abys umlčel daného hráče.");
		return 1;
	}
	playerid2 = strval(tmp);
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1)
	{
		GetPlayerName(playerid, name, sizeof(name));
		GetPlayerName(playerid2, name1, sizeof(name1));
		Muted[playerid2] = 1;
		format(string, sizeof(string), "%s je umlčený administrátorem %s",name1 ,name);
		SendClientMessageToAll(COLOR_ORANZOVA, string);
	}
	return 1;
}
if(strcmp(cmd, "/unmute", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /unmute [iD] abys odmlčel daného hráče.");
		return 1;
	}
	playerid2 = strval(tmp);
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1)
	{
		GetPlayerName(playerid, name, sizeof(name));
		GetPlayerName(playerid2, name1, sizeof(name1));
		Muted[playerid2] = 0;
		format(string, sizeof(string), "%s byl odmčený administrátorem %s",name1 ,name);
		SendClientMessageToAll(COLOR_ORANZOVA, string);
	}
	return 1;
}
if(strcmp(cmd, "/freeze", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /freeze [iD] abys zmrazil daného hráče.");
		return 1;
	}
	playerid2 = strval(tmp);
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1)
	{
		GetPlayerName(playerid, name, sizeof(name));
		GetPlayerName(playerid2, name1, sizeof(name1));
		TogglePlayerControllable(playerid2,0);
		format(string, sizeof(string), "%s zrazen administrátorem %s",name1 ,name);
		SendClientMessageToAll(COLOR_ORANZOVA, string);
	}
	return 1;
}
if(strcmp(cmd, "/unfreeze", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /unfreeze [iD] abys odmrazil daného hráče.");
		return 1;
	}
	playerid2 = strval(tmp);
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1)
	{
		GetPlayerName(playerid, name, sizeof(name));
		GetPlayerName(playerid2, name1, sizeof(name1));
		TogglePlayerControllable(playerid2,1);
		format(string, sizeof(string), "%s byl odmražený administrátorem %s",name1 ,name);
		SendClientMessageToAll(COLOR_ORANZOVA, string);
	}
	return 1;
}
if(strcmp(cmd, "/jail", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /jail [iD] abys zatknul daného hráče.");
		return 1;
	}
	playerid2 = strval(tmp);
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1)
	{
	ResetPlayerWeapons(playerid2);
	SetPlayerVirtualWorld(playerid, 6);
	SetPlayerInterior(playerid, 3);
	SetPlayerPos(playerid2,193.7394,174.8765,1003.0234);
	}
	return 1;
}
if(strcmp(cmd, "/unjail", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_GREY, "Použíj /unjail [iD] abys propustil daného hráče z vězení.");
		return 1;
	}
	playerid2 = strval(tmp);
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1)
	{
	SetPlayerVirtualWorld(playerid, 6);
	SetPlayerInterior(playerid, 3);
	SetPlayerPos(playerid2,208.7293,177.9966,1003.0313);
	}
	return 1;
}
if(strcmp(cmd, "/setscore", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /setscore [iD] [body] abys hráči přidělil body.");
		return 1;
	}
	playerid2 = strval(tmp);
	tmp = strtok(cmdtext, idx);
	new score = strval(tmp);
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 2)
	{
		GetPlayerName(playerid, name, sizeof(name));
		GetPlayerName(playerid2, name1, sizeof(name1));
		SetPlayerScore(playerid2, score);
		format(string, sizeof(string), "%s dostal %d bodů od administrátora %s.", name1, score,name);
		SendClientMessageToAll(COLOR_ORANZOVA, string);
		return 1;
	}
	else
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Nemáš dostatečně vyskoký admin lvl");
	}
	return 1;
 }
if(strcmp(cmd, "/ban", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /ban [iD] abys daného zabanoval hráče.");
		return 1;
	}
	playerid2 = strval(tmp);
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 2)
	{
		GetPlayerName(playerid, name, sizeof(name));
		GetPlayerName(playerid2, name1, sizeof(name1));
		format(string, sizeof(string), "%s byl zabanovaný adminisrátorem %s",name1 ,name);
		SendClientMessageToAll(COLOR_ORANZOVA, string);
		Ban( playerid2 );
	}
	return 1;
}
if(strcmp(cmd, "/kick", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_GREY, "Použíj /kick [iD] pro kicknutí daného hráče.");
		return 1;
	}
	playerid2 = strval(tmp);
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1)
	{
 	 GetPlayerName(playerid, name, sizeof(name));
		GetPlayerName(playerid2, name1, sizeof(name1));
		format(string, sizeof(string), "%s byl kicknutý administrátorem %s",name1 ,name);
		SendClientMessageToAll(COLOR_ORANZOVA, string);
		Kick( playerid2 );
	}
	return 1;
}
if(strcmp(cmd, "/spec", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /spec [iD] aby jsi specoval daného hráče.");
		return 1;
	}
	playerid2 = strval(tmp);
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1)
	{
	TogglePlayerSpectating(playerid, 1);
	PlayerSpectatePlayer(playerid, playerid2);
	SetPlayerInterior(playerid,GetPlayerInterior(playerid2));
	}
	return 1;
}
if(strcmp(cmd, "/specoff", true) == 0)
{
 TogglePlayerSpectating(playerid, 0);
 SetCameraBehindPlayer(playerid);
}
if(strcmp(cmd, "/report", true) == 0)
{
	new length = strlen(cmdtext);
	while ((idx < length) && (cmdtext[idx] <= ' '))
	{
		idx++;
	}
	new offset = idx;
	new result[64];
	while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
	{
		result[idx - offset] = cmdtext[idx];
		idx++;
	}
	result[idx - offset] = EOS;


	 if(!strlen(result))
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /report [informace]");
		return 1;
	}
	SendClientMessage(playerid, COLOR_ORANZOVA, "Report byl úspěšně odeslán online administrátorům.");
	format(string, sizeof(string), "Report napsal: %s(%d): %s",name, playerid, result);
	SendReportMessage(COLOR_RED, string, 101);
	printf("[info] %s oznámil (%s)", name, result);
	return 1;
}

if(strcmp(cmd, "/admin", true) == 0)
{
	SendClientMessage(playerid,COLOR_GREY,"_________________Admin Příkazy:____________________");
	SendClientMessage(playerid,COLOR_ORANZOVA,"Nejsi administrátor, tvoje příkazy: /report /admins");
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 1)
	{
		SendClientMessage(playerid,COLOR_ORANZOVA,"Admin lvl 1:/jail /unjail /freeze /spec /specoff");
		SendClientMessage(playerid,COLOR_ORANZOVA,"Admin lvl 1:/mute /unmute /unfreeze /kick");
	}
	if(IsPlayerAdmin(playerid) || PlayerAdmin[playerid][Admin] >= 2)
	{
		SendClientMessage(playerid,COLOR_ORANZOVA,"Admin lvl2: /setscore /ban ");
	}
	if(IsPlayerAdmin(playerid))
	{
		SendClientMessage(playerid,COLOR_ORANZOVA,"Rcon Admin: /setadmin");
	}
	SendClientMessage(playerid,COLOR_GREY,"________________________________________________________________");
	return 1;
}
if(strcmp(cmd, "/setadmin", true) == 0)
{
 tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Použíj /setadmin [iD] [level]");
		return 1;
	}
	playerid2 = strval(tmp);
	tmp = strtok(cmdtext, idx);
	new level = strval(tmp);
	if (IsPlayerAdmin(playerid))
	{
		GetPlayerName(playerid, name, sizeof(name));
		GetPlayerName(playerid2, name1, sizeof(name1));
		PlayerAdmin[playerid2][Admin] = level;
		 new cesta[128];
		format(cesta,128,"/AS/%s.ini",meno(playerid2));
		format(string, sizeof(string), "%s byl udělen admin lvl %d od administrátora %s", name1, level,name);
		SendClientMessageToAll(COLOR_ORANZOVA, string);
		dini_IntSet(cesta,"Level",level);
		return 1;
	}
	else
	{
		SendClientMessage(playerid, COLOR_ORANZOVA, "Nemůžeš použít tento příkaz.");
	}
	return 1;
}
return 0;
}

public SendReportMessage(color, string[], level)
{
for(new i=0; i<MAX_SLOTS; i++)
{
	if(PlayerAdmin[i][Admin] >= level || IsPlayerAdmin(i))
	{
		SendClientMessage(i, color, string);
	}
}
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
	index++;
}

new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
	result[index - offset] = string[index];
	index++;
}
result[index - offset] = EOS;
return result;
}
stock meno(playerid)
{
new m[50];
GetPlayerName(playerid,m,50);
return m;
}

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

4 odpovědí na tuto otázku

Recommended Posts

  • 0

omg tot může udělat jen k***t :d

public OnPlayerText(playerid, text[])
{
if (Muted[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ORANZOVA,"Nemůžeš psát protože jsi umlčený!");
}
return 0;
}

return 0 u tohoto callbacku je že se text nepošle :d

takhle:

public OnPlayerText(playerid, text[])
{
if (Muted[playerid] == 1)
{
SendClientMessage(playerid,COLOR_ORANZOVA,"Nemůžeš psát protože jsi umlčený!");
return 0;
}
return 1;
}

takhle je to dobře

Link to comment
Share on other sites

  • 0
Doplneno oznaceni tematu

Tag [TAG] uz se nepouziva! Priste vyber pro tema oznaceni! Diky.


Téma bylo uzavřeno, problém byl vyřešen.

Toto téma bylo uzavřeno, jelikož zakladatel tématu již problém vyřešil. Pokud máte další dotazy ohledně tohoto tématu, založte si téma nové.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...