Vip system
#1

Код:
#include <a_samp>
#include <dini>
#include <dudb>

#include <sscanf2>
//DCMD

#define SERVER_USER_FILE "%s.ini"
#define DIALOG_INFO 55
#define SCM SendClientMessage
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#pragma unused ret_memcpy

#pragma tabsize 0


//new PlayerInfo[MAX_PLAYERS][pInfo];
new gPlayerLogged[MAX_PLAYERS];



new VIP[MAX_PLAYERS];

main()
{
 print("Welcome to San Andreas");
 print("Mode : WTSA");
 print("Vytvorili : RonnyCZ a Johnny Law");
 print("Welcome To San Andreas");
}

public OnGameModeInit()
{
	UsePlayerPedAnims ();
    SetGameModeText("test");
	return 1;
}
	
public OnPlayerConnect(playerid)
{

    	
  		VIP[playerid] = 0;
		gPlayerLogged[playerid] = 0;

        new file[128];
       	format(file, sizeof file, "%s.ini", Name(playerid));
        if (!dini_Exists(file))
        {
                new string[600];
            	new str[64], IPplayer[16];
            	strcat(string,"Welcome to server mode {00FFFF}Welcome To San Andreas - WTSA.eu\n");
            	strcat(string,"\n");
            	strcat(string,"{FFFFFF}Tento {00FFFF}Nick {FFFFFF}still there.\n");
            	
            	strcat(string,"\n");
            	strcat(string,"{FF0000}Registration required!\n");
            	strcat(string,"\n");
            	format(str, sizeof str, "{FFFFFF}Nick: {00FFFF}%s \n", Name(playerid));
	 			strcat(string, str);
	 			GetPlayerIp(playerid, IPplayer, 16);
	 			format(str, sizeof str, "{FFFFFF}IP: {00FFFF}%s \n", IPplayer);
	 			strcat(string, str);
                ShowPlayerDialog(playerid, 81, DIALOG_STYLE_PASSWORD, "Registrace", string, "Registrovat", "Odpojit");
        }
        if(fexist(file))
        {
                 new string[700];
            	new str[64], IPplayer[16];
            	strcat(string,"{FFFFFF}Welcome back to server mode {00FFFF}Welcome To San Andreas - WTSA.eu\n");
            	strcat(string,"\n");
            	strcat(string,"{FFFFFF}Tento {00FFFF}Nick {FFFFFF}uћ existuje.\n");
            	strcat(string,"Zadejte heslo:\n");
            	strcat(string,"\n");
           		format(str, sizeof str, "{FFFFFF}Nick: {00FFFF}%s \n", Name(playerid));
	 			strcat(string, str);
	 			GetPlayerIp(playerid, IPplayer, 16);
	 			format(str, sizeof str, "{FFFFFF}IP: {00FFFF}%s \n", IPplayer);
	 			strcat(string, str);
                ShowPlayerDialog(playerid, 82, DIALOG_STYLE_PASSWORD, "Login", string, "OK", "KICK");
        }

		new string[250];
    	format(string,sizeof string,"{778899}[ {7CFC00}Connect {778899}] Player {7CFC00}%s {778899}(ID: {7CFC00}%d{778899}) came to the server",Name(playerid),playerid);
    	SendClientMessageToAll(0xFFFFFFAA,string);

		return 1;
}



public OnPlayerDisconnect(playerid, reason)
{
		new file[256];
		format(file, sizeof(file), SERVER_USER_FILE, Name(playerid));
        if(gPlayerLogged[playerid] == 1)
        {
  			dini_IntSet(file, "VIP",VIP[playerid]);
  		}
        gPlayerLogged[playerid] = 0;



	return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
	dcmd(setvip,6,cmdtext);

	if(!strcmp(cmdtext, "/info", true))
 	{
		new string [100000];
	 	new str[64], IPplayer[16];
	 	strcat(string,"{00FF00}=======================Zбkladnн Informace=======================\n");
		format(str, sizeof str, "{FFFFFF}Vбљ Nick - {00FFFF}%s \n", Name(playerid));
	 	strcat(string, str);
	 	GetPlayerIp(playerid, IPplayer, 16);//mmnt
	 	format(str, sizeof str, "{FFFFFF}Vaљe IP - {00FFFF}%s \n", IPplayer);
	 
	 	format(str, sizeof str, "{FFFFFF}VIP - {00FFFF}%d \n", VIP[playerid]);
	 	strcat(string, str);
  		
		ShowPlayerDialog(playerid,DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Info o hrбči", string, "OK", "");

		return 1;
  	}
	return SCM(playerid, -1, "{FF0000}[ {F0F0F0}Server {FF0000}] {F0F0F0} -> Unknown command, use the command -> {FF0000}/help");
}


dcmd_setvip(playerid, params[])
{
	new lvl, ID;
	if(sscanf(params, "ud", ID, lvl)) return SendClientMessage(playerid, 0xFF0000AA, "{FF0000}[ {FFFFFF} Server {FF0000} ] {FFFF00}  /setvip [ID] [Level]");
	if(lvl < 0 || lvl > 1) return SendClientMessage(playerid, -1, "{FF0000}[ {FFFFFF} Server {FF0000} ] {FFFF00} Poor range! From only [0-1]");
	if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, -1, "{FF0000} {FFFFFF} Server {FF0000}] The player is not online ! ");
	if(IsPlayerAdmin(playerid))
	{
 	VIP[ID] = lvl;

	new string[138];
 	format(string,sizeof string,"{FFD700}[ VIP ]{FF0000}Admin %s set players %s VIP Level %d",Name(playerid),Name(ID),lvl);
  	SendClientMessageToAll(0xFFFFFFAA,string);

  		}
	else SendClientMessage(playerid, -1, "{FF0000} [ {FFFFFF} Server {FF0000}] you do not have rcon!");
	
	return 1;
}





