ZCMD y dcmd
#1

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?
Reply
#2

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.
Reply
#3

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
Reply
#4

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.
Reply
#5

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.
Reply
#6

Asн que lo mбs seguro y recomendable es nada mбs y nada menos que zcmd.
Reply
#7

ZCMD es mejor yo lo uso!!
Reply
#8

Estas utilizando este? https://sampforum.blast.hk/showthread.php?tid=48239

Si es asн, debes eliminar la inclusiуn de ese archivo y agregar la de este: https://sampforum.blast.hk/showthread.php?tid=91354

Luego, para no tener que modificar nada, agregas un macro:
pawn Код:
#define dcmd_%0 CMD:%0
Lo ъltimo serнa eliminar todo lo que tenga que ver con el sistema anterior, de OnPlayerCommandText.

No deberнas demorar mas de 1 minuto en cambiar todo el sistema. Tambiйn te recomendarнa que no uses esa macro y los cambies literalmente, con la opciуn de reemplazo de tu editor de cуdigo.

En cuanto a la velocidad, el segundo es mucho mas veloz a partir de 3 comandos en adelante (es relativo, va a depender del tamaсo de estos comandos, pero ni un servidor tiene menos de 10, por lo que es obviamente mejor elecciуn la 2da.).
Reply
#9

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б).
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)