Доступ к архиву

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

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

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

Срочно нужна помощь.

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

Алексей333

Новичок
Всем привет, помогите в эту систему регистрации(код ниже) вписать систему выбора пола и скина с сохранинением.
ОЧЕНЬ НУЖНО, пожалуйста ребят...

HTML:
/*
 *              GUI dini Login-Register
 *       (c) Copyright 2010-2011 by FoxHound
 *
 * @author    : FoxHound aka PSPgamer_10
 * @date      : 27 October 2010
 * @version	  : v 1.0
 *
 * This file is provided as is (no warranties).
 *
 */

#include <a_samp>
#include <Dini>
//#pragma unused ret_memcpy

  //Options
	#define USERFILE_DIRECTION "Accounts/%s.acc"	//This will be saved in scriptfiles/Accounts/PLAYERNAME.acc. (If you want to save directly in Scriptfiles, just type only "%s.acc"
	#define MAX_LOG_TRIES 4 	//Maximal tries to log-in

  //Dialogs
	#define RegisterDialog 946
	#define LoginDialog 945

forward OnPlayerUpdateEx(playerid);				//OnPlayerUpdate Alternative
forward OnPlayerLogin(playerid, pass[]);
forward OnPlayerRegister(playerid, pass[]);

enum pVariableData
{
	pSkin,
	pKills, pDeaths,

	gPlayerLogged, gLogTries
}
new pData[MAX_PLAYERS][pVariableData];

public OnFilterScriptInit()
{
	print("\n<-+-----------------------------------------------+->");
	print("\n<-| FoxHounds GUI-&-dini-supported Login-Register |->");
	print("\n<-| Login-Register by: FoxHound			 	   |->");
	print("\n<-| dini-System by: DracoBlue				 	   |->");
	print("\n<-+-----------------------------------------------+->");
	return 1;
}

public OnPlayerConnect(playerid)
{
	new string[192],pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid,pName,sizeof(pName));
  /************************* RESETTING PLAYER-VARIABLES *************************/
    pData[playerid][pKills]=0; pData[playerid][pDeaths]=0;
    pData[playerid][pSkin]=0;

	pData[playerid][gPlayerLogged]=0; pData[playerid][gLogTries]=0;
  /******************************************************************************/
	RandomPlayerScreen(playerid);	//Absolutely OPTIONAL
	format(string,sizeof(string),USERFILE_DIRECTION,pName);
	if(fexist(string))
	{
	    format(string,sizeof(string),"Добро пожаловать, %s !\nВведи пароль:",pName);
		ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_INPUT, "Вход", string, "Войти", "Отмена");
	}
	else
	{
	    format(string,sizeof(string),"Привет, %s!\nТы не зарегестрирован,а значит не сможешь играть.\nНо не беда)Ты можешь зарагестрироватся.\nВведи желаемый пароль:",pName);
		ShowPlayerDialog(playerid, RegisterDialog, DIALOG_STYLE_INPUT, "Новый аккаунт", string, "Войти", "Отмена");
	}
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    OnPlayerUpdateEx(playerid);
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    pData[playerid][pDeaths]+=1;
	if(killerid != INVALID_PLAYER_ID) { pData[killerid][pKills]+=1; }
	return 1;
}

public OnPlayerRequestSpawn(playerid)
{
	if(pData[playerid][gPlayerLogged]==1)
	{
		pData[playerid][pSkin]=GetPlayerSkin(playerid);
		return 1;
	}
	return 0;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    OnPlayerUpdateEx(playerid);
	return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    OnPlayerUpdateEx(playerid);
	return 1;
}

public OnPlayerRegister(playerid, pass[])
{
	new string[64],pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid,pName,sizeof(pName));
	format(string,sizeof(string),USERFILE_DIRECTION,pName);
	if(!dini_Exists(string))
	{
		dini_Create(string);
		dini_Set(string,"Password",pass);
		dini_IntSet(string,"Kills",pData[playerid][pKills]);
		dini_IntSet(string,"Deaths",pData[playerid][pDeaths]);
		dini_IntSet(string,"Skin",pData[playerid][pSkin]);
		pData[playerid][gPlayerLogged]=1;
		CallRemoteFunction("OnPlayerSpawn","i",playerid);
	    return 1;
	}
	return 1;
}

public OnPlayerLogin(playerid, pass[])
{
	new string[128],pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid,pName,sizeof(pName));
	format(string,sizeof(string),USERFILE_DIRECTION,pName);
	if(!strcmp(pass,dini_Get(string,"Password"),false))
	{
		pData[playerid][pKills] = dini_Int(string,"Kills");
		pData[playerid][pDeaths] = dini_Int(string,"Deaths");
		pData[playerid][pSkin] = dini_Int(string,"Skin");
		CallRemoteFunction("OnPlayerSpawn","i",playerid);
		pData[playerid][gPlayerLogged] = 1;
	}
	else
	{
	    pData[playerid][gLogTries]+=1;
	    if(pData[playerid][gLogTries] >= MAX_LOG_TRIES)
		{
			format(string,sizeof(string),"Ты ввёл пароль неправильно уже %d.\nУ нас подозрение,что ты взломщик,ты кикнут.\nЕсли ты забыл пароль,то свяжись с администрацией.",MAX_LOG_TRIES);
			ShowPlayerDialog(playerid,947,DIALOG_STYLE_MSGBOX,"Login Failed",string,"~","~");
			Kick(playerid);
		}
	    else
		{
			format(string,sizeof(string),"Неправильный пароль!\nПопробуй ещё.\nПопыток осталось: '%d'",(MAX_LOG_TRIES-pData[playerid][gLogTries]));
			ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_INPUT, "Не получилось войти", string, "Войти", "Отмена");
		}
	}
	return 1;
}

