1. sayfa (Toplam 2 sayfa)

Model e komutu ile işlem

Gönderilme zamanı: Pzt Tem 06, 2020 11:49 pm
gönderen MrFoTo
Merhabalar haritaya koyduğumuz bir modele e ile tıklayınca item verdirebilirmiyiz ?

Model e komutu ile işlem

Gönderilme zamanı: Sal Tem 07, 2020 12:35 am
gönderen amad
Haritada bir entity oluşturup o entitye modeli set etmeniz gerekiyor. Entitye basılma olayını yakalamak için de hamsandwich kütüphanesindeki ham_use işinizi görecektir.

Entity Oluşturup model set etme

Üsttekine ek olarak e tuşuna basma olayını yakalayabilmek için entitye class adı verilmesi gerekiyor.

Kod: Tümünü seç

entity_set_string(entity, EV_SZ_classname, "class adı buraya");

Kod: Tümünü seç

RegisterHam(Ham_Use, "class adı buraya",    "modeleBasilinca");

public modeleBasilinca(ent, id)  { 
   //(...) itemVer(id)
}

Model e komutu ile işlem

Gönderilme zamanı: Sal Tem 07, 2020 1:12 am
gönderen MrFoTo
Çokkk teşekkürler yarın bir kod yazıp buraya atacağım.

Model e komutu ile işlem

Gönderilme zamanı: Sal Tem 07, 2020 12:37 pm
gönderen Fatih ~ EjderYa
İstenilen bir şeyi yapmanın genellikle birden fazla yöntemi olabiliyor. Amad'ın anlattığı yöntemde bunlardan birtanesi. Bende en sade olan reapi kütüphanesindeki yöntemi yazmak istiyorum.

Eğer istenilen işlem reapi kütüphanesi ile yapılmak istenilirse aşağıdaki yol izlenmelidir.


SetUse Komutu

Kod: Tümünü seç

SetUse(ent, "Nesneye_Basildi"); // Nesneye E basınca hangi fonksiyonun çalışacağı bu komut ile belirtiliyor

Kod: Tümünü seç

public Nesneye_Basildi(ent,id){

   /// Nesneye E basılınca Yapılacak Olan İşlemler.

}

Model e komutu ile işlem

Gönderilme zamanı: Sal Tem 07, 2020 1:25 pm
gönderen MrFoTo
Aklıma takılan 2 soru mevcut.

1. SORU

Kod: Tümünü seç

        entity_set_model(Ent, g_Model)
        entity_set_size(Ent,Float:{-6.0, -10.0, 0.0},Float:{6.0, 10.0, 36.0})
        new Float:f_Origin[3]
Burası sanırım haritaya koyacağım modelin haritada çıkacağı yer bunuda amx_teleportmenu'den koordinat alıp yapabilirim x y z şeklinde.


2. SORU

Kod: Tümünü seç

entity_set_string(entity, EV_SZ_classname, "class adı buraya");
Buradaki class adı

Kod: Tümünü seç

new Ent = create_entity("info_target")
buradaki info_target olanmı ?
Yoksa herhangi bir şey yazabilirmiyim oraya

Model e komutu ile işlem

Gönderilme zamanı: Sal Tem 07, 2020 2:01 pm
gönderen Fatih ~ EjderYa
1 ) Belirtilen komut nesnenin modelini ve kalınlığını ayarlıyor konumla bir ilgisi bulunmamakta.

İşlemlerini reapi kütüphanesi ile yapmanızı öneririm.

Model e komutu ile işlem

Gönderilme zamanı: Sal Tem 07, 2020 2:08 pm
gönderen MrFoTo
Dönüşün için teşekkürler reapi ile yazmak isterim ama

Kod: Tümünü seç

