shape1
shape2
shape3
shape4
shape7
shape8

Система деактивации аккаунта.


Статус
Закрыто для дальнейших ответов.

1Agent1

Новичок
Пользователь
02.08.2017
0
13
0
Кому нибудь наверно пригодиться эта система.

И так начнем:

К enum pInfo добавляем

Код:
pDeactivated,
к public OnPlayerRename(name[],string[],playerid) (у меня в моде вот так(у других по другоме наверное))

Код:
format(var, 32, "Deactivated=%d\n",PlayerInfo[playerid][pDeactivated]);fwrite(hFile, var);
к public OnPlayerRegister(playerid, password[])

Код:
format(var, 32, "Deactivated=%d\n",PlayerInfo[playerid][pDeactivated]);fwrite(hFile, var);
public OnPlayerUpdate(playerid)

Код:
format(var, 32, "Deactivated=%d\n",PlayerInfo[playerid][pDeactivated]);fwrite(hFile, var);
к public OnPlayerLogin(playerid,password[])

Код:
if( strcmp( key , "Deactivated" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeactivated] = strval( val ); }
и также добавляем к OnPlayerLogin(playerid,password[])

Код:
PlayerInfo[playerid][pDeactivated] = 0;
и опять туда же к public OnPlayerLogin(playerid,password[])

