GTA-Expert Forum: [RELEASE]Sistema Registrazione con Dialog - GTA-Expert Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[RELEASE]Sistema Registrazione con Dialog

#1 L'utente è offline   Frank_Mangano 

  • Taccheggiatore
  • Gruppo: Utenti
  • Messaggi: 504
  • Iscritto il: 10/02/10
  • Provenienza:Bari
  • GTA Preferito:GTA: San Andreas

Inviato il 13 dicembre 2011 - 14:52

Siccome molti non riescono a utilizzare il dini ho voluto creare un semplice sistema registrazione con dialoghi compatibile con la versione 0.3d testato, tanto è vero che lo uso nella mia GM ovviamente non così semplice. Per problemi non esistate a commentare. Aspetto i vostri commenti!

In Cima:

/*
Sistema Registrazione con dialog:

Autore: Frank_Mangano aka Marcostox
Descrizione: Semplice sistema di registrazione con dialog
Bug: Nessuno
Fixed: Nessuno
Versione: 1.0
*/


In Alto:
#include <a_samp>
#include <dini>
#include <dudb>

//Colori (( GLi ho inseriti tanto per ancora vi potrebbero servire ))
#define Giallo 0xFFFF00AA
#define Azzurro 0x33CCFFAA
#define Verde 0x00F600AA
#define Rosso 0xF60000AA
#define Arancione 0xFF9900AA
#define RossoVivace 0xF60000AA
#define Bianco 0xFFFFFFFF
#define Nero 0x000000AA

//Forward
forward CaricamentoDatiPlayer(playerid);
forward SalvataggioDatiPlayer(playerid);
forward CancellaFunzioni(playerid);

//Define dei Dialog
#define dialogo_registrazione 0
#define dialogo_login 1

//Enum (( Ho usato PlayerInfo xke è il + comune in tutte le gm e non sapevo cosa scrivere... ))

enum PlayerInfoSystem
{
	Loggato,
	pnome,
};

//new
new PlayerInfo[MAX_PLAYERS][PlayerInfoSystem];


In OnGameModeInit:
CancellaFunzioni(playerid);


In OnPlayerConnect:
    new Nome[MAX_PLAYER_NAME], string[128];
    new PlayerFile[128];
    GetPlayerName(playerid, Nome, sizeof(Nome));
    format(PlayerFile, sizeof(PlayerFile), "Impostazioni/Utenti/%s.ini", Nome);
    if(!dini_Exists(PlayerFile))
    {
    	ShowPlayerDialog(playerid, dialogo_registrazione, DIALOG_STYLE_INPUT, "Registrazione", "Non sei ancora registrato.\nPerpiacere inserisci una password:", "Registrati", "Annulla");
    }
    else
    {
   		ShowPlayerDialog(playerid, dialogo_login, DIALOG_STYLE_INPUT, "Identificazione", "Il tuo account è registrato\nInserisci la tua password:", "Entra", "Annulla");
    }


In OnPlayerDisconnect:
    
if(PlayerInfo[playerid][Loggato] == 2)
    {
    	SalvataggioDatiPlayer(playerid);
    }
GetPlayerName(playerid,nome,sizeof(nome));
format(stringa,sizeof(stringa),"Impostazioni/Utenti/%s.ini",nome);


In OnPlayerSpawn:

if(PlayerInfo[playerid][Loggato] == 1)
    {
        CaricamentoDatiPlayer(playerid);
        PlayerInfo[playerid][Loggato] = 2;
    }


In OnDialogResponse:

