[Ajuda] Sistema parecido ao telemуvel -
Swat007forever - 31.12.2010
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
Re: [Ajuda] Sistema parecido ao telemуvel -
vinewood - 01.01.2011
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;
}
Re: [Ajuda] Sistema parecido ao telemуvel -
Swat007forever - 01.01.2011
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
Re: [Ajuda] Sistema parecido ao telemуvel -
Swat007forever - 02.01.2011
Desculpem o double post, mas serб que alguйm me pode ajudar ?
Cumps,
Swat