[Ajuda] Sistema parecido ao telemуvel
#1

Boas pessoal, no GameMode de RolePlay que estou a fazer, eu fiz um sistema de telemovel, so que agora eu vou fazer outro sistema parecido ao telemovel ( um sistema de email ), mas queria duas alteraзoes do comando do sistema do telemovel, e eu queria que me ajudassem.
O comando do telemovel para quando se compra e o seguinte:

Код:
if(strcmp(cmd, "/comprartelemovel", true) == 0)
	{
	    for(new i = 0; i < sizeof(Businesses); i++)
		{
			if(IsPlayerInRangeOfPoint(playerid,25.0,Businesses[i][ExitX],Businesses[i][ExitY],Businesses[i][ExitZ]))
			{
				if(GetPlayerVirtualWorld(playerid) == i)
	   			{
				    if(Businesses[i][BizType] == 2)
				    {
				        if(Businesses[i][Products] != 0)
				        {
					        if(GetPlayerCash(playerid) >= 500)
					        {
				    			SendClientMessage(playerid,COLOR_LIGHTGREEN,"____________________________________________________");
           						SendClientMessage(playerid, COLOR_WHITE, "Tu comprastes um telemovel! -500Ђ);
                 				GivePlayerCash(playerid,-500);
                     			Businesses[i][Till] += 500;
                        		Businesses[i][Products]--;
                          		SendClientMessage(playerid,COLOR_LIGHTGREEN,"____________________________________________________");
 								PlayerActionMessage(playerid,15.0,"tira algum dinheiro da carteira e entrega ao empregado recebendo um telemovel em troca");
 								new randphone = 9999 + random(999999);
								PlayerInfo[playerid][pPhoneNumber] = randphone;
								PlayerInfo[playerid][pPhoneC] = i;
 								SaveBusinesses();
 								return 1;
							}
						}
					}
				}
			}
		}
		return 1;
	}
Este comando do sistema do telemovel, faz-se comprartelemovel e tem-se um numero aleatorio ( como esta no random ).
No sistema de email que eu quero fazer eu queria nao um comando /comprartelemovel, mas sim /criaremail [email], so que nao sei como fazer o comando com espaзo...

Depois em vez de fazer um random para obter o email, eu queria que as pessoas escolhessem o seu e-mail, por exemplo:

Uma pessoa, fazia /criaremail joaog e depois era-lhe atribuido o e-mail: joaog@serverderp.com.


Gostaria que me ajudassem,
Cumps,
Swat007forever
Reply
#2

Vc vai precisar disso:
OBS: Vc deve pensar em uma maneira de evitar um e-mail repetido , porйm nao serб possivel fazer isso se nгo for usar banco de dados , se vc naum optar dessa maneira, vc sу podera verificar email repetidos dos usuarios logados ou de outras formas que sгo muito piores em questao de desempenho.
pawn Код:
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, "uso: /comprar email");
                        return 1;
                    }
                    if(ValidEmail(result) == 0)
                    {
                        //email invalido
                        return 1;
                    }
                    new sql[128];
                    format(sql, sizeof(sql), "SELECT email FROM `Jogadores` WHERE Email='%s'",result);
                    mysql_query(sql);
                    if (mysql_num_rows() > 0)
                    {
                        //email jб registrado.
                        return 1;
                    }
                    //
                    strmid(PlayerInfo[playerid][pEmail], result, 0, strlen(result), 255);
                    //sql update email .. etc....

                   
                   
stock ValidEmail(email[])
{
    new len = strlen(email), cstate=0;
    for(new i=0;i<len;i++)
    {
        if (len<6) return false;
        if ((cstate==0 || cstate==1) && (email[i]>='A' && email[i]<='Z') || (email[i]>='a' && email[i]<='z')  || (email[i]=='.')  || (email[i]=='-')  || (email[i]=='_'))
        {
       
        }
        else
        {
            if ((cstate==0) &&(email[i]=='@'))
            {
                cstate=1;
            }
            else
            {
                return false;
            }
        }
    }
    if (cstate == 0) return false;
    if ((email[len-3]=='.') || (email[len-4]=='.') || (email[len-5]=='.')) return true;
    return false;
}
Reply
#3

O code que tenho feito para o e-mail й o seguinte:

Код:
	if(strcmp(cmd, "/criaremail", true) == 0)
	{
		if(Netstatus[playerid] == 1)
 		{
			PlayerActionMessage(playerid,15.0,"vai б internet e dirige-se ao site de criar uma nova conta email");
			PlayerActionMessage(playerid,15.0,"vai ao botгo de criar uma nova conta e cria uma conta email nova");
			  SendClientMessage(playerid,COLOR_LIGHTGREEN,"____________________________________________________");
			SendClientMessage(playerid, COLOR_WHITE, "Tu criastes uma conta email nova");
			SendClientMessage(playerid, COLOR_WHITE, "Se jб tinhas uma conta criada anteriormente e criastes esta nova, a antiga foi apagada");
			SendClientMessage(playerid,COLOR_LIGHTGREEN,"____________________________________________________");
			new randemail = 9999 + random(999999);
   			EmailOnline[playerid] = 0;
			PlayerInfo[playerid][pEmailId] = randemail;
			return 1;

		}
		return 1;
	}
Vinewood agradecia que me editasse o comando a partir desta conforme expliquei no novo post. Se for possivel coloque tambem como eu hei-de fazer para evitar a repetiзгo de e-mail.

Cumps,
Swat007forever
Reply
#4

Desculpem o double post, mas serб que alguйm me pode ajudar ?

Cumps,
Swat
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)