[AYUDA] Pasar de strcmp a zcmd
#1

Hola, para no crear otro tema edito este, se trata de lo mismo.


Yo antes hacia esto:

pawn Код:
if(strlen(result)>=50)return SendClientMessage(playerid,-1,"No puedes escribir mas de 50 caracteres!");
Ahora lo intente hacer asн:

pawn Код:
if(params[0]>=50)return SendClientMessage(playerid,-1,"No puedes escribir mas de 50 caracteres!");
pero no anda, al poner el comando sale el mensaje "No puedes escribir mбs de 50 caracteres!" y solo escribi 2 caracteres.


pawn Код:
CMD:chatadmin(playerid, params[], help)
{
if(PlayerInfo[playerid][vAdmin]>=1)
{
if(sscanf(params, "s", params[0]))return SendClientMessage(playerid,-1,"USO: /chatadmin [Texto]");
if(params[0]>=50)return SendClientMessage(playerid,COLOR_GRIS,"No puedes escribir mas de 50 caracteres!");
format(Srt,sizeof(Srt),"[ChatAdmin] %s: %s",Name(playerid),params[0]);
ChatAdmin(Srt);
}
else SendClientMessage(playerid,-1,"No eres admin!");
return 1;
}

PD: Se puede editar el tema si es de la misma cosa a tratar para no tener que crear otro?


||______________________________________________|| SOLUCIONADO ||______________________________________________||
Hola, estoy empezando a usar zcmd y hay algunas cosas que no sй como se hacen.

Asн tenia el comando:
pawn Код:
if(strcmp(cmd,"/dardinero",true)==0)
{
if(InfoJugador[playerid][vAdmin]==5)
{
new dinero;
tmp1=strtok(cmdtext,idx);
tmp2=strtok(cmdtext,idx);
jugador=strval(tmp1);
dinero=strval(tmp2);

if(!strlen(tmp1)||!strlen(tmp2))return SendClientMessage(playerid,-1,"USO: /dardinero [ID] [Cantidad]");
if(strval(tmp2)<1||strval(tmp2)>1000000)return SendClientMessage(playerid,-1,"Tienes que /dardinero entre $1 y $1.000.000");
if(!IsPlayerConnected(jugador))return SendClientMessage(playerid,-1,"Jugador desconectado.");

format(Srt,sizeof(Srt),"El administrador %s te premio con $%d",Name(playerid),dinero);
SendClientMessage(jugador,-1,Srt);

GivePlayerMoney(jugador,dinero);
ActualizarDatos(jugador);
}
else SendClientMessage(playerid,-1,"No eres administrador nivel 5!");
return 1;
}

Lo pasй a zcmd y me quedo asн:
pawn Код:
CMD:dardinero(playerid, params[], help)
{
if(InfoJugador[playerid][vAdmin]==5)
{
if(sscanf(params, "un", params[0], params[1]))return SendClientMessage(playerid,-1,"USO: /dardinero [ID] [Cantidad]");

if(!IsPlayerConnected(params[0]))return SendClientMessage(playerid,-1,"Jugador desconectado.");

format(Srt,sizeof(Srt),"El administrador %s te premio con $%d",Name(playerid),params[1]);
SendClientMessage(params[0],-1,Srt);

GivePlayerMoney(params[0],params[1]);
ActualizarDatos(params[0]);
}
else SendClientMessage(playerid,-1,"No eres administrador nivel 5!");
return 1;
}
Quisiera saber como hacer esto en zcmd:

pawn Код:
if(strval(tmp2)<1||strval(tmp2)>1000000)return SendClientMessage(playerid,-1,"Tienes que /dardinero entre $1 y $1.000.000");

Tambнen quisiera saber si de la forma que lo pase a zcmd es la correcta.

Ya estoy pidiendo mucho, pero tambнen quisiera saber si el utilizar "ActualizarDatos(jugador);"
en cada comando que de algo podria causar lag o si esta bien usarlo.
Reply
#2

Estб bien tu comando, sуlo que no es "un" es "ud", parбmetro u para referir un jugador y d para un entero, en el de abajo sуlo cambia strval(tmp2) por params[1]
Reply
#3

Serнa asн:

pawn Код:
if(params[1]<1||params[1]>1000000)return SendClientMessage(playerid,-1,"Tienes que /dardinero entre $1 y $1.000.000");
Ya que "params[1]" lo definiste como cantidad pero cambia la "n" por una "d" como te dijeron arriba.
Reply
#4

Gracias a los 2
Reply
#5

Edit: Otra duda del mismo tema. la duda estб al principio, ayuda
Reply
#6

pawn Код:
if(strlen(params[0])>=50)return SendClientMessage(playerid,-1,"No puedes escribir mas de 50 caracteres!");
Reply
#7

No causarб lag si se usa correctamente, pero estбs sujeto a que alguien pueda sacarse el hotketboard y haga un flood para querer lageartelo. (Aunque quizб depende de cuantos datos sean)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)