Mensajepor Jarlaxe » Jue, 23 Ene 2014, 11:50
nathan, de nuevo te invoco.
El cambio de color en el icono del idolo lo quería hacer justamente al reves de como me lo planteabas.
Quería que por defecto el icono se mostrara "apagado" (azul) y cuando se recoge un ídolo entonces se pintara de amarillo.
Yo to reshulón me digo, no pasa na, en lugar de poner los números que pintan de azul, lo que hago es modificar el fondo del marcador title.bin y lo pongo en color azul por defecto. Y a la hora de pintar encima, pongo los códigos de color 71,70,70,6 que es el amarillo....
Un mojón pa mi! A la hora de mostrar el title guay, si ve azul, pero al iniciar el güego, cambia a amarillo directamente, y claro, cuando recojo un idolo, se queda igual que estaba, amarillo!
Yo pensaba que se pintaba sobre el marcador directamente cuando cogías algo, pero por lo que veo, lo que hace es colocar el tile del tileset, y posicionarlo en el marcador!
Joeeee, alguna sugerencia?
Edit: Si por defecto lo que hace al iniciar la partida es "llamar" a ese tile y posicionarlo en pantalla. ¿se puede hacer esa llamada solo cuando se recoja el objeto, y cuando lo deje en el altar que se borre hasta que se recoja otro nuevamente? Así mientras no está en pantalla, se vería el "fondo" del title.bin que sería de color azul oscuro por defecto. Igual me he flipao... ¬_¬
Edit 2: Solucionado! simplemente he tenido que invertir la posición y ya muestra como yo quería.
$this->bbcode_second_pass_code('', '#ifndef DEACTIVATE_OBJECTS
void draw_objs () {
#if defined(ONLY_ONE_OBJECT) && defined(ACTIVATE_SCRIPTING)
if (player.objs) {
draw_coloured_tile (OBJECTS_ICON_X, OBJECTS_ICON_Y, 17);
} else {
sp_PrintAtInv (OBJECTS_ICON_Y, OBJECTS_ICON_X, 65, 132);
sp_PrintAtInv (OBJECTS_ICON_Y, OBJECTS_ICON_X + 1, 65, 133);
sp_PrintAtInv (OBJECTS_ICON_Y + 1, OBJECTS_ICON_X, 65, 134);
sp_PrintAtInv (OBJECTS_ICON_Y + 1, OBJECTS_ICON_X + 1, 1, 135);
}
print_number2 (OBJECTS_X, OBJECTS_Y, flags [OBJECT_COUNT]);
#else
print_number2 (OBJECTS_X, OBJECTS_Y, player.objs);
#endif
}
#endif')