veya su seyin kodu ney bla bla gibi olaylari bu konuda derleyeylim gun icinde en cok kullandiginiz kodlari aciklayarak yoruma atalim
ben bir temel atayim
bu arada yuklenen dosya bos hatasi aliyorum 11kblik dosyada rar atiyim dedim http hatasi verdi
sadece kod hata vermiyor
[@Bilinmeyen Etiket]
Kod: Tümünü seç
*/
#include <amxmisc> /// bu kod en ustte zorunludur her plugine koyunuz
#include <amxmodx> ///bu kod en ustte zorunludur her pluginde koyunuz
#include <hamsandwich> // bu kod ham kodlarini kullanacagimiz kitapliktir
#include <cstrike> // counter kodlarini kullanabilcegimiz kitapliktir ornek get_user_name get_user_team cs_get_user_money cs_set_model gibi
#include <jail> // jailbreak pluginlerde kullanilacak include jb_set_user_packs(id, jb_get_user_packs(id) + 5) gibi kodlarin kullanilmasini saglar
#include <fun> // give item vb eglenceli kodlarin bulundugu kitaplik
#include <fakemeta> // pev kodlarinin icerdigi include
//bu include dedigimiz sey kitapliktir belirli kodlarin scriptings/include klasorundeki .inc halinde bulunan dosyalara yonlendirmedir.
// "//" nedir bu "//" olayi plugin icerisinde kisiye birakacagimiz nottur bir not birakmadan once veya bir kodu devre dissi birakmadan once satir baslarina // koyulur.
#define PLUGIN "OrnekOgretici" // bu defineler en sevdigim seydir her degere koyabiliyoruz sayi vb haric yazi yazilan bir seyler tanitilan cvar kod renk formatex gibi tum degiskenlere koyuluyor
#define VERSION "1.1"
#define AUTHOR "PaZee"
new const sesimiz[] = { "ornekses.wav" } // bu ornek bir ses dosya yolu
// eger bu sekilde alt alta new yollamak istiyorsaniz new yazip altina bir satir inip xxx, "," "virgul" koymayi unutmayin fakat newlerin en son yenilige "," "virgul" koyarsaniz plugin akisi bozulur son new e virgul koymayiniz alttaki ornek
new
deger1,
deger2,
deger3,
deger4,
deger5[33],
izin // burasi en son satir oldugu icin virgul koymadim
// bu 33 , kisiye yani "id" kavramina yonelik calistirir [33] koymassak plugin icinde calisir [33] bir kisiye yaptiracagimiz kisiye ozel koddur [id] [0] gibi kullanilabilir.
// gibi gider bu sizin plugin icinde "yeni" olarak ekliceginiz kodlardir. ornegin g_para olarak bir kod olusturacaksiniz new kismina g_para yaziyorsunuz
//newleri bir yere baglamazsak bir sorun cikarmaz fakat warning verir symbol is never used "xxxx" on line xxx gibisinden turkce anlami sembol hic kullanilmadi "xxx" xxx cizgisinde.
public plugin_init()
{
//hamsandwich kitapligi bazi kodlar
RegisterHam(Ham_Spawn, "player", "dogdumben", 1) // oyuncudogdugunda dogdumben adli publice yonlendirilen ham kodu
register_logevent("elsonu",2,"1=Round_End"); // el bittiginde elsonu adli publice yonlendirme yapacagimiz kod id olarak islemez.
register_event( "DeathMsg" , "olunce" , "a" ) // oyuncu oldugunde
register_event("HLTV", "elbasi", "a", "1=0", "2=0") // el basi
//cvar ekleme
izin = register_cvar("plugin_izin", "1"); // 1 acik halidir biz acma kapama gorevinde kullancagimiz icin oyle dedim. new kismina izin yaziyoruz bu bir cvardir
// alttaki komutta oyuncu /sescal yazarsa sescal publicine gider.
register_clcmd("say /sescal","sescal") // bir say komutuyla public yonlendirme simdi biz sescal adli publicimize say komutuyla player yollayacaz sescal yazdigimiz yere (id) (blabla) gibi seyler yazmiyoruz diyek public adi. sescal gibi
// public kodlari yazabilcegimiz baginti noktalaridir
}
public elbasi()
{
}
public olunce()
{
new olduren = read_data(1)
new olen = read_data(2)
if(olduren == olen)
{
return PLUGIN_HANDLED
}
if(get_user_team(olduren) == 1 && get_user_team(olen) == 1)// t olduruldugunde girilecek yer
cs_set_user_money(olduren, cs_get_user_money(olduren) + 2000) // burda id veya 0 gibi terimler kullanmadik burda tyi olduren kisiye 2000 lira veriyor
cs_set_user_money(olen, cs_get_user_money(olen) - 1000) // olen tden 1000 lira aliyor
if(get_user_team(olduren) == 1 && get_user_team(olen) == 2) // ct oldurdugunde girebilcek yer
cs_set_user_money(olduren, cs_get_user_money(olduren) + 2000) // burda id veya 0 gibi terimler kullanmadik burda ctyi olduren kisiye 2000 lira veriyor
cs_set_user_money(olen, cs_get_user_money(olen) - 1000) // olen ctden 1000 lira aliyor
return PLUGIN_CONTINUE;
}
public plugin_precache() // id yapmadik pluginde yurutecegiz. zaten id yapamayiz plugin_init plugin_xxx vb gibi seyleri
{
precache_sound(sesimiz) // new const olarak yeni kavramiyla tanittigimiz yere baglanacaktir
}
public elsonu()
{
new players[32],inum,id // bu kod () olan id vb koymadigimiz yerde butun oyunculari bi anda pluginin bu publice yonlendirdigi ve publice idyi tanitabildigimiz koddur.
get_players(players,inum)
for(new i;i<inum;i++)
{ // acilis
id = players[i] // kodun bitisi
// buranin altina id kodlari girilebilir ama eger ustteki kodu yazmassak id kodlari girilemez
if(!is_user_alive(id)) // bu if sadece anlamina gelir alive yasiyor gibi bir anlam tasir buraya sadece yasayanlar girebiliyor. bu if kodunun bos hali "if()" tir
{ // acilis
jb_set_user_packs(id, jb_get_user_packs(id) + 5) // burasi el sonu oldugu icin ve if alive kodu koydugumuz icin el sonunda yasayanlara 5 jb verdigimiz yer.
cs_set_user_money(id, cs_get_user_money(id) + 2000) // buda oyuncuya cs parasi verir cstrike includesiyle calisir
} // kapanis
else // else if komutundan gecemeyen kisilerin gonderilcegi yerdir illa kisi olmasi gerekmez. else yada anlamina gelir
{ // acilis
renkli_yazi(id,"!n[!gOlu Oldugunuz icin para alamadiniz")
} // kapanis
} // kapanis
}
public dogdumben(id)
{
new isim[32] // bu public icinde tanittigimiz newdir sadece bu publice baglidir
get_user_name(id,isim,31) // get user name oyuncunun ismini alir
renkli_yazi(id,"!n[!gDogdunuz Adiniz : %s", isim) // kelimeler vb %s ile gosterilir sayilar vb %i ile gosterilir "yaziyi" yazdigim yerdir ", deger) bu kisimda bir kullandigim koddur bu kodda adamin ismini veriyor.
}
public sescal(id) // id yapmamin sebebi kisiye yaptirmam olacaktir.
{
emit_sound(id, CHAN_AUTO, sesimiz, VOL_NORM, ATTN_NORM , 0, PITCH_NORM) // sesimizin constunu ve plugin_precache ayarlarini yaptiktan sonra publice yuklemeye hazir olmasidir
// su yukardaki sesi caldigimizda herkez duyar fakat ATTN_NORM , id yaparsak duyamaz sadece biz duyariz. publice giren kisi
emit_sound(id, CHAN_AUTO, sesimiz, VOL_NORM, ATTN_NORM , id, PITCH_NORM) // boyle yaparsak sadece biz duyariz 0 olan yeri id yaptim. 0 herkez demektir id ise sadece biz giren kisi yapan eden.
}
// ses dosyalari 8000 hz 8 bit olmalidir mono halinde
public kisitlama(id)
{
//diyelim ki oyuncu 3000 cs parasi verecek ve karsiliginda 3 tane bomba alacak
if (cs_get_user_money(id) >= 3000) // ">=" gerekli degeri esitleme anlamina gelir karsisina eger 31 yazarsan adamin parasi 31den fazlaysa o if kismindan gecebilir.
{
give_item(id, "weapon_hegrenade") // burasi el bombasi veriyor 1 tane
cs_set_user_bpammo(id,CSW_HEGRENADE,3) // burasi oyuncuyunun el bombasi kac olursa olsun bakin kac olursa olsun 3 tane bomba mermisi yapiyor.
}
}
// bu basit bir menudur
public arac_gerec(id)
{
if(get_pcvar_num(izin)) // burasi yukarda tanittigimiz cvar kodu eger 1 se bu menuye erisim acilir eger 0sa erisim kapanir.
{
new Menu = menu_create("\d|\yTurkish Army\d| \w~ \rArac Gerec Menu","arac_devam") // arac_devam adinda alt publice gonderir.
menu_additem(Menu,"Menu Sayfa","1") // surda "1" yaziyor ya he o iste gondercegi casedir alttakilderdede 2 3 4 vb yaziyor
menu_additem(Menu,"Menu Sayfa","2")
menu_additem(Menu,"Menu Sayfa","3")
menu_additem(Menu,"Menu Sayfa","4")
menu_setprop(Menu, MPROP_EXITNAME, "Cikis")
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu)
}
return PLUGIN_HANDLED
}
public arac_devam(id,menu,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new access,callback,data[6],iname[64]
menu_item_getinfo(menu,item,access,data,5,iname,63,callback)
new key = str_to_num(data)
switch(key)
{
case 1 : // yukardaki publicte "1" yazdigimiz seyin gonderdigi kutucuk
{
//kodlar
}
case 2 : // "2" yazanin gondercegi kutucuk
{
//kodlar
}
case 3 : // "3" yazanin gondercegi kutucuk
{
//kodlar
}
case 4 : // "4" yazanin gondercegi kutucuk
{
//kodlar
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public kaldiysabir(id)
{
new contador=0;
new players[32], num, tempid;
get_players(players, num)
for (new i=0; i<num; i++)
{
tempid = players[i]
if (get_user_team(tempid)==1 && is_user_alive(tempid))
{
contador++;
}
}
if ( contador == 1 ) // "==" eger deger 1 ise sadece 1 baska sayi degil ne ustu ne alti sadece 1 terorist kaldi ise girecegi yer
{
renkli_yazi(id,"!gSon Mahkum Bu Menuden yararlanamaz") // eger son kisi varsa bu menuden yararlanamiyacgini soyluyor
}
else if ( contador >= 2 ) // eger 1den fazla terorist varsa girecegi yer BURDAKI CONDATOR TERORIST SAYISI DEMEK condator eger 2den yuksek ise girilebilir.
{
}
}
// kosede bekleyen stock olmayan kodlar
public get_godmode() // bu kodda eger god varsa girilecek yeri gosteriyor ornek public veriyim
{
new ctsayisi, godluct
for( new i = 1; i<(get_maxplayers() + 1); i++)
{
if(is_user_connected(i) && get_user_team(i) == 2 && is_user_alive(i))
{
ctsayisi++
if(!pev(i,pev_takedamage))
{
godluct++
}
}
}
if(godluct == ctsayisi && ctsayisi > 0)
{
return 1
}
else if(godluct != ctsayisi && godluct > 0)
{
return godluct
}
else if(godluct == 0 && ctsayisi > 0)
{
return 0
}
else
{
return 0
}
}
public ornekpublici(id)
{
if(get_godmode ()) // eger god varsa girilebilecek yer
{
}
else //
{
}
}
//stocklar kosede bekliyen pluginde hazir kullanilmak uzere olan kodlar.
stock renkli_yazi(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!n", "^x01"); // Default Renk(Sar?)
replace_all(msg, 190, "!g", "^x04"); // Ye?il Renk
replace_all(msg, 190, "!t", "^x03"); // Tak?m Renk( CT mavi , T k?rm?z? )
if (id) players[0] = id; else get_players(players, count, "ch");
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
/*
arkadaslar birazcik hizli kafayla yazmaya calistim her gun bir kod ekleyip yorumlara atacagim kodun kullanim sekli vb burda hem sizin hem benim kaybetmeyecegim bir kitaplik olacak
hani bi anda aa acaba su kod ne ise yariyordu diye sordugumuzda bu kitapliga gelcez herkez buraya kucuk kucuk cok kullandigi kodlari atarak bilmeyenlerede ogretebilir
benim yanlis bilip anlattigim seyleri yorumlarda duzeltirsiniz. hatasiz kul olmaz
*/
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/