Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Counter-Strike 1.6 Eklenti Paylaşımı

Moderatör: Moderatörler

Forum kuralları
DİKKAT !
Konu Başlığı veya içeriği BÜYÜK HARFLERLE olan konular direk silenecektir !
Burası eklenti paylaşım bölümüdür ve yönetici onaylıdır. Alakasız konular hiçbir şekilde onaylanmayacaktır

Eklenti eklerken eklenti kurallarına uyulması gerekir.
En önemlisi paylaşılan eklenti şablonuna uyulması gerekir.
Bu hususlara dikkat edilmeyip paylaşılan eklenti konuları silenecektir.
Kullanıcı avatarı

[~ TABUTCU ~]
Mesajlar: 594
Kayıt: Çrş May 16, 2018 4:28 pm
Konum: Turkey
Clan İsmi: [R]edWorse

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Mesaj gönderen [~ TABUTCU ~] »

#define semiclip_cvaraktif
Bunun önüne // koydugumda hata alıyordum ama kaldırınca hata almadım. Şuan çalışıyor.

Etiketler:
Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Mesaj gönderen Colditz »

LSR yazdı: Pzr Tem 26, 2020 9:07 pm Başarılı eklenti, diğerleri gibi ordan burdan alınmış kodlarla yazılmamış.
Aynen kesinlikle :gun:Ç
Bilbaz'dan bildiğin eklentinin tamamını çalan arkadaş var. Yazık (!)

Link:
Linklerini gizle
Linki Kopyala

REYNMENNN
Mesajlar: 234
Kayıt: Sal Oca 28, 2020 5:48 pm
Server Ip/DNS: 213.238.173.120
Clan İsmi: Adora™

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Mesaj gönderen REYNMENNN »

elinize saglık

Link:
Linklerini gizle
Linki Kopyala

kory
Mesajlar: 7
Kayıt: Pzr Mar 22, 2020 12:33 pm

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Mesaj gönderen kory »

oyunlar çalışmıyordu enfeksiyon gömülen ölür vs.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

[~ TABUTCU ~]
Mesajlar: 594
Kayıt: Çrş May 16, 2018 4:28 pm
Konum: Turkey
Clan İsmi: [R]edWorse

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Mesaj gönderen [~ TABUTCU ~] »

