help edit
#1

in this filterscript (it'a admin script)
there on player press tap and click any player show pm dialog and send message and there reply command down
Код:
// AdminClick v1.3.2
// by biltong 2010

//This filterscript allows server admins to use common commands like ban or kick at the click of the mouse.
//Original SA:MP Post: http://forum.sa-mp.com/index.php?topic=162374.0 <-- ALL releases will be there.
/*Copyright © 2010  biltong

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.*/

#define FILTERSCRIPT

#include <a_samp>
//#define MAX_PLAYERS 500
//==============================================================================
//CONFIG
//==============================================================================
//#define MAX_PLAYERS 500 //NB!!!!! You MUST uncomment and change the number after MAX_PLAYERS to the amount of players your server has! This script will NOT function if you do not change this!
#define LOG_CONNECTS //comment this to stop logging when a player connects.
#define LOG_DISCONNECTS //comment this to stop logging when a player disconnects.
//#define LOG_PMS //comment this to stop logging PMs between players. (OFF BY DEFAULT)
#define LOG_DEATHS //comment this to stop logging deaths.
#define LOG_ADMINS //comment this to stop logging when an admin logs in. (RCON ONLY)

//==============================================================================

new Float:x[MAX_PLAYERS];
new Float:y[MAX_PLAYERS];
new Float:z[MAX_PLAYERS];
new Interior[MAX_PLAYERS];
new Float:RandomJail[3][3] =
{
	{197.35707092285, 173.41456604004, 1002.672668457},
	{192.8564453125, 173.4140625, 1002.672668457},
	{188.6064453125, 173.4140625, 1002.672668457}
};
new File:LogFile;
#if defined LOG_PMS
new File:PMLogFile;
#endif
new ClickedPlayer[MAX_PLAYERS];
new Wired[MAX_PLAYERS];
new Godmode[MAX_PLAYERS];
new Jailed[MAX_PLAYERS];
new Spectating[MAX_PLAYERS];
new LastPlayerReceivedFrom[MAX_PLAYERS];
new Cage0[MAX_PLAYERS], Cage1[MAX_PLAYERS], Cage2[MAX_PLAYERS], Cage3[MAX_PLAYERS];
new Caged[MAX_PLAYERS];
new HasPlayerLeftTimer[MAX_PLAYERS];
new HasPlayerDisconnected[MAX_PLAYERS];


forward WriteToLogFile(string[]);
forward Unwire(playerid);
forward Uncage(playerid);
forward HasPlayerLeft(playerid);

public OnFilterScriptInit()
{
	print("\n =========================================");
	print(" =========AdminClick v1.3.2 loaded!=========");
	print(" =========================================\n");
	
	new year, month, day, hour, minute, second;
	gettime(hour, minute, second);
	getdate(year, month, day);
	if(!fexist("ACLog.txt"))
	{
	    LogFile = fopen("ACLog.txt", io_write);
	    WriteToLogFile("");
		WriteToLogFile("========================================================");
		WriteToLogFile("Log File Created");
		WriteToLogFile("========================================================");
		WriteToLogFile("");
		fclose(LogFile);
		print("\n[ADMINCLICK] Log file not found, creating...\n");
		printf("[ADMINCLICK] Log file created on %02d-%02d-%02d at %02d:%02d:%02d", year, month, day, hour, minute, second);
	}
	if(fexist("ACLog.txt"))
	{
	    WriteToLogFile("");
		WriteToLogFile("========================================================");
		WriteToLogFile("Log file opened");
		WriteToLogFile("========================================================");
		WriteToLogFile("");
		printf("[ADMINCLICK] Log file opened on %02d-%02d-%02d at %02d:%02d:%02d", year, month, day, hour, minute, second);
	}
	for(new i; i < MAX_PLAYERS; i++) { LastPlayerReceivedFrom[i] = -1; }
	#if defined LOG_PMS
	if(!fexist("ACLog_PMs.txt"))
	{
        PMLogFile = fopen("ACLog_PMs.txt", io_write);
	    WriteToPMLogFile("");
		WriteToPMLogFile("========================================================");
		WriteToPMLogFile("PM Log File Created");
		WriteToPMLogFile("========================================================");
		WriteToPMLogFile("");
		fclose(PMLogFile);
		print("\n[ADMINCLICK] PM Log file not found, creating...\n");
		printf("[ADMINCLICK] PM Log file created on %02d-%02d-%02d at %02d:%02d:%02d", year, month, day, hour, minute, second);
	}
	if(!fexist("ACLog_PMs.txt"))
	{
	    WriteToPMLogFile("");
		WriteToPMLogFile("========================================================");
		WriteToPMLogFile("PM Log File Opened");
		WriteToPMLogFile("========================================================");
		WriteToPMLogFile("");
		fclose(PMLogFile);
		printf("[ADMINCLICK] PM Log file opened on %02d-%02d-%02d at %02d:%02d:%02d", year, month, day, hour, minute, second);
	}
	#endif
	return 1;
}

public OnPlayerText(playerid, text[])
{
	if(Wired[playerid] == 1)
	{
	    SendClientMessage(playerid, 0xFF3333AA, "You are wired and may not speak!");
	    return 0;
	}
	else return 1;
}

public OnPlayerConnect(playerid)
{
	#if defined LOG_CONNECTS
	new string[64], name[MAX_PLAYER_NAME];
	GetPlayerName(playerid, name, sizeof(name));
	format(string, sizeof(string), "%s connected.", name);
	WriteToLogFile(string);
	#endif
	HasPlayerDisconnected[playerid] = 0;
	return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
	Wired[playerid] = -1;
	Jailed[playerid] = -1;
	Godmode[playerid] = -1;
	ClickedPlayer[playerid] = -1;
	Spectating[playerid] = -1;
	#if defined LOG_DISCONNECTS
	new string[96], name[MAX_PLAYER_NAME], reasons[16];
	GetPlayerName(playerid, name, sizeof(name));
	switch(reason)
	{
	    case 0: format(reasons, sizeof(reasons), "(Timeout)");
	    case 1: format(reasons, sizeof(reasons), "(Left)");
	    case 2: format(reasons, sizeof(reasons), "(Kicked/banned)");
	}
	format(string, sizeof(string), "%s disconnected. %s", name, reasons);
	WriteToLogFile(string);
	#endif
	HasPlayerDisconnected[playerid] = 1;
	KillTimer(HasPlayerLeftTimer[playerid]);
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	new name[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME];
	GetPlayerName(ClickedPlayer[playerid], name, sizeof(name));
	GetPlayerName(playerid, adminname, sizeof(adminname));
	
	if(dialogid == 0 && response)
	{
	    if(ClickedPlayer[playerid] == playerid) return SendClientMessage(playerid, 0xFF33AA, "ERROR: You can't PM yourself!");
	    else
	    {
     		if(!strlen(inputtext)) SendClientMessage(playerid, 0xFF0000AA, "ERROR: Invalid message.");
	    	else
	    	{
				new string[128];
				format(string, sizeof(string), inputtext);
				new string2[64], sendername[MAX_PLAYER_NAME], sentname[MAX_PLAYER_NAME], string3[64], gtstring[64];
				GetPlayerName(playerid, sendername, sizeof(sendername));
				GetPlayerName(ClickedPlayer[playerid], sentname, sizeof(sentname));
				format(string2, sizeof(string2), "Message sent to %s.", sentname);
				SendClientMessage(playerid, 0xFFD700AA, string2);
				format(string3, sizeof(string3), "New PM from %s:", sendername);
				format(gtstring, sizeof(gtstring), "New ~y~PM ~w~from ~y~%s", sendername);
				SendClientMessage(ClickedPlayer[playerid], 0xFFD700AA, string3);
				SendClientMessage(ClickedPlayer[playerid], 0xFFD700AA, string);
				GameTextForPlayer(ClickedPlayer[playerid], gtstring, 3000, 5);
				LastPlayerReceivedFrom[ClickedPlayer[playerid]] = playerid;
				#if defined LOG_PMS
				new logstring[256];
				format(logstring, sizeof(logstring), "%s sent %s a PM: %s", sendername, sentname, string);
				WriteToPMLogFile(logstring);
				#endif
				return 1;
			}
		}
		return 1;
	}
	
	if(dialogid == 1 && response)
	{
	    switch(listitem)
	    {
	        case 0:	ShowPlayerDialog(playerid, 4, DIALOG_STYLE_INPUT, "Personal Message", "Type your message:                            ", "Send", "Cancel");
			case 1: ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "AdminClick - Kick", "Reason? (Optional, just click accept for no reason)", "Accept", "Cancel");
			case 2: ShowPlayerDialog(playerid, 3, DIALOG_STYLE_INPUT, "AdminClick - Ban", "Reason? (Optional, just click accept for no reason)", "Accept", "Cancel");
			case 3:
			{
			    TogglePlayerControllable(ClickedPlayer[playerid], false);
			    new string[128];
			    format(string, sizeof(string), "Administrator %s has frozen %s.", adminname, name);
			    SendClientMessageToAll(0x0BBF6AA, string);
			    GameTextForPlayer(ClickedPlayer[playerid], "You are ~b~FROZEN~w~!", 2000, 5);
			    return 1;
			}
			case 4:
			{
			    TogglePlayerControllable(ClickedPlayer[playerid], true);
			    new string[128];
			    format(string, sizeof(string), "Administrator %s has unfrozen %s.", adminname, name);
			    SendClientMessageToAll(0x0BBF6AA, string);
			    GameTextForPlayer(ClickedPlayer[playerid], "You are now ~g~unfrozen~w~.", 2000, 5);
			    return 1;
			}
			case 5:
			{
			    ShowPlayerDialog(ClickedPlayer[playerid], 6, DIALOG_STYLE_INPUT, "AdminClick - Wire", "How long (in minutes) do you want to wire the player for? \nClicking forever will wire the player until you unwire him/her.", "Accept", "Forever");
				return 1;
			}
			case 6:
			{
			    if(Wired[ClickedPlayer[playerid]] == 1)
			    {
			        Wired[ClickedPlayer[playerid]] = 0;
			        SendClientMessage(ClickedPlayer[playerid], 0xFF9900AA, "You have been unwired.");
			        GameTextForPlayer(ClickedPlayer[playerid], "You are now ~g~unwired~w~.", 2000, 5);
			        return 1;
				}
				else return SendClientMessage(playerid, 0xFF0000AA, "ERROR: That player isn't wired!");
			}
			case 7:
			{
			    new rand = random(2);
				GetPlayerPos(ClickedPlayer[playerid], x[ClickedPlayer[playerid]], y[ClickedPlayer[playerid]], z[ClickedPlayer[playerid]]);
				Interior[ClickedPlayer[playerid]] = GetPlayerInterior(ClickedPlayer[playerid]);
			    Jailed[ClickedPlayer[playerid]] = 1;
			    SetPlayerPos(ClickedPlayer[playerid], RandomJail[rand][0], RandomJail[rand][1], RandomJail[rand][2]);
			    SetPlayerInterior(ClickedPlayer[playerid], 3);
			    ResetPlayerWeapons(ClickedPlayer[playerid]);
			    new string[128];
			    format(string, sizeof(string), "Administrator %s has jailed %s.",adminname, name);
			    SendClientMessageToAll(0xFF3300AA, string);
			    GameTextForPlayer(ClickedPlayer[playerid], "You have been ~r~JAILED~w~!", 2000, 5);
			    HasPlayerLeftTimer[ClickedPlayer[playerid]] = SetTimerEx("HasPlayerLeft", 1000, true, "i", ClickedPlayer[playerid]);
			    return 1;
			}
			case 8:
			{
			    if(Jailed[ClickedPlayer[playerid]] == 1)
			    {
			    	SetPlayerInterior(ClickedPlayer[playerid], 0);
			        SetPlayerPos(ClickedPlayer[playerid], x[ClickedPlayer[playerid]], y[ClickedPlayer[playerid]], z[ClickedPlayer[playerid]]);
					new string[128];
					format(string, sizeof(string), "Administrator %s has unjailed %s", adminname, name);
					SendClientMessageToAll(0xFF3300AA, string);
					GameTextForPlayer(ClickedPlayer[playerid], "You have been ~g~set free~w~.", 2000, 5);
					KillTimer(HasPlayerLeftTimer[ClickedPlayer[playerid]]);
					return 1;
				}
				else SendClientMessage(playerid, 0xFF3300AA, "ERROR: That player isn't jailed!");
				return 1;
			}
			case 9:
			{
			    SetPlayerHealth(ClickedPlayer[playerid], 0.0);
			    new string[64], string1[64];
			    format(string, sizeof(string), "You force-killed %s", name);
			    format(string1, sizeof(string1), "Administrator %s force-killed you.", adminname);
			    SendClientMessage(ClickedPlayer[playerid], 0xFF3300AA, string1);
			    SendClientMessage(playerid, 0xFF3300AA, string);
			    return 1;
			}
			case 10:
			{
			    if(playerid == ClickedPlayer[playerid]) return SendClientMessage(playerid, 0xFF3300AA, "ERROR: You can't spectate yourself!");
			    TogglePlayerSpectating(playerid, true);
			    PlayerSpectatePlayer(playerid, ClickedPlayer[playerid]);
			    Spectating[playerid] = 1;
			    return 1;
			}
			case 11:
			{
			    SetPlayerHealth(ClickedPlayer[playerid], 0.0);
			    ForceClassSelection(ClickedPlayer[playerid]);
			    new string[64], string2[64];
			    format(string, sizeof(string), "Administrator %s has forced you to class selection.",adminname);
			    SendClientMessage(ClickedPlayer[playerid], 0xFFFFFFAA, string);
			    format(string2, sizeof(string2), "You forced %s to class selection.", name);
			    SendClientMessage(playerid, 0xFFFFFFAA, string2);
			    return 1;
			}
			case 12:
			{
			    Godmode[ClickedPlayer[playerid]] = 1;
			    SetPlayerHealth(ClickedPlayer[playerid], 10000000.0);
			    new string[64], string2[64];
			    format(string, sizeof(string), "Administrator %s has given you Godmode!", adminname);
			    SendClientMessage(ClickedPlayer[playerid], 0x33FF33AA, string);
			    format(string, sizeof(string), "You have given %s Godmode!", name);
			    SendClientMessage(playerid, 0x33FF33AA, string2);
			    return 1;
			}
			case 13:
			{
			    if(Godmode[ClickedPlayer[playerid]] == 1)
			    {
			        SetPlayerHealth(ClickedPlayer[playerid], 100.0);
			        Godmode[ClickedPlayer[playerid]] = 1;
			        new string[64], string2[64];
			        format(string, sizeof(string), "Administrator %s has taken away your Godmode!", adminname);
			    	SendClientMessage(ClickedPlayer[playerid], 0xFF3300AA, string);
			    	format(string, sizeof(string), "You have taken %s's Godmode away!", name);
			    	SendClientMessage(playerid, 0xFF3300AA, string2);
			    	return 1;
				}
				else return SendClientMessage(playerid, 0xFF3300AA, "ERROR: That player doesn't have godmode!");
			}
			case 14:
			{
				ResetPlayerWeapons(ClickedPlayer[playerid]);
				new string[64], string2[64];
				format(string, sizeof(string), "Your weapons were reset by Administrator ~y~%s~w~.",adminname);
				SendClientMessage(ClickedPlayer[playerid], 0xFF3300AA, string);
				format(string2, sizeof(string2), "You reset %s's weapons.",name);
				SendClientMessage(playerid, 0xFF3300AA, string2);
			    return 1;
			}
			case 15:
			{
			    if(IsPlayerInAnyVehicle(ClickedPlayer[playerid]))
			    {
			        SendClientMessage(playerid, 0xFF6600AA, "Player Ejected~w~!");
			        KickFromVehicle(ClickedPlayer[playerid]);
			        new string[64];
			        format(string, sizeof(string), "Administrator %s ejected you from your vehicle.", adminname);
			        SendClientMessage(ClickedPlayer[playerid], 0xFF3300AA, string);
			        return 1;
				}
				else return SendClientMessage(playerid, 0xFF3300AA, "ERROR: That player is not in a vehicle!");
			}
			case 16:
			{
			    SetPlayerHealth(ClickedPlayer[playerid], 100.0);
			    new string[64];
			    format(string, sizeof(string), "Administrator %s has healed you.", adminname);
			    GameTextForPlayer(playerid, "~g~Healed~", 2000, 5);
			    SendClientMessage(ClickedPlayer[playerid], 0x33FF33AA, string);
			    return 1;
			}
			case 17:
			{
			    new Float:X, Float:Y, Float:Z;
			    GetPlayerPos(playerid, X, Y, Z);
			    SetPlayerPos(ClickedPlayer[playerid], X+1, Y+1, Z);
			    new string[64];
			    format(string, sizeof(string), "Administrator %s has teleported you to him/her.", adminname);
			    SendClientMessage(ClickedPlayer[playerid], 0xFFFFFFFF, string);
				return 1;
			}
			case 18:
			{
			    new Float:X, Float:Y, Float:Z;
			    GetPlayerPos(ClickedPlayer[playerid], X, Y, Z);
			    SetPlayerPos(playerid, X+1, Y+1, Z);
			    GameTextForPlayer(playerid, "~g~Teleported.", 2000, 5);
				return 1;
			}
			case 19:
			{
			    SetPlayerArmour(ClickedPlayer[playerid], 100.0);
				new string[64], string2[64];
				format(string, sizeof(string), "Administrator %s has given you armour.", adminname);
				format(string2, sizeof(string2), "You gave %s armour.", name);
				SendClientMessage(ClickedPlayer[playerid], 0x0BBF6AA, string);
				SendClientMessage(playerid, 0x0BBF6AA, string2);
				return 1;
			}
			case 20:
			{
			    ShowPlayerDialog(playerid, 5, DIALOG_STYLE_INPUT, "AdminClick - Cage", "How long(in minutes) do you want to cage the player for? (Required)", "Accept", "Cancel");
			    TogglePlayerControllable(playerid, 0);
			    return 1;
			}
			case 21:
			{
			    GetPlayerPos(ClickedPlayer[playerid], x[ClickedPlayer[playerid]], y[ClickedPlayer[playerid]], z[ClickedPlayer[playerid]]);
			    CreateExplosion(x[ClickedPlayer[playerid]], y[ClickedPlayer[playerid]], z[ClickedPlayer[playerid]], 11, 2.0);
			    new string[96];
			    format(string, sizeof(string), "Administrator %s has exploded you.", adminname);
			    SendClientMessage(ClickedPlayer[playerid], 0xFF3300FF, string);
			    GameTextForPlayer(playerid, "~r~Exploded~w~!", 2000, 5);
			    return 1;
			}
		}
	}
	if(dialogid == 2 && response)
	{
	    new reason[128], kickstring[128];
	    format(reason, sizeof(reason), inputtext);
	    if(!strlen(reason))
		{
			format(kickstring, sizeof(kickstring), "%s has been kicked by %s.", name, adminname);
			WriteToLogFile(kickstring);
		}
	    else
		{
			format(kickstring, sizeof(kickstring), "%s has been kicked by %s. Reason: %s", name, adminname, reason);
			WriteToLogFile(kickstring);
		}
	    SendClientMessageToAll(0xFF3300AA, kickstring);
	    Kick(ClickedPlayer[playerid]);
	    return 1;
 	}
	if(dialogid == 3 && response)
	{
		new reason[128], banstring[128];
	    format(reason, sizeof(reason), inputtext);
	    if(!strlen(reason))
		{
		    new IP[17];
		    GetPlayerIp(ClickedPlayer[playerid], IP, sizeof(IP));
			format(banstring, sizeof(banstring), "%s has been banned by %s.", name, adminname);
			SendClientMessageToAll(0xFF3300AA, banstring);
			format(banstring, sizeof(banstring), "%s has been banned by %s. IP: %s", name, adminname, IP);
			WriteToLogFile(banstring);
			Ban(ClickedPlayer[playerid]);
		}
	    else
		{
		    new IP[17];
		    GetPlayerIp(ClickedPlayer[playerid], IP, sizeof(IP));
			format(banstring, sizeof(banstring), "%s has been banned by %s. Reason: %s", name, adminname, reason);
			SendClientMessageToAll(0xFF3300AA, banstring);
			format(banstring, sizeof(banstring), "%s has been banned by %s. Reason: %s IP: IP: %s", name, adminname, reason, IP);
			WriteToLogFile(banstring);
			BanEx(ClickedPlayer[playerid], reason);
	    }
	    return 1;
 	}
	if(dialogid == 4 && response)
	{
     	if(ClickedPlayer[playerid] == playerid) return SendClientMessage(playerid, 0xFF3300AA, "ERROR: You can't PM yourself!");
	    else
	    {
	    	if(!strlen(inputtext)) SendClientMessage(playerid, 0xFF0000AA, "Invalid message.");
			else
	    	{
				new string[128];
				format(string, sizeof(string), inputtext);
				new string2[64], sendername[MAX_PLAYER_NAME], sentname[MAX_PLAYER_NAME], string3[64], gtstring[64];
				GetPlayerName(playerid, sendername, sizeof(sendername));
				GetPlayerName(ClickedPlayer[playerid], sentname, sizeof(sentname));
				format(string2, sizeof(string2), "Message sent to %s.", sentname);
				SendClientMessage(playerid, 0xFFD700AA, string2);
				format(string3, sizeof(string3), "New PM from Administrator %s:", sendername);
				format(gtstring, sizeof(gtstring), "New ~y~PM ~w~from ~g~Administrator ~y~%s", sendername);
				SendClientMessage(ClickedPlayer[playerid], 0xFFD700AA, string3);
				SendClientMessage(ClickedPlayer[playerid], 0xFFD700AA, string);
				GameTextForPlayer(ClickedPlayer[playerid], gtstring, 3000, 5);
				LastPlayerReceivedFrom[ClickedPlayer[playerid]] = playerid;
				#if defined LOG_PMS
				new logstring[256];
				format(logstring, sizeof(logstring), "Administrator %s sent %s a PM: %s", sendername, sentname, string);
				WriteToPMLogFile(logstring);
				#endif
				return 1;
			}
		}
	}
	if(dialogid == 5)
	{
	    if(response)
	    {
	    	GetPlayerPos(ClickedPlayer[playerid], x[ClickedPlayer[playerid]], y[ClickedPlayer[playerid]], z[ClickedPlayer[playerid]]);
			Cage0[ClickedPlayer[playerid]] = CreateObject(985, x[ClickedPlayer[playerid]], y[ClickedPlayer[playerid]]+4, z[ClickedPlayer[playerid]], 0.0, 0.0, 0.0);
        	Cage1[ClickedPlayer[playerid]] = CreateObject(985, x[ClickedPlayer[playerid]]+4, y[ClickedPlayer[playerid]], z[ClickedPlayer[playerid]], 0.0, 0.0, 90.0);
    		Cage2[ClickedPlayer[playerid]] = CreateObject(985, x[ClickedPlayer[playerid]]-4, y[ClickedPlayer[playerid]], z[ClickedPlayer[playerid]], 0.0, 0.0, 270.0);
    		Cage3[ClickedPlayer[playerid]] = CreateObject(985, x[ClickedPlayer[playerid]], y[ClickedPlayer[playerid]]-4, z[ClickedPlayer[playerid]], 0.0, 0.0, 180.0);
    		Caged[playerid] = 1;
    		new time = strval(inputtext);
    		SetTimerEx("Uncage", 60000*time, false, "i", playerid);
    		HasPlayerLeftTimer[ClickedPlayer[playerid]] = SetTimerEx("HasPlayerLeft", 1000, true, "i", playerid);
    		TogglePlayerControllable(playerid, 1);
			new string[128];
			format(string, sizeof(string), "Administrator %s has caged %s for %d minutes.", adminname, name, time);
			return 1;
		}
		if(!response) ShowPlayerDialog(playerid, 5, DIALOG_STYLE_INPUT, "AdminClick - Cage", "How long(in minutes) do you want to cage the player for? (Required)", "Accept", "Cancel");
		return 1;
		    
	}
	if(dialogid == 6)
	{
	    if(response)
	    {
	        new time = strval(inputtext);
	    	SetTimerEx("Unwire", 60000*time, false, "i", playerid);
	    	Wired[ClickedPlayer[playerid]] = 1;
			new string[128];
			format(string, sizeof(string), "Administrator %s has wired %s",adminname, name);
			SendClientMessageToAll(0xFF9900AA, string);
			GameTextForPlayer(ClickedPlayer[playerid], "You are ~r~wired~w~!", 2000, 5);
			new string2[32];
			format(string2, sizeof(string2), "You will be unwired in %d minutes.", inputtext);
			return 1;
		}
		if(!response)
		{
  			Wired[ClickedPlayer[playerid]] = 1;
			new string[128];
			format(string, sizeof(string), "Administrator %s has wired %s",adminname, name);
			SendClientMessageToAll(0xFF9900AA, string);
			GameTextForPlayer(ClickedPlayer[playerid], "You are ~r~wired~w~!", 2000, 5);
			return 1;
		}
	}
	return 1;
}
public Unwire(playerid)
{
	if(Wired[playerid] == 1)
	{
		Wired[playerid] = 0;
		SendClientMessage(playerid, 0x33FF33FF, "You have been unwired. Be careful next time.");
		GameTextForPlayer(playerid, "You have been ~g~Unwired~w~!", 2000, 5);
	}
}
public Uncage(playerid)
{
	Cage0[playerid] = DestroyObject(Cage0[playerid]);
	Cage1[playerid] = DestroyObject(Cage1[playerid]);
	Cage2[playerid] = DestroyObject(Cage2[playerid]);
	Cage3[playerid] = DestroyObject(Cage3[playerid]);
	GameTextForPlayer(playerid, "You have been ~g~set free~w~!", 2000, 5);
	KillTimer(HasPlayerLeftTimer[playerid]);
	Caged[playerid] = 0;
}
public HasPlayerLeft(playerid)
{
	if(Jailed[playerid])
	{
		if(!IsPlayerInRangeOfPoint(playerid, 12, 197.35707092285, 173.41456604004, 1002.672668457))
		{
			new name[MAX_PLAYER_NAME];
			GetPlayerName(playerid, name, sizeof(name));
			printf("Player %s tried to escape from jail, putting him/her back.", name);
			new rand = random(2);
			SetPlayerPos(playerid, RandomJail[rand][0], RandomJail[rand][1], RandomJail[rand][2]);
			SetPlayerInterior(playerid, 3);
			SendClientMessage(playerid, 0xFF3300FF, "You can't escape from jail!");
		}
	}
	else if(Caged[playerid])
	{
	    if(!IsPlayerInRangeOfPoint(playerid, 4, x[playerid], y[playerid], z[playerid]))
	    {
	        new name[MAX_PLAYER_NAME];
			GetPlayerName(playerid, name, sizeof(name));
			printf("Player %s tried to escape from his/her cage, putting him/her back.", name);
			SetPlayerPos(playerid, x[playerid], y[playerid], z[playerid]);
			SetPlayerInterior(playerid, Interior[playerid]);
			SendClientMessage(playerid, 0xFF3300FF, "You can't escape from your cage!");
		}
	}
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if(!strcmp("/specoff", cmdtext, false, 9))
	{
	    if(IsPlayerAdmin(playerid))
	    {
	        if(Spectating[playerid] == 1)
	        {
	            TogglePlayerSpectating(playerid, 0);
	            SendClientMessage(playerid, 0xFFFFFFAA, "You stopped spectating.");
	            return 1;
			}
			else return SendClientMessage(playerid, 0xFF3300AA, "ERROR: You aren't spectating anyone!");
		}
		return 1;
	}
	if(!strcmp("/reply", cmdtext, false, 3))
	{
	    if(!HasPlayerDisconnected[LastPlayerReceivedFrom[playerid]])
	    {
	    	if(LastPlayerReceivedFrom[playerid] != -1)
	    	{
	    		ClickedPlayer[playerid] = LastPlayerReceivedFrom[playerid];
	    		ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Personal message", "Type your message:", "Send", "Cancel");
	    		return 1;
			}
			else return SendClientMessage(playerid, 0xFF3300FF, "ERROR: Nobody has sent you a PM yet!");
		}
		else
		{
		    LastPlayerReceivedFrom[playerid] = -1;
			SendClientMessage(playerid, 0xFF3300FF, "ERROR: That player has disconnected since he/she sent you a message!");
			return 1;
		}
	}
	return 0;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    ClickedPlayer[playerid] = clickedplayerid;
	if(!IsPlayerAdmin(playerid)) ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Personal message", "Type your message:                         ", "Send", "Cancel");
	else
	{
	    new name[MAX_PLAYER_NAME], string[96];
	    GetPlayerName(clickedplayerid, name, sizeof(name));
	    format(string, sizeof(string), "AdminClick - What do you want to do with %s?", name);
		ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, string, "\nPM \nKick \nBan \nFreeze \nUnfreeze \nWire \nUnwire \nJail \nUnjail \nKill \nSpectate \nForce \nGodmode \nGodmode off \nConfiscate guns \nEject \nHeal \nTeleport to me \nGoto \nGive Armour \nCage \nExplode", "Accept", "Cancel");
		ClickedPlayer[playerid] = clickedplayerid;
	}
	return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
	#if defined LOG_DEATHS
	new logstring[128], killedname[MAX_PLAYER_NAME];
	GetPlayerName(playerid, killedname, sizeof(killedname));
	if(killerid != INVALID_PLAYER_ID)
	{
	    new killername[MAX_PLAYER_NAME];
	    GetPlayerName(killerid, killername, sizeof(killername));
		format(logstring, sizeof(logstring), "DEATH: %s(%d) killed %s(%d). Cause: %d", killedname, playerid, killername, killerid, reason);
	}
	else format(logstring, sizeof(logstring), "DEATH: %s(%d) died. Cause: %d", killedname, playerid, reason);
	WriteToLogFile(logstring);
	#endif
	return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
	#if defined LOG_ADMINS
	new logstring[64];
	new IP[17];
 	format(IP, sizeof(IP), ip);
	if(success)
	{
	    for(new i=0; i < MAX_PLAYERS; i++)
	    {
	        if(IsPlayerConnected(i))
	        {
	        	new plrip[17];
	        	GetPlayerIp(i, plrip, sizeof(plrip));
	        	if(!strcmp(IP, plrip, false, 17))
	        	{
	        	    new name[MAX_PLAYER_NAME];
	        	    GetPlayerName(i, name, sizeof(name));
	        	    format(logstring, sizeof(logstring), "RCON: Player %s(ID %d, IP: %s) logged in.", name, i, IP);
				}
				else format(logstring, sizeof(logstring), "RCON: IP %s logged in.", IP);
			}
		}
		WriteToLogFile(logstring);
	}
	if(!success)
	{
	    for(new i=0; i < MAX_PLAYERS; i++)
	    {
	        if(IsPlayerConnected(i))
	        {
	        	new plrip[17];
	        	GetPlayerIp(i, plrip, sizeof(plrip));
	        	if(!strcmp(IP, plrip, false, 17))
	        	{
	        	    new name[MAX_PLAYER_NAME];
	        	    GetPlayerName(i, name, sizeof(name));
	        	    format(logstring, sizeof(logstring), "RCON: Player %s(ID %d, IP: %s) tried to login as RCON, but failed.", name, i, IP);
				}
				else format(logstring, sizeof(logstring), "RCON: IP %s tried to login as RCON, but failed.", IP);
			}
		}
		WriteToLogFile(logstring);
 	}
 	#endif
 	return 1;
}
	
