Duda Dini -
ivan23 - 18.07.2014
Hice un cmd para dar rango. Primero el puse q solo el dueño del clan pueda dar rango. Pero ahora le agrege una una variable q le de rango 1 cuando acepta entrar al clan. y teniendo rango 5 pueda dar rango a los demas
PHP код:
dini_IntSet(pFile, "Rango", 1);
pero solo detecta al dueño y no al rango
PHP код:
if(strcmp(dini_Get(gFile, "Rango"), "5") || strcmp(dini_Get(gFile, "Dueno"), PlayerName(playerid), false))
{
SendClientMessaje(playerid, -1, "Tu no eres el dueño de la banda o no tienes rango 5");
return 1;
}
else
{
Tambien lo hice asi
PHP код:
if(strcmp(dini_Get(gFile, "Rango"), "5", false) || strcmp(dini_Get(gFile, "Dueno"), PlayerName(playerid), false))
{
SendClientMessaje(playerid, -1, "Tu no eres el dueño de la banda o no tienes rango 5");
return 1;
}
else
{
Pero funciona teniendo el rango 1,2,3,4,5
Re: Duda Dini -
Miguel - 18.07.2014
ivan23, las cadenas de caracteres (strings) no pueden ser tratadas como los otros tipos de variables. їPor quй te digo esto?
Porque esto no es correcto:
pawn Код:
x = "insertar texto aqui";
Ni esto:
pawn Код:
strcmp(dini_Get(gFile, "Rango"), "5", false)
Yo no se que devuelve dini_Get pero estoy casi seguro que no devuelve una cadena de caracteres porque simplemente no es posible hacerlo. Apuesto que devuelve un nъmero entero y tampoco puedes comparar una cadena con un nъmero entero.
їTus opciones? Meter el nъmero en una cadena y luego comparar esa ъltima con "5".
pawn Код:
new str_rango[3];
format(str_rango, sizeof(str_rango), "%d", dini_Get(gFile, "Rango"));
if (!strcmp(str_rango, "5", true))
{
// Cуdigo.
}
La segunda opciуn (mucho mejor que la primera) es comparar directamente los nъmeros enteros, sin usar strcmp.
pawn Код:
if (dini_Get(gFile, "Rango") == 5)
{
// Cуdigo.
}
Y asн con todas las condiciones. Debes estar atento y saber que devuelven las funciones (dini_Get por ejemplo).
Re: Duda Dini -
ivan23 - 18.07.2014
No funciono. no detecta el rango. Le puse para q solo detecte al rango 5 y no al dueño. pero igual
Aqui el cmd original
PHP код:
CMD:rango(playerid, params[])
{
format(pFile, sizeof(pFile), "Clanes/%s.ini", PlayerName(playerid));
if(!dini_Exists(pFile))
{
SendClientMessage(playerid, -1, "Tu no tienes banda");
return 1;
}
else if(dini_Exists(pFile))
{
if(strcmp(dini_Get(pFile, "Clan"), "Ninguno", true) == 0)
{
SendClientMessage(playerid, -1, "No tienes banda");
return 1;
}
else if(strcmp(dini_Get(pFile, "Clan"), "Ninguno", false))
{
format(gFile, sizeof(gFile), "Clanes/%s.ini", dini_Get(pFile, "Clan"));
if(strcmp(dini_Get(gFile, "Dueno"), PlayerName(playerid), false))
{
SendClientMessage(playerid, -1, "No eres dueño de la banda");
return 1;
}
else
{
new miembro, rango;
if(sscanf(params, "dd", miembro, rango))return SendClientMessage(playerid, -1, "Usa "cAmarillo"/rango "cBlanco"["cAmarillo"ID de miembro"cBlanco"]["cAmarillo"rango"cBlanco"]");
if(miembro < 1 || miembro > 15)return SendClientMessage(playerid, -1, "Uso correcto "cAmarillo"/rango ["cAmarillo"1 "cBlanco"- "cAmarillo"15"cBlanco"]["cAmarillo"1 "cBlanco"- "cAmarillo"5"cBlanco"].");
new dotext[16];
switch(rango)
{
case 1: dotext = "Novato";
case 2: dotext = "Aprendiz";
case 3: dotext = "Reclutador";
case 4: dotext = "Comandante";
case 5: dotext = "Sub-Lider";
}
if(miembro == 1)
{
if(strcmp(dini_Get(gFile, "Miembro1"), "Vacio", true) == 0)return SendClientMessage(playerid, -1, "No hay ningun miembro de tu banda en ese numero 1!");
if(rango < 1 || rango > 5)return SendClientMessage(playerid, -1, "rango 1-5.");
format(gstring2, sizeof(gstring2), "Clanes/%s.ini", PlayerName(miembro));
MensagemFormatada(playerid, -1, "Le diste a "cAmarillo"%s "cBlanco"el rango de "cAmarillo"%s"cBlanco".", dini_Get(gFile, "Miembro1"), dotext);
dini_IntSet(pFile, "Rango", rango);
return 1;
}
Asi es como lo hice
PHP код:
CMD:rango(playerid, params[])
{
format(pFile, sizeof(pFile), "Clanes/%s.ini", PlayerName(playerid));
if(!dini_Exists(pFile))
{
SendClientMessage(playerid, -1, "Tu no tienes banda");
return 1;
}
else if(dini_Exists(pFile))
{
if(strcmp(dini_Get(pFile, "Clan"), "Ninguno", true) == 0)
{
SendClientMessage(playerid, -1, "No tienes banda");
return 1;
}
else if(strcmp(dini_Get(pFile, "Clan"), "Ninguno", false))
{
//format(gFile, sizeof(gFile), "Clanes/%s.ini", dini_Get(pFile, "Clan"));
format(gFile, sizeof(gFile), "Clanes/%s.ini", dini_Get(pFile, "Rango"));
//if(strcmp(dini_Get(gFile, "Dueno"), PlayerName(playerid), false))
if(dini_Int(gFile, "Rango") == 5)
{
SendClientMessage(playerid, -1, "No tienes rango 5");
return 1;
}
else
{
new miembro, rango;
if(sscanf(params, "dd", miembro, rango))return SendClientMessage(playerid, -1, "Usa "cAmarillo"/rango "cBlanco"["cAmarillo"ID de miembro"cBlanco"]["cAmarillo"rango"cBlanco"]");
if(miembro < 1 || miembro > 15)return SendClientMessage(playerid, -1, "Uso correcto "cAmarillo"/rango ["cAmarillo"1 "cBlanco"- "cAmarillo"15"cBlanco"]["cAmarillo"1 "cBlanco"- "cAmarillo"5"cBlanco"].");
new dotext[16];
switch(rango)
{
case 1: dotext = "Novato";
case 2: dotext = "Aprendiz";
case 3: dotext = "Reclutador";
case 4: dotext = "Comandante";
case 5: dotext = "Sub-Lider";
}
if(miembro == 1)
{
if(strcmp(dini_Get(gFile, "Miembro1"), "Vacio", true) == 0)return SendClientMessage(playerid, -1, "No hay ningun miembro de tu banda en ese numero 1!");
if(rango < 1 || rango > 5)return SendClientMessage(playerid, -1, "rango 1-5.");
format(gstring2, sizeof(gstring2), "Clanes/%s.ini", PlayerName(miembro));
MensagemFormatada(playerid, -1, "Le diste a "cAmarillo"%s "cBlanco"el rango de "cAmarillo"%s"cBlanco".", dini_Get(gFile, "Miembro1"), dotext);
dini_IntSet(pFile, "Rango", rango);
return 1;
}