kory yazdı: Pzt Tem 27, 2020 6:48 pm oyunlar çalışmıyordu enfeksiyon gömülen ölür vs.
Evet katılıyorum. :cross:

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
Necati Doğan
Mesajlar: 822
Kayıt: Prş Haz 07, 2018 6:18 pm
Konum: İstanbul
Clan İsmi: Ke$`h Gaming
İletişim:

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Mesaj gönderen Necati Doğan »

Semiclip cvar ayarı olan bir semiclip eklentisi kullanın. Team Semiclip 2.0.0 veya son sürümünü araştırıp kullanabilirsiniz. Bunu yaparsanız define bin başına // koymayin.

Veya viewtopic.php?p=301605#p301605 bu yorumda söylediğim kodu değiştirip define semiclipi silip kullanın calismasu gerekiyor ama şimdilik önerim semiclip eklentisi bulup kullanmanız.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Mesaj gönderen Colditz »

Necati Doğan yazdı: Cum Tem 24, 2020 4:29 am
  • CT Menü tamamen sıfırdan kodlanmıştır. Eklenti uzun süre KaoS Gaming 'de denenmiştir, yinede açık/bug vs. bulan olursa lütfen yorum olarak belirtiniz. Ayrıca yapılmasını istediğiniz farklı fikirler varsa yorum olarak belirtebilirsiniz.

Eklentiyi şimdi inceleme şansım oldu. Güzel kodlanmış fakat birkaç eksikler gördüm.
  • Sadece 0-1 olan komutlarda bool kullanabilirsin.

Kod: Tümünü seç

//new ..., ..., ..., takimHasar, silahliGom, m249Active
//bind_pcvar_num(create_cvar("ctmenu_takimHasar", "1"), takimHasar); 
//bind_pcvar_num(create_cvar("ctmenu_silahliGom", "0"), silahliGom); 
//bind_pcvar_num(create_cvar("ctmenu_m249Active", "1"), m249Active); 

new ..., ..., ..., bool:takimHasar, bool:silahliGom, bool:m249Active
 bind_pcvar_num(create_cvar("ctmenu_takimHasar", "1", _, _, true, 0.0, true, 1.0), takimHasar); 
bind_pcvar_num(create_cvar("ctmenu_silahliGom", "1", _, _, true, 0.0, true, 1.0), silahliGom); 
bind_pcvar_num(create_cvar("ctmenu_m249Active", "1", _, _, true, 0.0, true, 1.0), m249Active); 
  • Önceden de dediğim gibi insanları semiclip ile uğraştırmamak için semiclip cvarının kontrolünü yap. Eğer semiclip cvarı yoksa bir tane yalandan oluştur. O komutu değiştirip dursun ne de olsa işlevi yok.

Kod: Tümünü seç

#if defined semiclip_cvaraktif
	if(!get_cvar_pointer("semiclip"))
	{
		create_cvar("semiclip", "");
	}

	semiclip = get_cvar_pointer("semiclip");
#endif
  • ScreenFade gibi komutları plugin_init bölümünde tanıtırsan daha hızlı çalışır.

Kod: Tümünü seç

new ScreenFade, SetFOV...

public plugin_init() {
	...
	ScreenFade = get_user_msgid("ScreenFade");
	SetFOV = get_user_msgid("SetFOV");
}

message_begin(MSG_ONE_UNRELIABLE,ScreenFade,{0,0,0},id);
//message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("ScreenFade"),{0,0,0},id);

message_begin(MSG_ONE, get_user_msgid("SetFOV"), { 0, 0, 0 }, ids);
message_begin(MSG_ONE, SetFOV, { 0, 0, 0 }, ids);
...
  • Get_user_origin komutunun sıfırlı hâli get_entvar ile çekilebilir, daha hızlı olması açısından
    Ayrıca is_user_alive komutu zaten oyuncunun oyuna bağlı olup olmamasını kontrol ediyor. İki kere aynı şeyi kontrol ediyor kısaca.
    Birkaç tane komut gördüm böyle, düzeltilebilir.

Kod: Tümünü seç

public infect_aura(id) {
	id=id- task_ENFEKSIYON;
	//if(is_user_connected(id) && is_user_alive(id) && g_infect[id]) {
	if(is_user_alive(id) && g_infect[id]) {
		//new origin[3]; get_user_origin(id, origin, 0);
		new Float:origin[3]; get_entvar(id, var_origin, origin);

		message_begin(MSG_ALL, SVC_TEMPENTITY);
		write_byte(TE_DLIGHT);
		//write_coord(origin[0]);
		//write_coord(origin[1]);
		//write_coord(origin[2]);
		write_coord_f(origin[0]);
		write_coord_f(origin[1]);
		write_coord_f(origin[2]);
		write_byte(12);
		write_byte(0); write_byte(255); write_byte(0);
		write_byte(1);
		write_byte(0);
		message_end();

	}
}
  • Bu pek önemli değil ama yapılırsa biraz daha hızlandırabilir olayları. Değişmeyen menüyü tekrar göstermek istiyorsan menu_display kullanabilirsin.

Kod: Tümünü seç

public piclik2(id, menu, item) {
	if(item == MENU_EXIT || get_member(id, m_iTeam)!=TEAM_CT) { menu_destroy(menu); return PLUGIN_HANDLED; }

	new data[6], key; 
	menu_item_getinfo(menu, item, _, data, charsmax(data));
	key = str_to_num(data);

	switch(key) {
		case 1....
		...
		case 5 : set_pcvar_num(sv_gravity, 800), client_print_color(0, id, "^1[^3%n^1]^4 adli gardiyan piclik oyununda^1 Gravity 800 ^4yapti.", id);
		default: menu_destroy(menu); return PLUGIN_HANDLED;
	}

	//piclik(id);
	menu_display(id, menu);
	return PLUGIN_HANDLED;
}
  • get_user_aiming komutunda ids != id komutuna gerek yok ve ayrıyeten yine is_user_connected ve is_user_alive çatışması.
    is_user_alive komutu oyuncu oyundaysa ve yaşıyorsa aktif oluyor. Fazladan ids komutunun olup olmadığını kontrol etmeye gerek yok.

Kod: Tümünü seç

new ids,body; get_user_aiming(id, ids, body);

//if(is_user_connected(ids) && ids && ids!=id && get_member(ids, m_iTeam)==TEAM_TERRORIST && is_user_alive(ids)) {
if(is_user_alive(ids) && get_member(ids, m_iTeam)==TEAM_TERRORIST) {
  • set_entity_visibility komutunu reapi olarak kullanabilirsin. Engine kütüphanesinde stock olarak kullanılıyor. Reapiye çevrilmesinin bir sakıncası yok. Direkt set_entvar şeklinde kullanmanı tavsiye ederim lakin üşenirim diyorsan rg_set_entity_visibility de aynı işlevi görecektir.

Kod: Tümünü seç

rg_set_entity_visibility(const entity, visible == 1)
{
	set_entvar(entity, var_effects, visible == 1 ? get_entvar(entity, var_effects) & ~EF_NODRAW : get_entvar(entity, var_effects) | EF_NODRAW);
}

// gorunmez ->      set_entvar(entity, var_effects, get_entvar(entity, var_effects) | EF_NODRAW);
// gorunur  ->	    set_entvar(entity, var_effects, get_entvar(entity, var_effects) & ~EF_NODRAW);
  • Fazla yok ama düzeltilmesi gerekiyor. For döngüsü içinde değişken oluşturma.

Kod: Tümünü seç

new Float:origin[3];
for(new i=0; i<num; i++) {
	ids=players[i];
	if(g_hain[ids]) {
		//new Float:origin[3]; get_entvar(id, var_origin, origin);
		get_entvar(id, var_origin, origin);
		say=true;
  • Gondol oyununda aimdeki oyuncuyu glowla derken ölü olup olmamasını kontrol etmek yetiyor.

Kod: Tümünü seç

//if(is_user_connected(ids) && ids && ids!=id) {
if(is_user_alive(ids))

[list]get_players komutu sadece oyunda olanları algılatıyor. Tekrardan kontrol etmeye gerek yok[/list]

[code]
new players[MAX_PLAYERS], num, ids; 
get_players_ex(players, num, GetPlayers_ExcludeAlive | GetPlayers_MatchTeam | GetPlayers_ExcludeBots, "TERRORIST");

for(new i=0; i<num; i++) {
	ids=players[i];

	rg_round_respawn(ids);
	//if(is_user_connected(ids)) 
		//rg_round_respawn(ids);
	//}
}
  • Bu gayet güzel. Bunu güzel olduğu için yazma isteği duydum.

Kod: Tümünü seç

if(is_user_connected(key) && !is_user_alive(key)) {
  • Böyle basit komutlarda for döngüsü ile oyuncu çekmek daha hızlı ve basit olabilir. Değiştirilmese pek sıkıntı olmaz fakat ben öğrendiğime göre for döngüsü get_players komutundan hızlı çalışıyormuş fakat MaxClients kullanılırsa hızlı çalışıyor.

Kod: Tümünü seç

for(new ids = 1; ids <= MaxClients; ids++)
{
	if(is_user_alive(ids) && get_member(ids, m_iTeam) == TEAM_TERRORIST && Takim[ids] == 2)
	{
		user_kill(ids);
	}
}
//new players[MAX_PLAYERS], num, ids;
//get_players_ex(players, num, GetPlayers_ExcludeDead | GetPlayers_MatchTeam | GetPlayers_ExcludeBots, "TERRORIST");

//for(new i=0; i<num; i++) {
	//ids=players[i];

	//if(Takim[ids]==2) 
		//user_kill(ids);
	//}
//}

[list]Birçok kez kullanılan komutları tek bir komutla birleştirebilirsin.[/list]

[code]
public .....()
{
	oyuncuyudondur(ids);
	//flags=get_entvar(ids, var_flags);
	//if(~flags & FL_FROZEN) {
		//set_entvar(ids, var_flags, flags | FL_FROZEN);
	//}
}

oyuncuyudondur(const id)
{
	new flags=get_entvar(ids, var_flags);
	if(~flags & FL_FROZEN) {
		set_entvar(ids, var_flags, flags | FL_FROZEN);
	}
}
  • Float ile daha bir güzel olurdu gibi.

Kod: Tümünü seç

glowla(const id, const Float:bir, const Float:iki, const Float:uc) {
//glowla(const id, const bir=0, const iki=0, const uc=0) {
	//new Float:RenderColor[3];
	//RenderColor[0]=float(bir);
	//RenderColor[1]=float(iki);
	//RenderColor[2]=float(uc);

	set_entvar(id, var_renderfx, kRenderFxGlowShell);
	set_entvar(id, var_rendercolor, RenderColor);
	set_entvar(id, var_rendermode, kRenderNormal);
	set_entvar(id, var_renderamt, 30.0);
}
  • pev yerine reapi?

Kod: Tümünü seç

bool:Stuck(id) {

	//static Float:Origin[3]; pev(id, pev_origin, Origin);
	static Float:Origin[3]; get_entvar(id, var_origin, Origin);
	
	//engfunc(EngFunc_TraceHull, Origin, Origin, IGNORE_MONSTERS, pev(id, pev_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN, 0, 0);
	engfunc(EngFunc_TraceHull, Origin, Origin, IGNORE_MONSTERS, get_entvar(id, var_flags) & FL_DUCKING ? HULL_HEAD : HULL_HUMAN, 0, 0);
	//if(get_tr2(0, TR_StartSolid) ) return true;
	
	//return false;
	return bool:get_tr2(0, TR_StartSolid);
}
  • RG_CBasePlayer_ResetMaxSpeed komutunda yaşıyor olup olmamasını kontrole gerek yok.
    Sadece doğduğunda hız kapanıyorsa sıkıntı yok.

Kod: Tümünü seç

public resetSpeed(id) {
	//if(g_hiz[id] && is_user_alive(id)) {
	if(g_hiz[id])
	{
		set_entvar(id, var_maxspeed, 650.0);
		return HC_SUPERCEDE;
	}
	return HC_CONTINUE;
}
  • Ayarları sıfırlarken if komutlarına gerek yok. Direkt değerleri 0 yapıp taskları silseniz yeterli. Remove_task eklentisi zaten task yokken çalışmaz

Kod: Tümünü seç

oylamaSayac=0;
remove_task(task_KORUMA);
//if(oylamaSayac>0) {

	//oylamaSayac=0;
	//remove_task(task_KORUMA);
//}

[list]Touch komutunda da ölü olup olmadığını vs kontrole gerek yok. Oyuncu öldüğünde değer kapanıyorsa tadından yenmez.[/list]

[code]
public touch_weapon(ent, id) {
	return g_silahKontrol[id] ? PLUGIN_HANDLED : PLUGIN_CONTINUE;
	//if(g_silahKontrol[id] && is_user_connected(id) && is_user_alive(id)) 
		//return PLUGIN_HANDLED;

	//return PLUGIN_CONTINUE;
}
  • Damage oluştururken hamsandwich kütüphanesi kullanılabilir.

Kod: Tümünü seç

ExecuteHam(Ham_TakeDamage, ent, 0, id, 90000.0, DMG_SHOCK);
//if(is_user_alive(ent)) 
		//kill(id, ent, "deagle");//user_kill(ent, 1);

//message_begin( MSG_BROADCAST, get_user_msgid("DeathMsg"),{0,0,0},0); 
//write_byte(id); 
//write_byte(ent);
//write_byte(0);
//message_end();
  • Tek komut bile olsa yapılmaması gerek

Kod: Tümünü seç

for(new i = 1; i <= MaxClients; i++)
{
	yarismaSayac[i] = 0;
}
//for(new i=0; i<num; i++) 
		//yarismaSayac[players[i]]=0;
Eklentiyi ve kodlama tarzını beğendim. Başarılarınızın devamını bekliyorum

Link:
Linklerini gizle
Linki Kopyala

ElitGaminG
Mesajlar: 111
Kayıt: Çrş Eyl 09, 2015 3:23 pm
Konum: Çanakkale
Server Ip/DNS: cs21.csduragi.com
Clan İsmi: eLit gAming

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Mesaj gönderen ElitGaminG »

Taha Demirbaş yazdı: Pzr Tem 26, 2020 6:49 pm Eklenti onaylandı.

Eklentide ayarları sıfırla menüsü çalışmamakta tıklandığında herhangi bir şey olmuyor.

Link:
Linklerini gizle
Linki Kopyala

.S'c!neLy*
Mesajlar: 52
Kayıt: Cum Ağu 24, 2018 6:37 pm
Clan İsmi: MoonGaming

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Mesaj gönderen .S'c!neLy* »

ElitGaminG yazdı: Pzt Ağu 03, 2020 12:41 am
Taha Demirbaş yazdı: Pzr Tem 26, 2020 6:49 pm Eklenti onaylandı.

Eklentide ayarları sıfırla menüsü çalışmamakta tıklandığında herhangi bir şey olmuyor.
Semiclip eklentisi kullanıyor musunuz ?

Link:
Linklerini gizle
Linki Kopyala

DarkThrone
Mesajlar: 670
Kayıt: Prş Nis 09, 2020 2:12 pm
Konum: Bursa
Server Ip/DNS: cs.darkthronejb.com
Clan İsmi: DarkThrone Jail
İletişim:

[ReAPI] Gelişmiş Temiz CT Menü Eklentisi (/ctmenu)

Mesaj gönderen DarkThrone »

Necati Doğan yazdı: Pzt Tem 27, 2020 8:08 pm Semiclip cvar ayarı olan bir semiclip eklentisi kullanın. Team Semiclip 2.0.0 veya son sürümünü araştırıp kullanabilirsiniz. Bunu yaparsanız define bin başına // koymayin.

Veya viewtopic.php?p=301605#p301605 bu yorumda söylediğim kodu değiştirip define semiclipi silip kullanın calismasu gerekiyor ama şimdilik önerim semiclip eklentisi bulup kullanmanız.
Bazı Bölümler çalışmıyor sanırım semiclip yüzünden elinizde teamsemiclip 2.0.0 dosyasının sma sı var mı acaba ? veya içeriğini paylaşabilir misiniz. Tekrar elinize sağlık yeni deniyebildik her şey çok güzel

Link:
Linklerini gizle
Linki Kopyala
Cevapla