public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

      

        if (dialogid == 81)
        {
                new file[64], string[128];
			   
                format(file, sizeof(file), SERVER_USER_FILE, Name(playerid));
                if(!response) return Kick(playerid);
                if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 81, DIALOG_STYLE_PASSWORD, " registered", " registered", "Registrovat", "Odpojit");
                dini_Create(file);
                dini_IntSet(file, "Password", udb_hash(inputtext));
          
				dini_IntSet(file, "VIP",VIP[playerid] = 0);
             	new IPplayer[16];
				GetPlayerIp(playerid, IPplayer, 16);
				format(string,128,  "{FF0000}[ {FFFFFF} Server {FF0000}] {FFFFFF} Nick : %s | Password : %s | IP : %s", Name(playerid), inputtext, IPplayer);
				SendClientMessage(playerid, -1, string);
            	format(string,128, "{FF0000}[{FFFFFF}  Server {FF0000}] {FFFFFF} You're registered", Name(playerid), inputtext);
                SendClientMessage(playerid, -1, string);
                SendClientMessage(playerid, 0xFFFFFF, string);
                gPlayerLogged[playerid] = 1;
        }
        if (dialogid == 82)
        {

                new file[64];
                format(file, sizeof(file), SERVER_USER_FILE, Name(playerid));
                if(!response) return Kick(playerid);
                if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 81, DIALOG_STYLE_PASSWORD, "You're registered", "Pamatuj si Heslo", "OK", "Kick");
                new tmp;
                tmp = dini_Int(file, "Password");
                if(udb_hash(inputtext) != tmp)
				{
                        new string[500];
			            new str[64], IPplayer[16];
			            strcat(string,"{FFFFFF}Welcome retroactively server mode {00FFFF}Welcome To San Andreas - WTSA.eu\n");
			            strcat(string,"\n");
			            strcat(string,"{FFFFFF}Tento {00FFFF}Nick {FFFFFF}already exists.\n");
			            strcat(string,"Zadejte heslo:\n");
			            strcat(string,"\n");
		           		strcat(string,"\n");
			            format(str, sizeof str, "{FFFFFF}Nick: {00FFFF}%s \n", Name(playerid));
				 		strcat(string, str);
				 		GetPlayerIp(playerid, IPplayer, 16);
				 		format(str, sizeof str, "{FFFFFF}IP: {00FFFF}%s \n", IPplayer);
				 		strcat(string, str);
                        ShowPlayerDialog(playerid, 82, DIALOG_STYLE_PASSWORD, "Login",string, "OK", "Kick");
                }
                else
                {
                        gPlayerLogged[playerid] = 1;
//                      
						VIP[playerid] = dini_Int(file, "VIP");
               			SendClientMessage(playerid,0xFFFFFF, "{FF0000}[ {FFFFFF}Server {FF0000}] {FFFFFF} Successful Login");
		}
        return 1; 
    }

    return 0; 
}
stock Name(playerid)
{
	new n[MAX_PLAYER_NAME];
	GetPlayerName(playerid,n,sizeof(n));
	return n;
}
When I put the server writes that "Unknown" and does not command or registering anything please help Thank You
Reply
#2

Why are you using DCMD, and strcmp/commandtext at the same time?
Reply
#3

I took some of my fashion I did not do it again 'cause vip come to a different mode so i went Taking of store need only why I do not
Reply
#4

pawn Код:
new string [100000];
Really?

Anyway, what command are you trying to type?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)