13.11.2014, 13:58
Quote:
En tiempo no obtienes diferencias, ya que de todas formas llamas a lo mismo, lo que haces es resumir lнneas y a la hora de compilar lo compila en menos tiempo. (Por menos lнneas de cуdigo)
|
Con llamada de funciуn:
pawn Код:
PROC func_01
break
push.c 0x1F4
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
break
push.c 0x22C
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
break
push.c 0x264
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
break
push.c 0x29C
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
break
push.c 0x2D4
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
zero.pri
retn
ENDP
PROC OnPlayerConnect
break
push.s 0xC
push.c 0x4
call func_01
break
const.pri 0x1
retn
ENDP
pawn Код:
PROC OnPlayerConnect
break
push.c 0x1F4
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
break
push.c 0x22C
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
break
push.c 0x264
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
break
push.c 0x29C
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
break
push.c 0x2D4
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
break
const.pri 0x1
retn
ENDP
Recomendaria hacer este tipo de cуdigo con un iterador si el objetivo es ahorrar lineas:
pawn Код:
PROC OnPlayerConnect
break
push.c 0x0
jump jump_0000
jump_0002:
break
inc.s -0x4
jump_0000:
load.s.pri -0x4
const.alt 0x5
jsgeq jump_0001
break
push.c 0x1F4
push.c -0x1
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
jump jump_0002
jump_0001:
stack 0x4
break
const.pri 0x1
retn
ENDP
pawn Код:
push.c 0x1F4 // Argumento playerid
push.c -0x1 //Color en este caso (-1)
push.s 0xC
push.c 0xC
sysreq.c [BAD SYSREQ]
stack 0x10
OJO: Estas operaciones son sin las condiciones ya que se me olvidу agregarlas, pero de igual forma no tienen sentido esas condiciones ya que el else if nunca se ejecutaria.
Un saludo.