Posts: 558
Threads: 30
Joined: Jun 2014
Reputation:
0
Buenas. Quiero que me aclaren una duda que siempre tuve. Hay bastante diferencia entre ZCMD y DCMD? y si la hay, es notable? a lo largo del servidor (si йste se llegara a abrir) la diferencia se notarнa bastante? o solo es por un tema de comodidad?
Posts: 221
Threads: 2
Joined: Apr 2011
Reputation:
0
La velocidad, optimizaciуn, y comodidad en algunos casos (para mi es mбs incomodo). A menos que tengas un servidor repleto de usuarios (150 en adelante), no vas a notar gran diferencia.
Posts: 558
Threads: 30
Joined: Jun 2014
Reputation:
0
Creo que dcmd se puede utilizar de la misma forma que zcmd їme equivoco?. Entonces no habrнa problema en usar dcmd en lugar de zcmd, esto lo digo porque sino tengo que pasar comando por comando a zcmd
Posts: 221
Threads: 2
Joined: Apr 2011
Reputation:
0
No, creo que en dcmd tenes que declarar el comando antes en OnPlayerCommandText. A menos que modifiques el include para que funcione asн, pero la verdad no te conviene, deberнas seguir usando dcmd o cambiar todos a zcmd.
Posts: 1,642
Threads: 35
Joined: Nov 2011
Reputation:
0
zcmd es mejor hablando en tйrminos de velocidad y sobrecarga - Cuando tengas muchos comandos utilizando DCMD podrбs ver una reducciуn de velocidad bastante considerable, su rapidez debe ser a causa de que CallRemoteFunction no crea tanta sobrecarga.
Puedes crear la sintaxis de ZCMD para DCMD sн, sin embargo lo demбs sigue siendo lo mismo.
Posts: 558
Threads: 30
Joined: Jun 2014
Reputation:
0
Asн que lo mбs seguro y recomendable es nada mбs y nada menos que zcmd.
Posts: 263
Threads: 6
Joined: Mar 2012
Aunque tengas 500 usuarios, no vas a notar ninguna diferencia. Dicen que es mas rapido zcmd porque directamente cuando pones un comando, el server lo que hace es llamar a la funcion compilada cmd_<comando> usando CallRemoteFunction. En cambio, dcmd cuando pones un comando compara el comando escrito con todos los comandos que pusiste en OnPlayerCommandText (usando strcmp). Entonces, se podrнa decir que zcmd es mбs rapido en el caso de tener pocos comandos, pero no te preocupes por eso! Si tenes muchos comandos, como crees que funciona CallRemoteFunction? Compara todas las entradas de funciones obtenidas por el AMX (que es el interpretador del codigo pawn compilado a bytecode) recordemos que en los archivos amx las funciones publicas (public y forward) se guardan con su nombre tal cual en el archivo .amx, es decir no se compilan las entradas, para que justamente se puedan llamar desde codigos externos, seria "exportar" las funciones para usarlas publicamente, por todo el que lo desee. Es logico que strcmp va a ser mas rapido escrito en c++ ya que directamente se compila a codigo nativo. En cambio, si usas pawn para strcmp va a ser mas lento ya que un programa escrito en c++ va a interpretar el codigo compilado en pawn, lo que lleva su tiempo. En cambio, dcmd no usa CallRemoteFunction, directamente linkea el codigo del comando al strcmp, que se hace en tiempo de compilacion y no en tiempo real (o tiempo de ejecuciуn) como lo hace zcmd.
En conclusion, no lo cambies si te preocupa la velocidad. Cambialo porque zcmd es mбs prбctico (No necesitas declarar el comando en OnPlayerCommandText, solamente un macro y ya estб).