if(dialogid == dialogo_registrazione)
    {
    	if(response)
    	{
     	if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dialogo_registrazione, DIALOG_STYLE_INPUT, "Registrazione", "Non sei ancora registrato.\nPerpiacere inserisci una password:", "Registrati", "Annulla");
	    {
    	new PlayerFile[128], Nome[128];
    	GetPlayerName(playerid, Nome, sizeof(Nome));
    	format(PlayerFile, sizeof(PlayerFile), "Impostazioni/Utenti/%s.ini", Nome);
    	dini_Create(PlayerFile);
   	    dini_Set(PlayerFile, "Password", inputtext);
  		PlayerInfo[playerid][Loggato] = 2;
		SendClientMessage(playerid, 0xFFFFFFFF, "Ti sei registrato con successo, sei automaticamente loggato al server");
		GivePlayerMoney(playerid, 200); // Da 200 dollari al player appena spawnato
		dini_FloatSet(PlayerFile, "Pos_X", 0);//Imposta nel dini lo spawn principale cambiare 0
		dini_FloatSet(PlayerFile, "Pos_Y", 0);//Imposta nel dini lo spawn principale cambiare 0
		dini_FloatSet(PlayerFile, "Pos_Z", 0);//Imposta nel dini lo spawn principale cambiare 0
		SalvataggioDatiPlayer(playerid);
		SetPlayerPos(playerid, dini_Float(PlayerFile, "Pos_X"), dini_Float(PlayerFile, "Pos_Y"), dini_Float(PlayerFile, "Pos_Z"));
        SetTimerEx("TempoSpawn",1000,false,"d",playerid); //Se il player non spawna aggiungere questo se no rimuoverlo
  		}
		}
   		return 1;
    }
    if(dialogid == dialogo_login)
    {
        if(response)
         {
         	if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dialogo_registrazione, DIALOG_STYLE_INPUT, "Registrazione", "Non sei ancora{FF0000} registrato.\nPerpiacere inserisci una password:", "Registrati", "Annulla");

         	new PlayerFile[128], Nome[128], Password[256];
         	GetPlayerName(playerid, Nome, sizeof(Nome));
          	format(PlayerFile, sizeof(PlayerFile), "Impostazioni/Utenti/%s.ini", Nome);
           	Password = dini_Get(PlayerFile, "Password");
   			if((!strcmp(Password, inputtext, true)))
      		{
        		PlayerInfo[playerid][Loggato] = 1;
          		SendClientMessage(playerid, 0xFFFFFFFF, "Ti sei loggato con successo");
	  			SetPlayerPos(playerid, dini_Float(PlayerFile, "Pos_X"), dini_Float(PlayerFile, "Pos_Y"), dini_Float(PlayerFile, "Pos_Z"));
	  			CaricamentoDatiPlayer(playerid);
           		SetTimerEx("TempoSpawn",1000,false,"d",playerid);//Se il player non spawna aggiungere questo se no rimuoverlo
			}
            else
            {
            	ShowPlayerDialog(playerid, dialogo_login, DIALOG_STYLE_INPUT,"Identificazione", "Password non corretta.\n}Perpiacere inserisci nuovamente la passowrd:", "Entra", "Annulla");
            }
        }
        else if(!response)
        {
        Kick(playerid);
        }
		return 1;
	}


Fuori da tutto:
public CancellaFunzioni(playerid)
{
    PlayerInfo[playerid][Loggato] = 0;
    return 1;
}

public SalvataggioDatiPlayer(playerid)
{
        new Nome[MAX_PLAYER_NAME], PlayerFile[128], Float: UltimaPos[3];
        GetPlayerName(playerid, Nome,sizeof(Nome));
        GetPlayerPos(playerid, UltimaPos[0], UltimaPos[1], UltimaPos[2]);
        format(PlayerFile, sizeof(PlayerFile),"Impostazioni/Utenti/%s.ini", Nome);
        if(!fexist(PlayerFile))
        {
        	dini_Create(PlayerFile);
        }
        dini_IntSet(PlayerFile,"Soldi", GetPlayerMoney(playerid));//Salva i soldi che si posseggono in mano
        dini_IntSet(PlayerFile,"Esperienza", GetPlayerScore(playerid));//Salva il lv di esperienza
        dini_IntSet(PlayerFile,"Skin", GetPlayerSkin(playerid));//Salva la skin che si possiede
        return 1;
}

public CaricamentoDatiPlayer(playerid)
{
        new Nome[MAX_PLAYER_NAME], PlayerFile[128];
        GetPlayerName(playerid, Nome,sizeof(Nome));
        format(PlayerFile, sizeof(PlayerFile), "Impostazioni/Utenti/%s.ini", Nome);
        if(!fexist(PlayerFile)) return 1;
        SetPlayerScore(playerid, dini_Int(PlayerFile, "Esperienza"));
        SetPlayerPos(playerid, dini_Float(PlayerFile, "Pos_X"), dini_Float(PlayerFile, "Pos_Y"), dini_Float(PlayerFile, "Pos_Z"));
		GivePlayerMoney(playerid, dini_Int(PlayerFile, "Soldi"));//Consegna i soldi al player
        SetPlayerSkin(playerid, dini_Int(PlayerFile, "Skin"));//Imposta la skin al player
return 1;

PlayerName(playerid)
{
	new pNome[24];
	GetPlayerName(playerid, pNome, 24);
	return pNome;
}
}