public OnFilterScriptExit()
{
	print("\n =========================================");
	print(" ========AdminClick v1.3.2 unloaded!========");
	print(" =========================================\n");
	WriteToLogFile("");
	WriteToLogFile("========================================================");
 	WriteToLogFile("Log file closed");
 	WriteToLogFile("========================================================");
 	WriteToLogFile("");
 	#if defined LOG_PMS
 	WriteToPMLogFile("");
	WriteToPMLogFile("========================================================");
 	WriteToPMLogFile("PM Log file closed");
 	WriteToPMLogFile("========================================================");
 	WriteToPMLogFile("");
 	#endif
 	return 1;
}


stock KickFromVehicle(playerid)
{
	new Float:posx, Float:posy, Float:posz;
	GetPlayerPos(playerid, posx, posy, posz);
	SetPlayerPos(playerid, posx, posy, posz+1);
}

WriteToLogFile(string[])
{
	new Hour, Minute, Second, Year, Month, Day;
	getdate(Year, Month, Day);
	gettime(Hour, Minute, Second);
	LogFile = fopen("ACLog.txt", io_append);
	new logstring[256];
	format(logstring, sizeof(logstring), "[%02d-%02d-%02d at %02d:%02d:%02d]%s\r\n", Year, Month, Day, Hour, Minute, Second, string);
	fwrite(LogFile, logstring);
	fclose(LogFile);
}
#if defined LOG_PMS
WriteToPMLogFile(string[])
{
    new Hour, Minute, Second, Year, Month, Day;
	getdate(Year, Month, Day);
	gettime(Hour, Minute, Second);
	PMLogFile = fopen("ACLog_PMs.txt", io_append);
	new logstring[256];
	format(logstring, sizeof(logstring), "[%02d-%02d-%02d at %02d:%02d:%02d]%s\r\n", Year, Month, Day, Hour, Minute, Second, string);
	fwrite(PMLogFile, logstring);
	fclose(PMLogFile);
}
#endif
i have the best script of this but i need dialog pm i try do that in new filterscript but it's not work there's many errors i copied ondialogrespand ,onplayerclicked and reply command and dosent work please any one can edit it help me
Reply
#2

help me any one view the topic
Reply
#3

there's no help
Reply
#4

You send 3 messages in half an hour, I don't want to help, you can only bump in 12 hour..
Reply
#5

ok but i can't script and need help
Reply


Forum Jump:


Users browsing this thread: 6 Guest(s)