Код:
		if(PlayerInfo[playerid][pDeactivated] == 1)		{			SendClientMessage(playerid,COLOR_ORANGE,"Ваш аккаунт деактивирован!"); // отправим текст			SendClientMessage(playerid,COLOR_ORANGE,"свой текст");			SendClientMessage(playerid,COLOR_ORANGE,"свой текст");			Kick(playerid); // кикнем		}
-----------------------------------------------------------Команды-------------------------------------------------------------

и ко всем командам добавляем

Код:
    	//______________________________________________________________________________	if(strcmp(cmd, "/deactivate", true) == 0)	{	    if(gPlayerLogged[playerid] == 0) return SCM(playerid, COLOR_GREY, "Авторизуйтесь для использовании команды");//заменить на свой или можете убрать!		if(PlayerInfo[playerid][pAdmin] < 10) return  SCM(playerid, COLOR_GRAD1, "Недостаточно Прав Для Использования Команды.");		tmp = strtok(cmdtext, idx);		new szName[32];		GetPlayerName(playerid,szName,32);		if(!strcmp(szName,"Свой ник",true)||!strcmp(szName,"Ник другого",true))		if(!strlen(tmp)) return SCM(playerid, COLOR_GRAD1, "::: Введите: /deactivate [Ник] [Причина]");		format(string, sizeof(string), "accounts/%s.ini", tmp);		if(fexist(string))		{			format(string, sizeof(string), "accounts/%s.ini", tmp);// файл accounts заменить на свой!			new File = ini_openFile(string);			ini_setInteger(File,"Deactivated",1);			ini_setInteger(File,"AdminLevel",0);// можете убрать			ini_setInteger(File,"Leader",0);//можете убрать			ini_setInteger(File,"Member",0);//можете убрать			ini_setInteger(File,"Rank",0);//можете убрать			ini_closeFile(File);			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_GRAD1, "::: Введите: /deactivate [Ник] [Причина]");					return 1;				}			GetPlayerName(playerid, sendername, sizeof(sendername));			format(string, sizeof(string), "Администратор: %s деактивировал аккаунт в offline игроку: %s. Причина:%s",sendername,tmp,(result));			ABroadCast(COLOR_LIGHTRED,string,1);		}		else		{			format(string, sizeof(string), "Файл - аккаунт не найден");			SCM(playerid, COLOR_GRAD1, string);		}		return 1;	}
и команда чтобы активировать аккаунт

Код:
	if(strcmp(cmd, "/activate", true) == 0)	{	    if(gPlayerLogged[playerid] == 0) return SCM(playerid, COLOR_GREY, "Авторизуйтесь для использовании команды");		if(PlayerInfo[playerid][pAdmin] < 10) return  SCM(playerid, COLOR_GRAD1, "Недостаточно Прав Для Использования Команды.");		tmp = strtok(cmdtext, idx);		new szName[32];		GetPlayerName(playerid,szName,32);		if(!strcmp(szName,"Свой ник",true)||!strcmp(szName,"Свой ник",true))		if(!strlen(tmp)) return SCM(playerid, COLOR_GRAD1, "::: Введите: /activate [Ник] [Причина]");		format(string, sizeof(string), "accounts/%s.ini", tmp);		if(fexist(string))		{			format(string, sizeof(string), "accounts/%s.ini", tmp);// accounts заменить на свой!			new File = ini_openFile(string);			ini_setInteger(File,"Deactivated",0);			ini_closeFile(File);			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_GRAD1, "::: Введите: /activate [Ник] [Причина]");					return 1;				}			GetPlayerName(playerid, sendername, sizeof(sendername));			format(string, sizeof(string), "Администратор: %s активировал аккаунт игроку: %s. Причина:%s",sendername,tmp,(result));			ABroadCast(COLOR_LIGHTRED,string,1);		}		else		{			format(string, sizeof(string), "Файл - аккаунт не найден");			SCM(playerid, COLOR_GRAD1, string);		}		return 1;	}
команда чтобы выдать деактивацию в онлайне.

Код:
	if(strcmp(cmd, "/deactivateonline", true) == 0)	{		if(IsPlayerConnected(playerid))		{		    if(gPlayerLogged[playerid] == 0) return SCM(playerid, COLOR_GREY, "Авторизуйтесь для использовании команды");// можете убрать			tmp = strtok(cmdtext, idx);			if(!strlen(tmp))			{				SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /deactivateonline [ид игрока] [причина]");				return 1;			}			giveplayerid = ReturnUser(tmp);			if (PlayerInfo[playerid][pAdmin] => 10)// заменить на свой			{				if(IsPlayerConnected(giveplayerid))				{					if(giveplayerid != INVALID_PLAYER_ID)					{						GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));						GetPlayerName(playerid, sendername, sizeof(sendername));						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_GRAD2, "Используйте: /deactivate [ид игрока] [причина]");							return 1;						}						PlayerInfo[giveplayerid][pDeactivated] = 1;						if(PlayerInfo[giveplayerid][pDeactivated] => 1)						{							format(string, sizeof(string),"У игрока%s был деактивирован аккаунт администратором %s, Причина:%s.", giveplayer, sendername, (result));							SendClientMessageToAll(COLOR_LIGHTRED,string,1);							PlayerInfo[giveplayerid][pDeactivated] = 1;							Kick(giveplayerid);							return 1;						}						format(string, sizeof(string), "Вы получили деактивацию аккаунта от %s. Причина: %s", sendername, (result));						SendClientMessage(giveplayerid, COLOR_LIGHTRED, string);						format(string, sizeof(string), "Администратор %s деактивировал аккаунт %s. Причина: %s", sendername, giveplayer, (result));						SendClientMessageToAll(COLOR_LIGHTRED,string,1);						printf("[warn] %s получил деактивацию аккаунта от %s", giveplayer,sendername);						return 1;					}				}			}			else			{				format(string, sizeof(string), " %d не активный игрок.", giveplayerid);				SendClientMessage(playerid, COLOR_GRAD1, string);			}		}		return 1;	}
Автор: я (1Agent1)

/deactivateonline заменить на этот код или будут ерроры

Код:
	if(strcmp(cmd, "/deactivateonline", true) == 0)		{        if(IsPlayerConnected(playerid))        {            if(gPlayerLogged[playerid] == 0) return SCM(playerid, COLOR_GREY, "Авторизуйтесь для использовании команды");// можете убрать                tmp = strtok(cmdtext, idx);                if(!strlen(tmp))                {                        SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /deactivateonline [ид игрока] [причина]");                        return 1;                }                giveplayerid = ReturnUser(tmp);                if(PlayerInfo[playerid][pAdmin] == 10)// заменить на свой                {                        if(IsPlayerConnected(giveplayerid))                        {                                if(giveplayerid != INVALID_PLAYER_ID)                                {                                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));                                        GetPlayerName(playerid, sendername, sizeof(sendername));                                        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_GRAD2, "Используйте: /deactivate [ид игрока] [причина]");                                                return 1;                                        }                                        PlayerInfo[giveplayerid][pDeactivated] = 1;                                        //if(PlayerInfo[giveplayerid][pDeactivated] => 1)                                        format(string, sizeof(string), "Вы получили деактивацию аккаунта от %s. Причина: %s", sendername, (result));                                        SendClientMessage(giveplayerid, COLOR_LIGHTRED, string);                                        format(string, sizeof(string), "Администратор %s деактивировал аккаунт %s. Причина: %s", sendername, giveplayer, (result));                                        SendClientMessageToAll(COLOR_LIGHTRED,string,1);										Kick(giveplayerid);                                        printf("[warn] %s получил деактивацию аккаунта от %s", giveplayer,sendername);                                        return 1;                                }                        }                }                else                {                        format(string, sizeof(string), " %d не активный игрок.", giveplayerid);                        SendClientMessage(playerid, COLOR_GRAD1, string);                }        }        return 1;}
 
Последнее редактирование модератором:

UserName

Новичок
Пользователь
20.08.2017
0
0
0
А у меня такие ошибки:

Ошибки:

C:\Users\z\Desktop\Amazing RolePlay\gamemodes\ARP.pwn(254) : error 017: undefined symbol "gPlayerLogged"
C:\Users\z\Desktop\Amazing RolePlay\gamemodes\ARP.pwn(254) : warning 215: expression has no effect
C:\Users\z\Desktop\Amazing RolePlay\gamemodes\ARP.pwn(254) : error 001: expected token: ";", but found "]"
C:\Users\z\Desktop\Amazing RolePlay\gamemodes\ARP.pwn(254) : error 029: invalid expression, assumed zero
C:\Users\z\Desktop\Amazing RolePlay\gamemodes\ARP.pwn(254) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.


Строчка:

if(gPlayerLogged[playerid] == 0) return SCM(playerid, COLOR_GREY, "Авторизуйтесь для использовании команды");//заменить на свой или можете убрать!

А если я убираю эту строчку, то появляются, аналогичные ошибки, только уже на вот эту строчку:

if(PlayerInfo[playerid][pAdmin] < 10) return SCM(playerid, COLOR_GRAD1, "Недостаточно прав для использования данной команды.");

Ошибки:

Код:
C:\Users\z\Desktop\Amazing RolePlay\gamemodes\ARP.pwn(254) : error 029: invalid expression, assumed zero
C:\Users\z\Desktop\Amazing RolePlay\gamemodes\ARP.pwn(254) : warning 215: expression has no effect
C:\Users\z\Desktop\Amazing RolePlay\gamemodes\ARP.pwn(254) : error 001: expected token: ";", but found ")"
C:\Users\z\Desktop\Amazing RolePlay\gamemodes\ARP.pwn(254) : error 029: invalid expression, assumed zero
C:\Users\z\Desktop\Amazing RolePlay\gamemodes\ARP.pwn(254) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.
 
Последнее редактирование модератором:

1Agent1

Новичок
Пользователь
02.08.2017
0
13
0
@UserName,Ну незнаю... Проверку на авторизацию свою ставьте которая в моде,а про проверку на админа возьмите с другой команды(например:/ban от туда скопируй проверку на админа)и ставь вместо моей 

Так что подгоняй под свой мод.Моды у всех разные 

 
Последнее редактирование модератором:

noname_idk

Гуру
Пользователь
19.07.2015
4 046
7
787
0
Скриптер
@minezen, так или иначе, mxINI пользователи не бросают.
 

1Agent1

Новичок
Пользователь
02.08.2017
0
13
0
@minezen,Некоторые сервера стоят на MxIni им может быть пригодится. 

 
Статус
Закрыто для дальнейших ответов.