Spero che il rilascio di questi 2 script (( a mio parere non stupendi )) faccia venire la voglia ai novellini di Pawno a imparare bene il pawno e produrne anche loro altri, e che quelli che conoscono il pawno si diano una spinta a pubblicare qualcosa per la community di pawno di gta-expert.it. Speriamo...

Messaggio modificato da Frank_Mangano il 22 giugno 2012 - 16:18


Mappe & Script a pagamento. Contattare: marcostox@hotmail.it(msn) Frank_Mangano (skype)


--------------------------------------------------******I MIEI LAVORI******-------------------------------------------------


[Rilasciato][MAP]Bunker a 2 piani[Pubblico]

[Rilasciato][SCRIPT]Lavoro Spazzino[Pubblico]

[Rilasciato][SCRIPT]Sistema di Registrazione[Pubblico]
0

#2 L'utente è offline   SteelZero 

  • Vandalo
  • Gruppo: Utenti
  • Messaggi: 66
  • Iscritto il: 08/12/11
  • Provenienza:Lecce, Apulia, Italy
  • GTA Preferito:GTA: Vice City

Inviato il 13 dicembre 2011 - 15:08

Mi sembra troppo obsoleto.
Immagine Postata
0

#3 L'utente è offline   Frank_Mangano 

  • Taccheggiatore
  • Gruppo: Utenti
  • Messaggi: 504
  • Iscritto il: 10/02/10
  • Provenienza:Bari
  • GTA Preferito:GTA: San Andreas

Inviato il 14 dicembre 2011 - 17:50

Visualizza MessaggiSteelZero, il 13 dicembre 2011 - 15:08 ha detto:

Mi sembra troppo obsoleto.


Obsoleto? Xke?

Mappe & Script a pagamento. Contattare: marcostox@hotmail.it(msn) Frank_Mangano (skype)


--------------------------------------------------******I MIEI LAVORI******-------------------------------------------------


[Rilasciato][MAP]Bunker a 2 piani[Pubblico]

[Rilasciato][SCRIPT]Lavoro Spazzino[Pubblico]

[Rilasciato][SCRIPT]Sistema di Registrazione[Pubblico]
0

#4 L'utente è offline   Frank_Mangano 

  • Taccheggiatore
  • Gruppo: Utenti
  • Messaggi: 504
  • Iscritto il: 10/02/10
  • Provenienza:Bari
  • GTA Preferito:GTA: San Andreas

Inviato il 19 dicembre 2011 - 23:11

Non capisco il motivo del tuo commento davvero irrilevante... Non capisco cosa vuoi intendere con obsoleto chiarisciti...

Mappe & Script a pagamento. Contattare: marcostox@hotmail.it(msn) Frank_Mangano (skype)


--------------------------------------------------******I MIEI LAVORI******-------------------------------------------------


[Rilasciato][MAP]Bunker a 2 piani[Pubblico]

[Rilasciato][SCRIPT]Lavoro Spazzino[Pubblico]

[Rilasciato][SCRIPT]Sistema di Registrazione[Pubblico]
0

#5 L'utente è offline   Devil_King 

  • Cleptomane
  • Gruppo: Utenti
  • Messaggi: 175
  • Iscritto il: 30/08/11
  • GTA Preferito:GTA: San Andreas

Inviato il 23 dicembre 2011 - 00:25

Forse intendeva che, come hai detto tu, è troppo semplice...

0

#6 L'utente è offline   Frank_Mangano 

  • Taccheggiatore
  • Gruppo: Utenti
  • Messaggi: 504
  • Iscritto il: 10/02/10
  • Provenienza:Bari
  • GTA Preferito:GTA: San Andreas

Inviato il 23 dicembre 2011 - 10:54

Visualizza Messaggilucabellic98, il 23 dicembre 2011 - 00:25 ha detto:

Forse intendeva che, come hai detto tu, è troppo semplice...


Mi sembra ovvio... L'ho fatto apposta appunto xke cosa dovrei mettere di più? XD poi ognuno se lo migliora quella è la base...

Mappe & Script a pagamento. Contattare: marcostox@hotmail.it(msn) Frank_Mangano (skype)


--------------------------------------------------******I MIEI LAVORI******-------------------------------------------------


[Rilasciato][MAP]Bunker a 2 piani[Pubblico]

[Rilasciato][SCRIPT]Lavoro Spazzino[Pubblico]

[Rilasciato][SCRIPT]Sistema di Registrazione[Pubblico]
0

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi