[Tutorial] їcomo mover un mapeado de posicion? By OTACON
#1

[] їcomo mover un mapeado de posicion?
By OTACON


[] Informacion:
bueno, esta vez le explicare como mover un mapeado ya hecho a una nueva posicion.
este tutoria es base del tutorial del usuario Correlli de la seccion ingles/tutoriales , que es el siguiente --> aca,
yo se los explicare con mis palabras y ejemplos.

bueno, comencemos.


[] Pasos a Seguir:

Paso 1:
para comenzar debemos tener nuestro mapeado al cual lo cambiaremos de posicion,
yo utilizare el mapeado de la 'Taberna/Bar(publicado)' ---> http://pastebin.com/gpgyD65s



Paso 2:
una vez ya teniendo el mapeado ingresaremos al map editor y mapearemos un objeto en el centro del mapeado para utilizar de base la posicion.



resultado:
pawn Код:
CreateObject(19375, 1002.45929, -1352.80933, 12.44410,   0.00000, 90.00000, 0.00000);
Paso 2:
ahora haremos lo mismo que anteriormente, pero para utilizar de base la posicion nueva donde estara el mapeado.



resultado:
pawn Код:
CreateObject(19375, 836.18658, -2091.69580, 11.85370,   0.00000, 90.00000, 0.00000);
Paso 3:

bueno ahora ya tendriamos la posicion bade vieja y nueva del mapeado.
ahora simplemente lo que debemos hacer para colocar el mapeado en la nueva posicion debemos de restar las coordenadas X Y Z del objeto base viejo y coordenadas X Y Z del objeto base nuevo y el resultado de esa resta se lo debemos de sumar a las cordenadas X Y Z de todos los objetos del mapeado.

pero para facilitar las cosas utilizaremos el code que no da el usuario Correlli.


objeto base viejo:
Код:
CreateObject(19375, 1002.45929, -1352.80933, 12.44410,   0.00000, 90.00000, 0.00000);
objeto base nuevo:
Код:
CreateObject(19375, 836.18658, -2091.69580, 11.85370,   0.00000, 90.00000, 0.00000);
Код:
#define X_OFFSET (X - X) //coordenada X del objeto base viejo y nuevo
#define Y_OFFSET (Y - Y) //coordenada Y del objeto base viejo y nuevo
#define Z_OFFSET (Z - Z) //coordenada Z del objeto base viejo y nuevo


[] codigo para mover los objetos:
pawn Код:
#include <a_samp>

#define pos_x_new  0.000
#define pos_y_new  0.000
#define pos_z_new  0.000

#define pos_x_old  0.000
#define pos_y_old  0.000
#define pos_z_old  0.000

stock CreateObjectEx(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz){
    printf("CreateObject(%i, %0.3f, %0.3f, %0.3f, %0.3f, %0.3f, %0.3f);",
        modelid, floatadd(x, floatsub(pos_x_new, pos_x_old)), floatadd(y, floatsub(pos_y_new, pos_y_old)), floatadd(z, floatsub(pos_z_new, pos_z_old)), rx, ry, rz);
    return true;
}
public OnFilterScriptInit(){
    // AQUI COLOCAS TU MAPEADO Y REEMPLAZA TODOS LOS 'CreateObject' por 'CreateObjectEx'
    return true;
}
colocamos el code en nuestro gamemode, compilamos y iniciamos el serividor por unos instantes nada mas para que cargue el mapeado y nos lo de mediante el printf del CreateObjectEx.

listo, abrimos el log y tendrimos los CreateObject con las nueva posicion del mapeado.






[] Creditos:
OTACON (traduccion)
Correlli (tutorial)
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)