Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Комната Регистра

Статус
В этой теме нельзя размещать новые ответы.

Scooter_Brown

Умник
~~~~~~~~~СИСТЕМА РЕГИСТРАЦИИ автор Crazy_Town ~~~~~~~~~~~~~~~
Ко всем new
PHP:
new Registers[MAX_PLAYERS];
в enum pinfo
PHP:
pRegister,
В public OnPlayerConnect(playerid)
PHP:
Registers[playerid] = 0;
PlayerInfo[playerid][pRegister] = 0;
В Setplayerpsawn или в OnPlayerSpawn
PHP:
if(PlayerInfo[playerid][pRegister] == 0)//если игрок не зареган то он тут будет
	{
	    SetPlayerPos(playerid,199.4385,-34.2033,1002.3040);//инт и кардинаты можете менят на свои
		SetPlayerFacingAngle(playerid, 215.9720);
		SetPlayerInterior(playerid,1);//
		return true;
	}
else if(PlayerInfo[playerid][pRegister] == 1)//если зареган то он тут будет
	{
		SetPlayerPos(playerid,892.5275,-2341.0383,1297.6882);//[ВАЖНО] место спавна меняете на свои
		SetPlayerFacingAngle(playerid, 354.0569);//[ВАЖНО]  у меня хз где не помню
		SetPlayerInterior(playerid,0);//[ВАЖНО]
		PlayerInfo[playerid][pInt] = 0;//[ВАЖНО]
	}
public OnPlayerRegister(playerid, password[])
PHP:
ini_setInteger(File,"Register",PlayerInfo[playerid][pRegister]);
public SavessAkk(playerid,string3[])
PHP:
ini_setInteger(File,"Register",PlayerInfo[playerid][pRegister]);
public OnPlayerLogin(playerid,password[])
PHP:
ini_setInteger(File,"Register",PlayerInfo[playerid][pRegister]);
public OnPlayerCommandText(playerid, cmdtext[])
PHP:
else if(strcmp(cmd, "/unregister",true) == 0 || strcmp(cmd, "/unreg",true) == 0 )////чтоб зарегать
	{
	        if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать эту команду!");
	        tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "::: Введите: /unregister [id]");
			giveplayerid = ReturnUser(tmp);
			if(IsPlayerConnected(giveplayerid))
			{
			    if(giveplayerid != INVALID_PLAYER_ID)
			    {
                    if(PlayerInfo[giveplayerid][pRegister] == 1) return SendClientMessage(playerid, COLOR_GRAD1, "Этот игрок Зареган!");
			        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
					GetPlayerName(playerid, sendername, sizeof(sendername));
					SendClientMessage(playerid, COLOR_YELLOW, "Игрок был зарегистрирован!");
					new arank[64];
					arank = IsAdminName(PlayerInfo[playerid][pHelper],PlayerInfo[playerid][pAdmin]);
					format(string, sizeof(string), "%s %s зарегистрировал вас .", arank, sendername);
					SendClientMessage(giveplayerid, COLOR_REDD, string);
					PlayerInfo[giveplayerid][pRegister] = 1;
					SpawnPlayer(giveplayerid);
				}
			}
	    	return true;
	}
else if(strcmp(cmd, "/register", true) == 0)////для подачи заявки
	{
	    if(IsPlayerConnected(playerid))
	    {
	    if(PlayerInfo[playerid][pRegister] == 1) return SendClientMessage(playerid,COLOR_LIGHTRED,"Вы неможете использовать эту команду !");///проверка
	    if(Registers[playerid] == 1) return SendClientMessage(playerid,COLOR_LIGHTRED,"Ждите не сколько секунд !");///проверка таймера
	    GetPlayerName(playerid, sendername, sizeof(sendername));
	    format(string, sizeof(string), "[Внимание]: {BEF574}[Регистрация игрока] (( %s[%d] ))", sendername, playerid);///надписи можете менять
	    ABroadCast(COLOR_REDD,string,1);
	    SendClientMessage(playerid, COLOR_YELLOW, "Ваш запрос отправлен администрации! Ждите....");
	    SetTimerEx("WaiteRegister",30000,0,"d",playerid);///30000 это 30сек , он может каждую 30 сек подават заявку
	    Registers[playerid] = 1;
	    }
	    return true;
 	}
public onplayerlogin
есть такая строка >>>> if(PlayerInfo[playerid][pReg] == 0) после него внизу пишем
PHP:
PlayerInfo[playerid][pMuteTime] = 50000;///чтоб у игрока был молчанка
PlayerInfo[playerid][pMuted] = 1;
public GzCheck() или ежесекундный таймер , это чтоб игрок не сбежал из комнаты регистрации
PHP:
if(gPlayerLogged[i] == 1)///проверка игрок залогинился ли
	        {
				if (PlayerInfo[i][pRegister] == 0)//если игрок не реган
				{
	                new Float:X, Float:Y, Float:Z;
					GetPlayerPos(i, X, Y, Z);
					if (Z < 900)///  его кардинаты 'Z' если низко с 900 будет то он кикается
					{/// так как все интереры на небе
	                    new plname[MAX_PLAYER_NAME];
                        GetPlayerName(i, plname, MAX_PLAYER_NAME);
	                    format(string, sizeof(string), "[Античит]: %s был кикнут за использования чит телепорт", plname);
				        SendClientMessageToAll(COLOR_LIGHTRED, string);
						SendClientMessage(i, COLOR_LIGHTRED, "[Античит]: Вы были кикнуты за использования  чит телепорт");
						Kick(i);
					}
				}
	        }
В конец Мода
PHP:
forward WaiteRegister(playerid);////SetTimerEx это безопасный формат , не нагружает
public WaiteRegister(playerid)///конец таймера
{
	Registers[playerid] = 0;
	return true;
}
[ВАЖНО] где будет игрок находится во время регистрации , то это место сделайте Зел.Зоной . Чтоб они друг другп не убыли

---------- Post added at 23:51 ---------- Previous post was at 23:49 ----------

Автор Crazy Town Мой учитель,в честь его плиз +++ , я ему передам ваши +++ :DD
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу