Amraphen
Aprendiz Lvl 6
[SERVIDOR/CLIENTE] Item Mapa
Bueno, este es el código para crear un item que al hacerle doble click (o sea, usarlo, con la tecla U) en el cliente te abra una ventana con el mapa del mundo =).
Les dejo el código. Funciona perfectamente con la versión 0.11.5.
Aclaro también que se deben hacer cambios dentro del cliente y el servidor.
1er parte: SERVIDOR
Buscamos lo siguiente en el módulo Declaraciones [Declares.bas]:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #b1b100;">Public</span> <span style="color: #b1b100;">Enum</span> eOBJType</li><li style="" class="li2"> </li></ol></div>[/vb]
Luego, dentro de esa enumeración buscamos el último item que no es otCualquiera (o sea, el penúltimo, que debe ser 35) y abajo ponemos:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"> otMapa = <span style="color: #cc66cc;">36</span> <span style="color: #808080;">'El 36 se lo debe cambiar por el item anterior + 1</span></li><li style="" class="li2"> </li></ol></div>[/vb]
Después, dentro del módulo InvUsuario [InvUsuario.bas], dentro del sub UseInvItem, buscamos lo siguiente:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"> <span style="color: #b1b100;">Case</span> eOBJType.<span style="color: #66cc66;">otBarcos</span></li><li style="" class="li2"> </li></ol></div>[/vb]
Y luego de todo ese código, una línea antes del End Select que está justo antes del End Sub, colocamos lo siguiente:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"> <span style="color: #b1b100;">Case</span> eOBJType.<span style="color: #66cc66;">otMapa</span></li><li style="" class="li2"> <span style="color: #b1b100;">If</span> UserList<span style="color: #66cc66;">(</span>UserIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">flags</span>.<span style="color: #66cc66;">Muerto</span> = <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">Then</span></li><li style="" class="li1"> <span style="color: #b1b100;">Call</span> SendData<span style="color: #66cc66;">(</span>SendTarget.<span style="color: #66cc66;">ToIndex</span>, UserIndex, <span style="color: #cc66cc;">0</span>, <span style="color: #ffffff;">"||¡¡Estas muerto!!"</span> & FONTTYPE_INFO<span style="color: #66cc66;">)</span></li><li style="" class="li1"> <span style="color: #b1b100;">Exit</span> <span style="color: #b1b100;">Sub</span></li><li style="" class="li2"> <span style="color: #b1b100;">End</span> <span style="color: #b1b100;">If</span></li><li style="" class="li1"> </li><li style="" class="li1"> <span style="color: #b1b100;">If</span> UserList<span style="color: #66cc66;">(</span>UserIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">flags</span>.<span style="color: #66cc66;">Paralizado</span> = <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">Then</span></li><li style="" class="li2"> <span style="color: #b1b100;">Call</span> SendData<span style="color: #66cc66;">(</span>SendTarget.<span style="color: #66cc66;">ToIndex</span>, UserIndex, <span style="color: #cc66cc;">0</span>, <span style="color: #ffffff;">"||¡¡Estas paralizado!!"</span> & FONTTYPE_INFO<span style="color: #66cc66;">)</span></li><li style="" class="li1"> <span style="color: #b1b100;">Exit</span> <span style="color: #b1b100;">Sub</span></li><li style="" class="li1"> <span style="color: #b1b100;">End</span> <span style="color: #b1b100;">If</span></li><li style="" class="li2"> </li><li style="" class="li1"> <span style="color: #b1b100;">Call</span> SendData<span style="color: #66cc66;">(</span>SendTarget.<span style="color: #66cc66;">ToIndex</span>, UserIndex, <span style="color: #cc66cc;">0</span>, <span style="color: #ffffff;">"SMAP"</span><span style="color: #66cc66;">)</span> <span style="color: #808080;">'Despues hacemos el handle en el cliente.</span></li><li style="" class="li1"> </li></ol></div>[/vb]
Después, simplemente agregamos el objeto al obj.dat, que tiene que quedar así:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #66cc66;">[</span>OBJXXX<span style="color: #66cc66;">]</span> <span style="color: #808080;">'Acuerdense de cambiar el XXX por el numero de obj que deseen, y tambien acuerdense de cambiar NumObjs al principio.</span></li><li style="" class="li2"><span style="color: #b1b100;">Name</span>=Mapa del mundo</li><li style="" class="li1">GrhIndex=<span style="color: #cc66cc;">609</span></li><li style="" class="li1">Objtype=<span style="color: #cc66cc;">38</span></li><li style="" class="li2">Agarrable=<span style="color: #cc66cc;">0</span></li><li style="" class="li1">Valor=<span style="color: #cc66cc;">1000</span></li><li style="" class="li1">Crucial=<span style="color: #cc66cc;">1</span></li><li style="" class="li2"> </li></ol></div>[/vb]
2da parte: CLIENTE
Dentro del cliente, creamos un formulario que se llame frmMapa (dentro del project explorer hacemos click derecho > add > form y luego cambiamos la propiedad name a frmMapa) y le ponemos Mapa de caption y Fixed Single de BorderStyle.
Después, agregamos adentro un control image, y seteamos las propiedades name a Image1 y la propiedad Stretch a True.
Luego, abrimos el código del formulario y copiamos el siguiente código:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Sub</span> Form_Load<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span></li><li style="" class="li2"> Image1.<span style="color: #66cc66;">Picture</span> = <span style="color: #b1b100;">LoadPicture</span><span style="color: #66cc66;">(</span>App.<span style="color: #66cc66;">Path</span> & <span style="color: #ffffff;">"\Graficos\Mapa.jpg"</span><span style="color: #66cc66;">)</span></li><li style="" class="li1"> </li><li style="" class="li1"> <span style="color: #b1b100;">Me</span>.<span style="color: #b1b100;">Width</span> = Image1.<span style="color: #b1b100;">Width</span></li><li style="" class="li2"> <span style="color: #b1b100;">Me</span>.<span style="color: #66cc66;">Height</span> = Image1.<span style="color: #66cc66;">Height</span></li><li style="" class="li1"><span style="color: #b1b100;">End</span> <span style="color: #b1b100;">Sub</span></li><li style="" class="li1"> </li></ol></div>[/vb]
Después, abrimos el módulo mod_TCP [TCP.bas], y buscamos dentro del mismo lo siguiente:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"> Select <span style="color: #b1b100;">Case</span> sData</li><li style="" class="li2"> </li></ol></div>[/vb]
Y abajo de esa línea colocamos lo siguiente:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"> <span style="color: #b1b100;">Case</span> <span style="color: #ffffff;">"SMAP"</span></li><li style="" class="li2"> frmMapa.<span style="color: #66cc66;">Show</span> , frmMain</li><li style="" class="li1"> </li></ol></div>[/vb]
3er parte: Gráfico del mapa
Lo último que queda es buscar el gráfico del mapa. Fácil, entras al manual de Alkon, y justo al final hay una imagen con el mapa de AO. Guardas la imagen a tu PC y la incluis en la carpeta GRAFICOS del cliente con el nombre Mapa.jpg y listo!.
Acá les dejo unas imágenes de como lo tengo yo:
Saludos!
PD: Algún mod que lo mueva a desarrollos completos.
Bueno, este es el código para crear un item que al hacerle doble click (o sea, usarlo, con la tecla U) en el cliente te abra una ventana con el mapa del mundo =).
Les dejo el código. Funciona perfectamente con la versión 0.11.5.
Aclaro también que se deben hacer cambios dentro del cliente y el servidor.
1er parte: SERVIDOR
Buscamos lo siguiente en el módulo Declaraciones [Declares.bas]:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #b1b100;">Public</span> <span style="color: #b1b100;">Enum</span> eOBJType</li><li style="" class="li2"> </li></ol></div>[/vb]
Luego, dentro de esa enumeración buscamos el último item que no es otCualquiera (o sea, el penúltimo, que debe ser 35) y abajo ponemos:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"> otMapa = <span style="color: #cc66cc;">36</span> <span style="color: #808080;">'El 36 se lo debe cambiar por el item anterior + 1</span></li><li style="" class="li2"> </li></ol></div>[/vb]
Después, dentro del módulo InvUsuario [InvUsuario.bas], dentro del sub UseInvItem, buscamos lo siguiente:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"> <span style="color: #b1b100;">Case</span> eOBJType.<span style="color: #66cc66;">otBarcos</span></li><li style="" class="li2"> </li></ol></div>[/vb]
Y luego de todo ese código, una línea antes del End Select que está justo antes del End Sub, colocamos lo siguiente:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"> <span style="color: #b1b100;">Case</span> eOBJType.<span style="color: #66cc66;">otMapa</span></li><li style="" class="li2"> <span style="color: #b1b100;">If</span> UserList<span style="color: #66cc66;">(</span>UserIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">flags</span>.<span style="color: #66cc66;">Muerto</span> = <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">Then</span></li><li style="" class="li1"> <span style="color: #b1b100;">Call</span> SendData<span style="color: #66cc66;">(</span>SendTarget.<span style="color: #66cc66;">ToIndex</span>, UserIndex, <span style="color: #cc66cc;">0</span>, <span style="color: #ffffff;">"||¡¡Estas muerto!!"</span> & FONTTYPE_INFO<span style="color: #66cc66;">)</span></li><li style="" class="li1"> <span style="color: #b1b100;">Exit</span> <span style="color: #b1b100;">Sub</span></li><li style="" class="li2"> <span style="color: #b1b100;">End</span> <span style="color: #b1b100;">If</span></li><li style="" class="li1"> </li><li style="" class="li1"> <span style="color: #b1b100;">If</span> UserList<span style="color: #66cc66;">(</span>UserIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">flags</span>.<span style="color: #66cc66;">Paralizado</span> = <span style="color: #cc66cc;">1</span> <span style="color: #b1b100;">Then</span></li><li style="" class="li2"> <span style="color: #b1b100;">Call</span> SendData<span style="color: #66cc66;">(</span>SendTarget.<span style="color: #66cc66;">ToIndex</span>, UserIndex, <span style="color: #cc66cc;">0</span>, <span style="color: #ffffff;">"||¡¡Estas paralizado!!"</span> & FONTTYPE_INFO<span style="color: #66cc66;">)</span></li><li style="" class="li1"> <span style="color: #b1b100;">Exit</span> <span style="color: #b1b100;">Sub</span></li><li style="" class="li1"> <span style="color: #b1b100;">End</span> <span style="color: #b1b100;">If</span></li><li style="" class="li2"> </li><li style="" class="li1"> <span style="color: #b1b100;">Call</span> SendData<span style="color: #66cc66;">(</span>SendTarget.<span style="color: #66cc66;">ToIndex</span>, UserIndex, <span style="color: #cc66cc;">0</span>, <span style="color: #ffffff;">"SMAP"</span><span style="color: #66cc66;">)</span> <span style="color: #808080;">'Despues hacemos el handle en el cliente.</span></li><li style="" class="li1"> </li></ol></div>[/vb]
Después, simplemente agregamos el objeto al obj.dat, que tiene que quedar así:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #66cc66;">[</span>OBJXXX<span style="color: #66cc66;">]</span> <span style="color: #808080;">'Acuerdense de cambiar el XXX por el numero de obj que deseen, y tambien acuerdense de cambiar NumObjs al principio.</span></li><li style="" class="li2"><span style="color: #b1b100;">Name</span>=Mapa del mundo</li><li style="" class="li1">GrhIndex=<span style="color: #cc66cc;">609</span></li><li style="" class="li1">Objtype=<span style="color: #cc66cc;">38</span></li><li style="" class="li2">Agarrable=<span style="color: #cc66cc;">0</span></li><li style="" class="li1">Valor=<span style="color: #cc66cc;">1000</span></li><li style="" class="li1">Crucial=<span style="color: #cc66cc;">1</span></li><li style="" class="li2"> </li></ol></div>[/vb]
2da parte: CLIENTE
Dentro del cliente, creamos un formulario que se llame frmMapa (dentro del project explorer hacemos click derecho > add > form y luego cambiamos la propiedad name a frmMapa) y le ponemos Mapa de caption y Fixed Single de BorderStyle.
Después, agregamos adentro un control image, y seteamos las propiedades name a Image1 y la propiedad Stretch a True.
Luego, abrimos el código del formulario y copiamos el siguiente código:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #b1b100;">Private</span> <span style="color: #b1b100;">Sub</span> Form_Load<span style="color: #66cc66;">(</span><span style="color: #66cc66;">)</span></li><li style="" class="li2"> Image1.<span style="color: #66cc66;">Picture</span> = <span style="color: #b1b100;">LoadPicture</span><span style="color: #66cc66;">(</span>App.<span style="color: #66cc66;">Path</span> & <span style="color: #ffffff;">"\Graficos\Mapa.jpg"</span><span style="color: #66cc66;">)</span></li><li style="" class="li1"> </li><li style="" class="li1"> <span style="color: #b1b100;">Me</span>.<span style="color: #b1b100;">Width</span> = Image1.<span style="color: #b1b100;">Width</span></li><li style="" class="li2"> <span style="color: #b1b100;">Me</span>.<span style="color: #66cc66;">Height</span> = Image1.<span style="color: #66cc66;">Height</span></li><li style="" class="li1"><span style="color: #b1b100;">End</span> <span style="color: #b1b100;">Sub</span></li><li style="" class="li1"> </li></ol></div>[/vb]
Después, abrimos el módulo mod_TCP [TCP.bas], y buscamos dentro del mismo lo siguiente:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"> Select <span style="color: #b1b100;">Case</span> sData</li><li style="" class="li2"> </li></ol></div>[/vb]
Y abajo de esa línea colocamos lo siguiente:
[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"> <span style="color: #b1b100;">Case</span> <span style="color: #ffffff;">"SMAP"</span></li><li style="" class="li2"> frmMapa.<span style="color: #66cc66;">Show</span> , frmMain</li><li style="" class="li1"> </li></ol></div>[/vb]
3er parte: Gráfico del mapa
Lo último que queda es buscar el gráfico del mapa. Fácil, entras al manual de Alkon, y justo al final hay una imagen con el mapa de AO. Guardas la imagen a tu PC y la incluis en la carpeta GRAFICOS del cliente con el nombre Mapa.jpg y listo!.
Acá les dejo unas imágenes de como lo tengo yo:

Saludos!
PD: Algún mod que lo mueva a desarrollos completos.