public OnPlayerUpdateEx(playerid)
{
	new string[64],pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid,pName,sizeof(pName));
	format(string,sizeof(string),USERFILE_DIRECTION,pName);
	if(dini_Exists(string) && pData[playerid][gPlayerLogged])
	{
	    dini_IntSet(string,"Kills",pData[playerid][pKills]);
		dini_IntSet(string,"Deaths",pData[playerid][pDeaths]);
	    dini_IntSet(string,"Skin",GetPlayerSkin(playerid));
	    return 1;
	}
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	#define RBUTTON 0 //Right Button
	#define LBUTTON 1 //Left Button
	new string[256],pName[MAX_PLAYER_NAME];
	GetPlayerName(playerid,pName,sizeof(pName));
	switch(dialogid)
	{
	    case RegisterDialog:
	    {
			switch(response)
			{
			    case RBUTTON: { return Kick(playerid); }
			    case LBUTTON:
			    {
					new tmp[256],tmppass[64],idx;
					tmp = strtok(inputtext, idx);
					if(!strlen(tmp)) {
						format(string,sizeof(string),"Привет, %s!\nТы не зарегестрирован,а значит не сможешь играть.\nНо не беда)Ты можешь зарагестрироватся.\nВведи желаемый пароль:",pName);
						return ShowPlayerDialog(playerid, RegisterDialog, DIALOG_STYLE_INPUT, "Новый аккаунт", string, "Войти", "Отмена"); }
					strmid(tmppass,tmp,0,strlen(inputtext),255);
					OnPlayerRegister(playerid, tmppass);
			    }
			}
	    }
	    case LoginDialog:
	    {
	        switch(response)
	        {
	            case RBUTTON: { return Kick(playerid); }
	            case LBUTTON:
	            {
					new tmp[256],tmppass[64],idx;
					tmp = strtok(inputtext, idx);
					if(!strlen(tmp)) {
					    format(string,sizeof(string),"Привет, %s !\nВведи свой пароль:",pName);
						return ShowPlayerDialog(playerid, LoginDialog, DIALOG_STYLE_INPUT, "Вход", string, "Войти", "Отмена"); }
					strmid(tmppass,tmp,0,strlen(inputtext),255);
					OnPlayerLogin(playerid, tmppass);
	            }
	        }
	    }
	}
	return 1;
}

forward RandomPlayerScreen(playerid); //Absolutely OPTIONAL to Use (Look at Line '58')
public RandomPlayerScreen(playerid) {
	new screen = random(10);
	SetPlayerInterior(playerid, 0);
	switch(screen) {
		case 0: {
			SetPlayerPos(playerid,-346.083618,1599.942139,164.472366);
			SetPlayerCameraPos(playerid,-345.877228,1601.342896,164.518951);
			SetPlayerCameraLookAt(playerid,-340.641968,1938.658447,83.722984); }
		case 1: {
			SetPlayerPos(playerid,1485.0194,-892.1475,74.4098);
			SetPlayerCameraPos(playerid,1479.7717,-886.2401,73.9461);
			SetPlayerCameraLookAt(playerid,1415.3817,-807.9097,85.0613); }
		case 2: {
			SetPlayerPos(playerid,589.1550,373.1002,15.7948);
			SetPlayerCameraPos(playerid,543.9864,349.3647,14.9968);
			SetPlayerCameraLookAt(playerid,422.1727,599.0107,19.1812); }
		case 3: {
			SetPlayerPos(playerid,2155.0137,1129.7897,18.6397);
			SetPlayerCameraPos(playerid,2149.3992,1132.6051,24.3125);
			SetPlayerCameraLookAt(playerid,2105.0222,1156.5306,11.6470); }
		case 4: {
			SetPlayerPos(playerid,-2818.1499,1144.0898,19.2409);
			SetPlayerCameraPos(playerid,-2808.0366,1161.1864,20.3125);
			SetPlayerCameraLookAt(playerid,-2817.9348,1143.5291,19.3762); }
		case 5: {
			SetPlayerPos(playerid,2144.2822,1279.8054,7.9840);
			SetPlayerCameraPos(playerid,2154.24,1306.50,41.46);
			SetPlayerCameraLookAt(playerid,2273.45,1262.09,33.78); }
		case 6: {
			SetPlayerPos(playerid,-1771.7858,-565.5638,-0.5834);
			SetPlayerCameraPos(playerid,-1771.4641,-566.3715,16.4844);
			SetPlayerCameraLookAt(playerid,2105.0222,1156.5306,11.6470); }
		case 7: {
			SetPlayerPos(playerid,-1254.7159,953.9262,139.2734);
			SetPlayerCameraPos(playerid,-1256.6115,953.2058,139.2734);
			SetPlayerCameraLookAt(playerid,-1529.6639,689.2731,45.3311); }
		case 8: {
			SetPlayerPos(playerid,-2295.7979,712.2764,69.7422);
			SetPlayerCameraPos(playerid,-2265.6101,730.9575,49.2969);
			SetPlayerCameraLookAt(playerid,-2243.5103,731.5889,62.7217); }
		case 9: {
			SetPlayerPos(playerid,50.0000,50.0000,70.0000);
			SetPlayerCameraPos(playerid,50.0000,50.0000,70.2203);
			SetPlayerCameraLookAt(playerid,499.8851,504.5435,7.6593); } } }
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу