[Aportes indexados] Item Mapa

Estado
Cerrado para nuevas respuestas.

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.
 

Tavo

[color=#BF0000]Lucha por tus ideales![/color]
Lo dejo un poco aca y despues lo muevo... asi laguien opina sobre el codigo.
 

DarkThom

Oráculo Lvl 3
Ta bueno Eso de Hacerlo Item ,, Pero No era mas Facil Poner Que Le HAces Doble Click y te Abre una Imagen Mas grande??

Tipo la Tumba XD



yo en Mi Sv lo Tengo Como un boton arriba de las estadisticas que te llevaa un formulario y carga la imagen de Graficos :p


P.D.: no quiere Decir Que el Tuyo Sea Malo ;)
 

Amraphen

Aprendiz Lvl 6
Y... es para darle mas rol al servidor. Mi interfaz tambien tiene el boton mapa pero lo voy a sacar =P
 
Estado
Cerrado para nuevas respuestas.
Arriba