public add_chicken(id){
     
    new Ent = create_entity("info_target")
     
    if(is_valid_ent(Ent)){
         
        entity_set_model(Ent, g_Model)
        entity_set_size(Ent,Float:{-6.0, -10.0, 0.0},Float:{6.0, 10.0, 36.0})
        new Float:f_Origin[3]
        entity_get_vector(id, EV_VEC_origin, f_Origin)    
        f_Origin[0] += 50.0
        entity_set_origin(Ent, f_Origin)        
        entity_set_int(Ent,EV_INT_solid,SOLID_BBOX)
         
        drop_to_floor(Ent)
    }
}
bu kodların reapideki karşılığının ne olduğunu bilmiyorum.

Model e komutu ile işlem

Gönderilme zamanı: Sal Tem 07, 2020 3:16 pm
gönderen Fatih ~ EjderYa
Örnek olması açısından ufak bir test eklentisiyle kafanda canlandırabilmeni sağlayacağım.

Oyuncu say kısmından /test yazınca bulunduğu konuma bir entity(nesne) oluşturan eklenti.

Kod: Tümünü seç

#include <amxmodx>
#include <reapi>

#define PLUGIN "Eklenti Ismi"
#define VERSION "1.0"
#define AUTHOR "Fatih ~ EjderYa"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /test","nesne_olustur")
}
public nesne_olustur(id){
	
	new Float:Konum[3]			/// Konum isminde 3 katmanlı bir veri oluşturduk 
	get_entvar(id,var_origin,Konum) 	/// Konum isimli veriye oyuncunun konumu atandı.
						/// Yani artık bizim için Konum nesnesi oyuncunun konumunu belirtmektedir.
	
	
	
	new ent = rg_create_entity("info_target")	/// ent isminde bir nesne oluşturduk.
	// Buradan sonrası isteğe bağlı nesneye verilen özelliklerdir. Hepsinin olması şart değil.
	
	
	set_entvar(ent,var_origin,Konum)	/// Az önce konum verisine oyuncunun konumunu atamıştık.
						/// Bu komutla ise oluşturduğumuz nesneyi oyuncunun konumuna getirmiş olduk.
	

}

Model e komutu ile işlem

Gönderilme zamanı: Sal Tem 07, 2020 4:48 pm
gönderen MrFoTo
Çok iyi bir şekilde canlandı kafamda teşekkürler ama SetUse bu şekilde kullandığım zaman modelin yanına gittiğim zaman e tuşu ile bastığımda herhangi bir sonuç alamıyorum. Birde sen kontrol edermisin.

Kod: Tümünü seç

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <reapi>

#define PLUGIN "Eklentı Ismı"
#define VERSION "1.0"
#define AUTHOR "Anonim"

new BKMODEL[64]
new modelindex
new ent

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /getir","entityGetir")
	SetUse(ent, "Nesneye_Basildi");
}
public plugin_precache()
{
	formatex(BKMODEL,charsmax(BKMODEL),"models/player/ng_jb_wachin/ng_jb_wachin.mdl");
	modelindex = precache_model(BKMODEL)
}
public entityGetir(id){
	new classname[32];
	ent = rg_create_entity("info_target") // Ent isminde bir nesne olusturdum.
	set_entvar(ent, var_classname,"anaclass") // Nesneye class atadım.
	set_entvar(ent, var_model, BKMODEL); // Nesneye model ekledim.
	set_entvar(ent, var_modelindex, modelindex); // Nesneye modelindex ekledim.
	set_entvar(ent, var_origin, Float:{213.0, -674.0, 36.0}) // Nesneyi belirledigim koordinatlara isinladim.
	
	get_entvar(ent,var_classname,classname,charsmax(classname));
	client_print(id,print_chat,"%s",classname)
}
public Nesneye_Basildi(ent,id)
{
	client_print(id,print_chat,"islem")
}


Model e komutu ile işlem

Gönderilme zamanı: Sal Tem 07, 2020 7:01 pm
gönderen Fatih ~ EjderYa
Videolu bir anlatım yapacağım senin için.