Allied Modders en español

Versión completa: [TUT] Como crear entidades [ENGINE]
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Tutorial de Entidades.

Bueno comenzemos con el tutorial, cabe destacar que este tutorial va de engine, lo que me llevo a la creación de este tutorial es que hay gente que no entendio bien otros tutoriales, puede ser que con este tutorial pueda encontrar información util, algo que no encontro en otro post/tutorial.



¿Como creo la entidad?
Primero de lo primero, ¿como creo una entidad y le seteo classname en engine?, muy simple:
Código PHP:
new NAME_ENTITY create_entity(""// NAME_ENTITY = variable identificadora de la entidad, se puede cambiar obviamente.
entity_set_string(NAME_ENTITYEV_SZ_classname"ENTITY"// Seteamos CLASSNAME 

Dentro de "Create_Entity" hay que poner el tipo de entidad que va a ser.

Ejemplos para poner en create_entity:
Cita:- info_target // Para entidad sin uso, una entidad sin función.
- envsprite // Para colocar un sprite.
- func_button // Hace la función de un "Button". (Boton...)
- func_door // Función que se encuentran en las puertas que se abren de costado.
- func_door_rotating // Función que se encuentran en las puertas que rotan
- func_breakable // Entidad rompible, no se hasta que punto.

¿Como seteo el origin?
Bueno despues de esto, hay que asignarle un "origin", lugar donde spawnear a la entidad, yo se lo asigno a travez de una float.
Código PHP:
new iOriginI[3// Variable con Enteros.
new Float:iOriginF[3// Variable con Decimales. (Float)

get_user_origin(indexiOriginI3// Tercer Parametro obtiene el AIM del jugador.

IVecFVec(iOriginIiOriginF// Convertimos Entero a Decimal

entity_set_vector(NAME_ENTITYEV_VEC_originiOriginF// Seteamos el Origin 

Otra manera... (Con cordenadas definidas)

Código PHP:
new iOriginDEF[] = {99999.099999.099999.0// (Variable Definida)

entity_set_vector(NAME_ENTITYEV_VEC_originiOriginDEF// Seteamos el Origin 



¿Como seteo tipo de solido?
Tipico, como setear tipos de solidos, traspasables, solido etc.
Código PHP:
entity_set_int(NAME_ENTITYEV_INT_solidSOLID_// Seteamos el tipo de solido 

Tipos de solidos:

Código PHP:
#define SOLID_NOT                       0           // No interactua toca ningun objeto y es traspasable.
#define SOLID_TRIGGER                   1           // Es Tocable pero traspasable.
#define SOLID_BBOX                      2           // Se toca pero es solido.
#define SOLID_SLIDEBOX                  3           // Es Tocable en el aire, pero no en el suelo.
#define SOLID_BSP                       4           // Es solido, tocable, pero no sé para que sirve :'v 



¿Como le doy un tamaño a la entidad?
Dandosela okno Nothingdohere

PD: Me tome como 10 mins haciendo esa foto e.e


[Imagen: QSxJmBN.png]

Código PHP:
new Float:mins[3] = {-10.0, -25.00.0}
// MINS:
// Parametro 1 = Size Atras
// Parametro 2 = Size Derecha
// Parametro 3 = Size Abajo

new Float:maxs[3] = {10.025.075.0}
// MAXS :
// Parametro 1 = Size Adelante
// Parametro 2 = Size Izquierda
// Parametro 3 = Size Arriba

entity_set_size(NAME_ENTITYminsmaxs// Seteamos el tamaño 



¿Como seteo los MOVETYPE_?
Como setear movetype, como se va a mover el objeto etc, si vuelva camina corre etc.

Código PHP:
entity_set_int(NAME_ENTITYEV_INT_movetypeMOVETYPE_

Tipos de movetype_:
Código PHP:
#define MOVETYPE_NONE                   0           // No se mueve NUNCA O.O .
#define MOVETYPE_WALK                   3           // Solo para player - se Mueve en el suelo/piso.
#define MOVETYPE_STEP                   4           // Tiene physics cuando le pegas.
#define MOVETYPE_FLY                    5           // Vuela, es colisionable.
#define MOVETYPE_TOSS                   6           // Vuela y colisiona :v
#define MOVETYPE_PUSH                   7           // No clip to world, push and crush - dejo esta traducción temporalmente
#define MOVETYPE_NOCLIP                 8           // Vuela, no colisiona, tiene velocidad oh si.
#define MOVETYPE_FLYMISSILE             9           // Mismo solo que para 'monsters'
#define MOVETYPE_BOUNCE                 10          // Rebota y bota y bota, depende de cuando le peges va mas rapido.
#define MOVETYPE_BOUNCEMISSILE          11          // Bounce w/o Gravity :'v
#define MOVETYPE_FOLLOW                 12          // Sigue al player, sirve para armar hats etc.
#define MOVETYPE_PUSHSTEP               13          // Necesita physics y un model BSP 


¿Como le seteo un model?
Es muy simple colocar un model a una entidad.

Código PHP:
new const model_entity[] = "models/can.mdl" // No hace falta crear la variable pero bue

entity_set_model(NAME_ENTITYmodel_entity// Seteamo modelo a la entidad 



¿Como setearle vida y ver si murio?
Pues, simplemente una entidad es como un player, es casi lo mismo solo cambia el classname, pues en este caso para ver si murio voy a comprobarlo con "Ham_Killed"
Código PHP:
public plugin_init(){
    
RegisterHam(Ham_Killed"ENTITY""Ham_Killed_Entity"1)
}

public 
create_entity1(id){
    new 
NAME_ENTITY create_entity("info_target"// Creamos la entidad
    
    
entity_set_string(NAME_ENTITYEV_SZ_classname"ENTITY"// Seteamos classname
    
entity_set_model(NAME_ENTITY"models/can.mdl"// Seteo model de lata, lo modifican a su gusto.
    
    
entity_set_float(NAME_ENTITYEV_FL_takedamage1.0// Activa el daño resivido
    
entity_set_float(NAME_ENTITYEV_FL_health100.0// Setea 100.0 de HP/LIFE/VIDA/FORLIVE (?
}

public 
Ham_Killed_Entity(VictimAttacker){
    
client_print(0print_chat"Entidad Muerta :'v"// Muestra un mensaje cuando mata a la entidad.
    // En este caso pueden hacer lo que quieran
    // PLAYER = ATTACKER
    // ENTIDAD CREADA = VICTIM




¿Como usar la función func_button?
Como coloque al principio, solo es setear la classname cuando creas la entidad en func_button y listo.

Código PHP:
public plugin_init() {
    
RegisterHam(Ham_Use"func_button""Ham_use_entity"1)
}

public 
create_entity1(id){
    new 
NAME_ENTITY create_entity("func_button"// Creamos la entidad con la propiedad "func_button"
    
    
entity_set_string(NAME_ENTITYEV_SZ_classname"ENTITY"// Seteamos classname para identificarlo
    
entity_set_model(NAME_ENTITY"models/can.mdl"// Le seteamos un model
}

public 
Ham_use_entity(iEntindex){
    new 
classname[8];entity_get_string(iEntEV_SZ_classnameclassname7// Obtenemos classname para identificar a la entidad.
    
if(equal(classname"ENTITY")){ // Verificamos si es la que buscamos.
        
client_print(indexprint_chat"Apretastes E en la entidad.")
    }





¿Como se cuando un jugador toca una entidad?
La verdad es que hay varias maneras de verificar esto.

Código PHP:
public plugin_init() {
    
register_touch("ENTITY""player""Touch_Register")
    
// Parametro 1 Es el Classname con el cual identificaremos a la entidad
    // Parametro 2 Es la entidad que lo va a tocar para que accione la función
    // Parametro 3 Obviamente es la función que va a ejecutar cuando lo toque
}

public 
Touch_Register(iEntindex){
    new 
name[33];get_user_name(indexname32)
    new 
classname[8];entity_get_string(NAME_ENTITYEV_SZ_classnameclassname7)
    
client_print(0print_chat"%s Toco la Entidad %s"nameclassname)




¿Como setear una secuencia/submodel/skin?
No vi varios tutos con este tipo de cosas, como setear submodels etc pero weno.

Código PHP:
entity_set_int(NAME_ENTITYEV_INT_bodySUBMODEL_NUM// Seteamos SUBMODEL

entity_set_int(NAME_ENTITYEV_INT_skinSKIN_NUM// Seteamos SKIN

entity_set_int(NAME_ENTITYEV_INT_sequenceanimacion); // Secuencia de animación a reproducir.
entity_set_float(NAME_ENTITYEV_FL_frame0.0); // Hacemos que la animación empieze de 0. 



¿Como eliminar/borrar una entidad?
Facilmente:
Código PHP:
remove_entity(NAME_ENTITY



Formas de obtener una entidad in-game.

Forma 1: Encontrar entidadesh :0
Código PHP:
new iEnt = -1
// Usamos IF si es una sola entidad
// Usamos WHILE si son varias...
while( (iEnt find_ent_by_class(iEnt"ENTITY")) )
    {
        
//....
    


Forma 2: (Obteniendolo con la Aiming/Mira)
Código PHP:
public entity_get(index){ // Obtiene la entidad que mira el jugador.
    
new iEntbody // Variables a crear para usarlas en aiming
    
get_user_aiming(indexiEntbody// Obtiene lo que mira el jugador..
    
    
if(is_valid_ent(iEnt)){
        
// Si la entidad es valida bueno, esten satisfechos (?
    
}




¿Como doy Vuelta/Rotar/Girar una entidad?
Simplemente para cambiar de angulo etc se hace de la siguiente manera:

Código PHP:
public entity_set_angle(index){
    new 
iEntbody // Variables a crear para usarlas en aiming
    
get_user_aiming(indexiEntbody// Obtiene lo que mira el jugador..
    
    
new vAngles[3// Creamos la variables con 3 celdas.
    
    
entity_get_vector(iEntEV_VEC_anglesvAngles); // Obtenemos el angulo actual
    
    
vAngles[1] += 90.0 // Lo modificamos, en este caso lo giro por qué soy la jeta.
    
    // Angles tiene 3 Celdas, en cada una se guarda un angulo.
    // vAngles[0] = El Operador Aritmetico " - " Hace que voltee hacia la Izquierda.
    // vAngles[0] = El Operador Aritmetico " + " Hace que voltee hacia la Derecha.
    
    // vAngles[1] = El Operador Aritmetico " - " Hace que Gire hacia la Derecha.
    // vAngles[1] = El Operador Aritmetico " + " Hace que Gire hacia la Izquierda.
    
    // vAngles[2] = El Operador Aritmetico " - " Hace que voltee hacia Adelante.
    // vAngles[2] = El Operador Aritmetico " + " Hace que voltee hacia Atras.
    
    
entity_set_vector(iEntEV_VEC_anglesvAngles); // Seteamos el angulo modificado




¿Como detecto si alguien le pega a una entidad? (Función)
Bueno, despues de crear una entidad y asignarle todos los valores etc y dejarlo divino, para detectar el daño no es como detectarlo en un player:

Código PHP:
//Dentro de donde creaste la entidad...
// Creditos a I'mBuggimen, Metrikcz y Heber[$]ource por decirme lo de la syntax.
//Parametro 1 = Ham_ a detectar.. en este caso TakeDamage.
//Parametro 2 = NAME_ENTITY, o variable con la que crearon la entidad.
//Parametro 3 = Función que va a ejecutar cuando alguien le pege.
RegisterHamFromEntity(Ham_TakeDamageagrunt"agrunt_has_damaged");

public 
agrunt_has_damaged(VictimInflictorAttackerFloat:fDamageDmgTypeBits){
    
//11 = limite de caracteres de la entidad, en este caso es agrunt y le pongo 11 :v
    
new classname[11];entity_get_string(VictimEV_SZ_classnameclassname10)
    if(
containi(classname"agrunt") != -1){
        
client_print(Attackerprint_chat"Agrunt Has Damaged!"// Emite un mensaje.
    
}




¿Como detecto si una entidad esta atascada? (Función)
Función para detectar si esta trabado las entidades creado por meTaLiCroSS

Modo de uso de esta función:
Código PHP:
new vectores[3];entity_get_vector(NAME_ENTITYEV_VEC_originvectores)

if(
IsEntityStucked(NAME_ENTITYvectores)){
    
client_print(indexprint_chat"ENTITY TRABADA")


Función:
Código PHP:
bool:IsEntityStucked(iEnt, const Float:vecPosition[3])
{
    
engfunc(EngFunc_TraceMonsterHulliEntvecPositionvecPositionDONT_IGNORE_MONSTERSiEnt0);
    
    return (
get_tr2(0TR_StartSolid) || get_tr2(0TR_AllSolid) || !get_tr2(0TR_InOpen))




¿Como controlar 'controller', o mover la cabeza de un personaje? (Función)
Frecuentemente, la primera vez que cree un npc me aparecio con la cabeza torcida y bueno, no encontre yo ningun dato sobre como hacer esto ;_; , aca lo tienen:

PD: No todos los personajes tienen esto, lo que significa que algunos tienen para modificar algunas otras cosas que no tienen nada que ver con la cabeza.

Código PHP:
entity_set_byte(NAME_ENTITYEV_BYTE_controller1CANTIDAD_ROTACIÓN); // cantidad_rotación default = 125, cabeza centrada.

// Hay 4 tipos de controller, '1', '2', '3' y '4'. 



Explicaciones de algunas funciones.

Cita:[Pregunta] = ¿Para que sirve CLASSNAME?
[Respuesta] = Sirve para identificar una entidad de las demas, no vas a querer encontrar tu entidad con todas las entidades que hay en el mapa.

Cita:[Pregunta] = ¿Para que sirven los SUBMODELS & SKIN?
[Respuesta] = Para comprimir varios models, como los de CTF o JAILBREAK, tienen todos los models de los presos en 1 model solo, y para esto se tiene que cambiar el SKIN/SUBMODEL.

Cita:[Pregunta] = ¿Que son y para que sirven las Secuencias?
[Respuesta] = Son tipos de animaciones o movimientos, por ejemplo cuando se mueve un player o algo asi, esa es una animación.

Cita:[Pregunta] = ¿Porque mi Entidad se puede traspasar o es solida pero es solida ala mitad?
[Respuesta] = Puede ser Traspasable porque no seteastes bien el tipo de solido, y ¿por que esta ala mitad?, es por qué cuando seteastes size te quedastes corto con el tercer parametro.

Cita:[Pregunta] = ¿Como puedo crear mi sprite en esta entidad?
[Respuesta] = Remplaza la función de create_entity por envsprite, y también remplaza el model por el sprite. (colocando la secuencia ya tendrias hecho un sprite bien pro)

Cita:[Pregunta] = ¿Porque mi NPC/Entidad tiene la cabeza chueca?
[Respuesta] = Es por la simple razón de que no modificastes 'controller', en la guia explica como modificarlo a tu gusto.



Bueno, si falta algo o esta incompleto, cualquier error o cualquier duda comentar pacman.

PD: Prohibido que comente metalicross y sus comentarios inentendibles Oh god why
para hookear muerte y take dmg de una entidad tanbien existe
RegisterHamFromEntity
La mitad es puro crap y muchas cosas inventadas capo

Código PHP:
new NAME_ENTITY create_entity(""

No me rompas las bolitas Roflmao
(14/11/2015, 08:03 PM)meTaLiCroSS escribió: [ -> ]La mitad es puro crap y muchas cosas inventadas capo

Código PHP:
new NAME_ENTITY create_entity(""

No me rompas las bolitas Roflmao

Y que queres que lo ponga en plugin_init? o andar creando

Código PHP:
entity_set_int(create_entity("info_target")) 

PD: Vos hiciste lo mismo en roach Thats what she said

Emm para lo que vos llamas crap son algunas cosas que la gente que inicia a crear entidades no sabe, asi que si sabes todo esto te invito a crear tu propio tutorial con cosas avanzadas y extraordinarias de otro mundo intergalactico Genius
(14/11/2015, 08:05 PM)josue9243 escribió: [ -> ]
(14/11/2015, 08:03 PM)meTaLiCroSS escribió: [ -> ]La mitad es puro crap y muchas cosas inventadas capo

Código PHP:
new NAME_ENTITY create_entity(""

No me rompas las bolitas Roflmao

Y que queres que lo ponga en plugin_init? o andar creando

Código PHP:
entity_set_int(create_entity("info_target")) 

PD: Vos hiciste lo mismo en roach Thats what she said

Emm para lo que vos llamas crap son algunas cosas que la gente que inicia a crear entidades no sabe, asi que si sabes todo esto te invito a crear tu propio tutorial con cosas avanzadas y extraordinarias de otro mundo intergalactico Genius

creo que te dice que porq el name_entity?

asi algunos nuevos se confunden lo que retorna el create_entity es un numero y ese numero equivale al index de la entidad Genius

por cierto la manera que explicas los mins y max son geniales, con eso he aprendido 2 años de estudio ^_^ gracias capo
Crab Crab
Cita:- func_door
- func_door_rotating
- func_breakable

Porque no explicas eso tambien? Dafuq Roflmao

Cita:- func_door // Puerta
- func_door_rotating // el nombre lo dice Oh god why
- func_breakable // Entidad rompible

lo demas lo veo bien Excitedeyes

otra cosa

Cita:#define SOLID_NOT 0 // No interaction with other objects
#define SOLID_TRIGGER 1 // Touch on edge, but not blocking
#define SOLID_BBOX 2 // Touch on edge, block
#define SOLID_SLIDEBOX 3 // Touch on edge, but not an onground
#define SOLID_BSP 4 // BSP clip, touch on edge, block

Quiero saber que significa? me da paja traducir se supone que es un tutorial traducelo Oh god why
(15/11/2015, 12:35 PM)Nazi.- escribió: [ -> ]
Cita:- func_door
- func_door_rotating
- func_breakable

Porque no explicas eso tambien? Dafuq Roflmao

Cita:- func_door // Puerta
- func_door_rotating // el nombre lo dice Oh god why
- func_breakable // Entidad rompible

lo demas lo veo bien Excitedeyes

otra cosa

Cita:#define SOLID_NOT 0 // No interaction with other objects
#define SOLID_TRIGGER 1 // Touch on edge, but not blocking
#define SOLID_BBOX 2 // Touch on edge, block
#define SOLID_SLIDEBOX 3 // Touch on edge, but not an onground
#define SOLID_BSP 4 // BSP clip, touch on edge, block

Quiero saber que significa? me da paja traducir se supone que es un tutorial traducelo Oh god why

pacman no, yo solo tendria que dar ejemplos de los tipos de solidos, ustedes tendrian que meter mano para ver que onda con eso, pero ahora los tradusco Yao ming

PD: con lo de func_door etc eso no sé Oh god why, solo puse algunas funcione que se que estan en el juego, tambien despues me fijo aver que onda con eso.
(15/11/2015, 01:14 PM)josue9243 escribió: [ -> ]
(15/11/2015, 12:35 PM)Nazi.- escribió: [ -> ]
Cita:- func_door
- func_door_rotating
- func_breakable

Porque no explicas eso tambien? Dafuq Roflmao

Cita:- func_door // Puerta
- func_door_rotating // el nombre lo dice Oh god why
- func_breakable // Entidad rompible

lo demas lo veo bien Excitedeyes

otra cosa

Cita:#define SOLID_NOT 0 // No interaction with other objects
#define SOLID_TRIGGER 1 // Touch on edge, but not blocking
#define SOLID_BBOX 2 // Touch on edge, block
#define SOLID_SLIDEBOX 3 // Touch on edge, but not an onground
#define SOLID_BSP 4 // BSP clip, touch on edge, block

Quiero saber que significa? me da paja traducir se supone que es un tutorial traducelo Oh god why

pacman no, yo solo tendria que dar ejemplos de los tipos de solidos, ustedes tendrian que meter mano para ver que onda con eso, pero ahora los tradusco Yao ming

PD: con lo de func_door etc eso no sé Oh god why, solo puse algunas funcione que se que estan en el juego, tambien despues me fijo aver que onda con eso.

Es un tutorial debes explicar toda la wea que haces Fap

buen tuto Nothingdohere
(15/11/2015, 11:36 AM)Sugisaki escribió: [ -> ]
(14/11/2015, 08:05 PM)josue9243 escribió: [ -> ]
(14/11/2015, 08:03 PM)meTaLiCroSS escribió: [ -> ]La mitad es puro crap y muchas cosas inventadas capo

Código PHP:
new NAME_ENTITY create_entity(""

No me rompas las bolitas Roflmao

Y que queres que lo ponga en plugin_init? o andar creando

Código PHP:
entity_set_int(create_entity("info_target")) 

PD: Vos hiciste lo mismo en roach Thats what she said

Emm para lo que vos llamas crap son algunas cosas que la gente que inicia a crear entidades no sabe, asi que si sabes todo esto te invito a crear tu propio tutorial con cosas avanzadas y extraordinarias de otro mundo intergalactico Genius

creo que te dice que porq el name_entity?

asi algunos nuevos se confunden lo que retorna el create_entity es un numero y ese numero equivale al index de la entidad Genius

por cierto la manera que explicas los mins y max son geniales, con eso he aprendido 2 años de estudio ^_^ gracias capo
Crab Crab

Listo, ya arregle lo del size mal explicado, hubieras puesto [sarcasmo][/sarcasmo] pero weno, emm no sé ojala que este bien asi.
No voy a dedicarme a corregir todos los errores o tips erroneos de tu "Tutorial", no manejas ni la mitad de los conceptos, lo sabes. Yo si voy a hacer un tutorial voy a explicar todo con los conceptos que lo relacionan directamente, si no te invito a revisar mi firma y verlos ya como lo comentas.

Por otro lado, me llamo la atencion esto:

Código PHP:
public plugin_init(){
    
RegisterHam(Ham_Killed"ENTITY""Ham_Killed_Entity"1)
}

public 
create_entity1(id){
    new 
NAME_ENTITY create_entity("info_target"// Creamos la entidad
    
    
entity_set_string(NAME_ENTITYEV_SZ_clasname"ENTITY"// Seteamos classname
    
entity_set_float(NAME_ENTITYEV_FL_takedamage1.0// Activa el daño resivido
    
entity_set_float(NAME_ENTITYEV_FL_health100.0// Setea 100.0 de HP/LIFE/VIDA/FORLIVE (?
}

public 
Ham_Killed_Entity(VictimAttacker){
    
client_print(0print_chat"Entidad Muerta :'v")


Lo testeaste tal asi como está?

Código PHP:
public entity_get(index){
    new 
iEntbody // Variables a crear para usarlas en aiming
    
get_user_aiming(indexiEntbody// Obtiene lo que mira el jugador..
    
    // Y Ahi hacemos todo lo que queremos con la entidad...


Y eso que hace.. ?

Código PHP:
public entity_set_angle(index){
    new 
iEntbody // Variables a crear para usarlas en aiming
    
get_user_aiming(indexiEntbody// Obtiene lo que mira el jugador..
    
    
new vAngles[3// Creamos la variables con 3 celdas.
    
    
entity_get_vector(iEntEV_VEC_anglesvAngles); // Obtenemos el angulo actual
    
    
vAngles[1] += 90.0 9999.0 // Lo modificamos, en este caso lo giro por qué soy la jeta.
                        // Lo multiplico * 99999 para que sea aleatorio (?
    
    
entity_set_vector(iEntEV_VEC_anglesvAngles); // Seteamos el angulo modificado


Roflmao ? * 9999 ?

Cita:[Imagen: QSxJmBN.png]

Viste física alguna vez? Sabes a que corresponde la tercera coordenada en el plano cartesiano 3D?
(15/11/2015, 01:58 PM)meTaLiCroSS escribió: [ -> ]No voy a dedicarme a corregir todos los errores o tips erroneos de tu "Tutorial", no manejas ni la mitad de los conceptos, lo sabes. Yo si voy a hacer un tutorial voy a explicar todo con los conceptos que lo relacionan directamente, si no te invito a revisar mi firma y verlos ya como lo comentas.

Por otro lado, me llamo la atencion esto:

Código PHP:
public plugin_init(){
    
RegisterHam(Ham_Killed"ENTITY""Ham_Killed_Entity"1)
}

public 
create_entity1(id){
    new 
NAME_ENTITY create_entity("info_target"// Creamos la entidad
    
    
entity_set_string(NAME_ENTITYEV_SZ_clasname"ENTITY"// Seteamos classname
    
entity_set_float(NAME_ENTITYEV_FL_takedamage1.0// Activa el daño resivido
    
entity_set_float(NAME_ENTITYEV_FL_health100.0// Setea 100.0 de HP/LIFE/VIDA/FORLIVE (?
}

public 
Ham_Killed_Entity(VictimAttacker){
    
client_print(0print_chat"Entidad Muerta :'v")


Lo testeaste tal asi como está?

Código PHP:
public entity_get(index){
    new 
iEntbody // Variables a crear para usarlas en aiming
    
get_user_aiming(indexiEntbody// Obtiene lo que mira el jugador..
    
    // Y Ahi hacemos todo lo que queremos con la entidad...


Y eso que hace.. ?

Código PHP:
public entity_set_angle(index){
    new 
iEntbody // Variables a crear para usarlas en aiming
    
get_user_aiming(indexiEntbody// Obtiene lo que mira el jugador..
    
    
new vAngles[3// Creamos la variables con 3 celdas.
    
    
entity_get_vector(iEntEV_VEC_anglesvAngles); // Obtenemos el angulo actual
    
    
vAngles[1] += 90.0 9999.0 // Lo modificamos, en este caso lo giro por qué soy la jeta.
                        // Lo multiplico * 99999 para que sea aleatorio (?
    
    
entity_set_vector(iEntEV_VEC_anglesvAngles); // Seteamos el angulo modificado


Roflmao ? * 9999 ?

Cita:[Imagen: QSxJmBN.png]

Viste física alguna vez? Sabes a que corresponde la tercera coordenada en el plano cartesiano 3D?

Fixeado, lo de las fisicas no sé ni idea de lo que me hablas no vi ninguna vez en mi vida fisica solamente se que cinema 4d tenia asi esas cosas y lo explique ami manera y si vos sabes eso te invito a explicarlo sino de otra manera te invito tambien a quedarte callado. (al leer este mensaje seguramente lo tomaras ofensivo, esta igual expresado que el tuyo)

PD: Ya arregle todos los errores que me pasastes...

EDIT: Algunos tienen X arriba algunos Y arriba etc, yo lo pongo asi porque estaba en el C4D te vuelvo a repetir... Are you fucking kidding me? https://www.google.com.ar/search?q=el+pl...24&bih=710
Código PHP:
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginF// Seteamos el Origin 
-------------->
Código PHP:
//Retrieve the player's origin
entity_get_vector(idEV_VEC_originflOrigin); 

He visto que en 2 tutos de AM, obtienen/recuperan/agarran el origin. Y como primer parametro usan la id y no la ent... Huh
(13/11/2015, 08:52 PM)josue9243 escribió: [ -> ]
¿Como seteo el origin?
Bueno despues de esto, hay que asignarle un "origin", lugar donde spawnear a la entidad, yo se lo asigno a travez de una float.

Código PHP:
new iOriginI[3// Variable con Enteros.
new Float:iOriginF[3// Variable con Decimales. (Float)

get_user_origin(indexiOriginI3// Tercer Parametro obtiene el AIM del jugador. 

El tercer parametro es el AIM??

Hasta donde tengo entendido, el origen se divide en 3 parametros en Half-Life, los cuales son:

X, Y & Z.

Donde Z en Half-Life es la altura en la cual se encuentra la entidad en el mapa.

Emp` escribió:Well, here is one common example:
A players origin (location) in a map is represented by 3 floating points. One is their X position, one is their Y position, and you guessed it, the last is their Z position.
In the HalfLife Engine, the Z position is a players height in the map.
We then would create:
Code:
new Float:Origin[3]
X == first box, Y == second box, Z == third box
Then we could increase their height by 50 units:
Code:
Origin[2] = Origin[2] + 50.0

[ Fuente ]

O hay algo que me estoy perdiendo?.
(17/11/2015, 12:26 PM)hud escribió: [ -> ]
(13/11/2015, 08:52 PM)josue9243 escribió: [ -> ]
¿Como seteo el origin?
Bueno despues de esto, hay que asignarle un "origin", lugar donde spawnear a la entidad, yo se lo asigno a travez de una float.

Código PHP:
new iOriginI[3// Variable con Enteros.
new Float:iOriginF[3// Variable con Decimales. (Float)

get_user_origin(indexiOriginI3// Tercer Parametro obtiene el AIM del jugador. 

El tercer parametro es el AIM??

Hasta donde tengo entendido, el origen se divide en 3 parametros en Half-Life, los cuales son:

X, Y & Z.

Donde Z en Half-Life es la altura en la cual se encuentra la entidad en el mapa.

Emp` escribió:Well, here is one common example:
A players origin (location) in a map is represented by 3 floating points. One is their X position, one is their Y position, and you guessed it, the last is their Z position.
In the HalfLife Engine, the Z position is a players height in the map.
We then would create:
Code:
new Float:Origin[3]
X == first box, Y == second box, Z == third box
Then we could increase their height by 50 units:
Code:
Origin[2] = Origin[2] + 50.0

[ Fuente ]

O hay algo que me estoy perdiendo?.

No sé a que te referis con eso recien me levanto de dormir, get_user_aiming(INDEX, VARIABLE, NUM) en el NUM pones 3 porque 3 obtiene donde mira el jugador, osea no sé que problema tenes con eso, hay diferentes modos de ponerle un origin, yo le puse ese.

(17/11/2015, 11:44 AM)ZKoaLa escribió: [ -> ]
Código PHP:
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginF// Seteamos el Origin 
-------------->
Código PHP:
//Retrieve the player's origin
entity_get_vector(idEV_VEC_originflOrigin); 

He visto que en 2 tutos de AM, obtienen/recuperan/agarran el origin. Y como primer parametro usan la id y no la ent... Huh

? almenos sabes para que sirve la syntax esa?, ID = PLAYER, ent = ENTIDAD QUE CREADA POR ALGO INIGUAL (?, loque hago yo es SETEAR/COLOCAR el origin a la entidad, eso se usa para que cuando crees la entidad sepa en que parte del mapa crearse...
cuando dices lo de hookear el takedmg de una entidad tienes que recordar que se hace cuando creas la entidad o al menos eso creo yo
(17/11/2015, 08:00 PM)ImBuggimen escribió: [ -> ]cuando dices lo de hookear el takedmg de una entidad tienes que recordar que se hace cuando creas la entidad o al menos eso creo yo

Emm si asi es, tambien lo explique dentro del quote osea... Oh god why

Cita:
Código PHP:
//Dentro de donde creaste la entidad...
// Creditos a I'mBuggimen, Metrikcz y Heber[$]ource por decirme lo de la syntax.
//Parametro 1 = Ham_ a detectar.. en este caso TakeDamage.
//Parametro 2 = NAME_ENTITY, o variable con la que crearon la entidad.
//Parametro 3 = Función que va a ejecutar cuando alguien le pege.
RegisterHamFromEntity(Ham_TakeDamageagrunt"agrunt_has_damaged");

public 
agrunt_has_damaged(VictimInflictorAttackerFloat:fDamageDmgTypeBits){
    
//11 = limite de caracteres de la entidad, en este caso es agrunt y le pongo 11 :v
    
new classname[11];entity_get_string(VictimEV_SZ_classnameclassname10)
    if(
containi(classname"agrunt") != -1){
        
client_print(Attackerprint_chat"Agrunt Has Damaged!"// Emite un mensaje.
    
}

(17/11/2015, 03:26 PM)josue9243 escribió: [ -> ]
(17/11/2015, 12:26 PM)hud escribió: [ -> ]
(13/11/2015, 08:52 PM)josue9243 escribió: [ -> ]
¿Como seteo el origin?
Bueno despues de esto, hay que asignarle un "origin", lugar donde spawnear a la entidad, yo se lo asigno a travez de una float.

Código PHP:
new iOriginI[3// Variable con Enteros.
new Float:iOriginF[3// Variable con Decimales. (Float)

get_user_origin(indexiOriginI3// Tercer Parametro obtiene el AIM del jugador. 

El tercer parametro es el AIM??

Hasta donde tengo entendido, el origen se divide en 3 parametros en Half-Life, los cuales son:

X, Y & Z.

Donde Z en Half-Life es la altura en la cual se encuentra la entidad en el mapa.

Emp` escribió:Well, here is one common example:
A players origin (location) in a map is represented by 3 floating points. One is their X position, one is their Y position, and you guessed it, the last is their Z position.
In the HalfLife Engine, the Z position is a players height in the map.
We then would create:
Code:
new Float:Origin[3]
X == first box, Y == second box, Z == third box
Then we could increase their height by 50 units:
Code:
Origin[2] = Origin[2] + 50.0

[ Fuente ]

O hay algo que me estoy perdiendo?.

No sé a que te referis con eso recien me levanto de dormir, get_user_aiming(INDEX, VARIABLE, NUM) en el NUM pones 3 porque 3 obtiene donde mira el jugador, osea no sé que problema tenes con eso, hay diferentes modos de ponerle un origin, yo le puse ese.

Todo bien, pero vos ahí usas get_user_origin, no get_user_aiming.

Donde cite el mensaje.
(18/11/2015, 08:25 AM)hud escribió: [ -> ]
(17/11/2015, 03:26 PM)josue9243 escribió: [ -> ]
(17/11/2015, 12:26 PM)hud escribió: [ -> ]
(13/11/2015, 08:52 PM)josue9243 escribió: [ -> ]
¿Como seteo el origin?
Bueno despues de esto, hay que asignarle un "origin", lugar donde spawnear a la entidad, yo se lo asigno a travez de una float.

Código PHP:
new iOriginI[3// Variable con Enteros.
new Float:iOriginF[3// Variable con Decimales. (Float)

get_user_origin(indexiOriginI3// Tercer Parametro obtiene el AIM del jugador. 

El tercer parametro es el AIM??

Hasta donde tengo entendido, el origen se divide en 3 parametros en Half-Life, los cuales son:

X, Y & Z.

Donde Z en Half-Life es la altura en la cual se encuentra la entidad en el mapa.

Emp` escribió:Well, here is one common example:
A players origin (location) in a map is represented by 3 floating points. One is their X position, one is their Y position, and you guessed it, the last is their Z position.
In the HalfLife Engine, the Z position is a players height in the map.
We then would create:
Code:
new Float:Origin[3]
X == first box, Y == second box, Z == third box
Then we could increase their height by 50 units:
Code:
Origin[2] = Origin[2] + 50.0

[ Fuente ]

O hay algo que me estoy perdiendo?.

No sé a que te referis con eso recien me levanto de dormir, get_user_aiming(INDEX, VARIABLE, NUM) en el NUM pones 3 porque 3 obtiene donde mira el jugador, osea no sé que problema tenes con eso, hay diferentes modos de ponerle un origin, yo le puse ese.

Todo bien, pero vos ahí usas get_user_origin, no get_user_aiming.

Donde cite el mensaje.

aiming = apuntar

el parametro 3 es para obtener el origin donde el jugador esta apuntando, que parte no te quedo claro. Are you fucking kidding me?

EDIT: en mi anterior mensaje que puse get_user_aiming me equivoque tenia que poner get_user_origin Yao ming
(18/11/2015, 08:28 AM)josue9243 escribió: [ -> ]
(18/11/2015, 08:25 AM)hud escribió: [ -> ]
(17/11/2015, 03:26 PM)josue9243 escribió: [ -> ]
(17/11/2015, 12:26 PM)hud escribió: [ -> ]
(13/11/2015, 08:52 PM)josue9243 escribió: [ -> ]
¿Como seteo el origin?
Bueno despues de esto, hay que asignarle un "origin", lugar donde spawnear a la entidad, yo se lo asigno a travez de una float.

Código PHP:
new iOriginI[3// Variable con Enteros.
new Float:iOriginF[3// Variable con Decimales. (Float)

get_user_origin(indexiOriginI3// Tercer Parametro obtiene el AIM del jugador. 

El tercer parametro es el AIM??

Hasta donde tengo entendido, el origen se divide en 3 parametros en Half-Life, los cuales son:

X, Y & Z.

Donde Z en Half-Life es la altura en la cual se encuentra la entidad en el mapa.

Emp` escribió:Well, here is one common example:
A players origin (location) in a map is represented by 3 floating points. One is their X position, one is their Y position, and you guessed it, the last is their Z position.
In the HalfLife Engine, the Z position is a players height in the map.
We then would create:
Code:
new Float:Origin[3]
X == first box, Y == second box, Z == third box
Then we could increase their height by 50 units:
Code:
Origin[2] = Origin[2] + 50.0

[ Fuente ]

O hay algo que me estoy perdiendo?.

No sé a que te referis con eso recien me levanto de dormir, get_user_aiming(INDEX, VARIABLE, NUM) en el NUM pones 3 porque 3 obtiene donde mira el jugador, osea no sé que problema tenes con eso, hay diferentes modos de ponerle un origin, yo le puse ese.

Todo bien, pero vos ahí usas get_user_origin, no get_user_aiming.

Donde cite el mensaje.

aiming = apuntar

el parametro 3 es para obtener el origin donde el jugador esta apuntando, que parte no te quedo claro. Are you fucking kidding me?

....
Como es eso del MOVETYPE... se lo seteo a mi npc con el valor que me persiga ( follow ) y no pasa nada lo tengo asi...

Código PHP:
entity_set_int(iEntEV_INT_movetypeMOVETYPE_FOLLOW); 

como hago? Oh god why
follow tiene las coordenadas del player es decir el ejemplo de un arma

las armas siempre seran entidades y lo que ves no es necesariamente las armas sino skins o models de la entidad.

ejemplo con arma:

.- ent del arma tiene MOVETYPE_FOLLOW + EDICT DE AIMENT del jugador.

el follow hace que la entidad tenga las mismas coordenadas de el owner o player


aclaro:

para hacer mover una entidad detras de un jugador o que lo siga tienes que hacer un think es decir hacer pensar a una entidad lo que quieras cosa que no se enseña en este tuto

calculando entre distancias del owner y distancia de la entidad puedes hacer el siguiente frame y o sequencia como tu quieras pero eso ya queda de tu lado
(18/11/2015, 11:52 PM)ZKoaLa escribió: [ -> ]Como es eso del MOVETYPE... se lo seteo a mi npc con el valor que me persiga ( follow ) y no pasa nada lo tengo asi...

Código PHP:
entity_set_int(iEntEV_INT_movetypeMOVETYPE_FOLLOW); 

como hago? Oh god why

El Follow es como para setear hats, para que te persiga eso es una inteligencia artificial, no es todo facil.

Código PHP:
entity_set_int(iEnt2EV_INT_movetypeMOVETYPE_FOLLOW)
    
set_pev(iEnt2pev_aimentid

Eso y lo tenes pegado.
papa sabes para que sirve el follow ??

busca e investiga antes y este tuto es incompleto y fuera de lugar no es por criticarte me gusta que hagas las cosas y que hagas tutos pero hay siertos pasos en los que debes de tener y todos los que lean esto deben tener en cuenta

para crear un npc no eso solo hacer un info target setear model origin y listo va a correr como un player la entidad hay que hacerla pensar y eso es lo que falta apesar de las muchas cosas que le falta al tutorial no digo que este malo solo digo que te falta explicar muchas cosas
(19/11/2015, 02:39 PM)josue9243 escribió: [ -> ]
(18/11/2015, 11:52 PM)ZKoaLa escribió: [ -> ]Como es eso del MOVETYPE... se lo seteo a mi npc con el valor que me persiga ( follow ) y no pasa nada lo tengo asi...

Código PHP:
entity_set_int(iEntEV_INT_movetypeMOVETYPE_FOLLOW); 

como hago? Oh god why

El Follow es como para setear hats, para que te persiga eso es una inteligencia artificial, no es todo facil.

Código PHP:
entity_set_int(iEnt2EV_INT_movetypeMOVETYPE_FOLLOW)
    
set_pev(iEnt2pev_aimentid

Eso y lo tenes pegado.

Vieja, no tienes idea de como se maneja esta verga, si te pidiera fuente de todo lo que hablas, te caes de culo.

Si vas a proporcionar informacion con el fin de terceros aprendan, hazlo bien. Por el momento, lo decente que he visto es la ortografia (y creo que ni eso)
Bien el tutorial aunque algunas cosas no las explicas bien ni cada funcion como deberia he intentado crear una entidad que se lanze desde el jugador y que explote si esta muy lejos y que pueda atravesar paredes. Gracias
Páginas: 1 2