ben buna menu vsr. eklemek ıstıyorum. ama bır turlu basaramıyorum
acaba bana yardım edebılırmısınız? ek olarak bır kac soru daha sorucamda
PHP Kod:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <cstrike>
#include <hamsandwich>
#define is_valid_player(%1) (1 <= %1 <= 32)
// --------------------------------
// Menü Tagları
// --------------------------------
new stock pMenuTag[] = "LookS";
new stock pMenuKisaTag[] = "LookS";
// --------------------------------
// Say Tagı
// --------------------------------
new stock SayTag[] = "!gLookS!t-!gJailBreaK";
// --------------------------------
// Bıçak Yolları
// --------------------------------
new stock pKnifeMDL[][][] = {
// {"Bicak Adı",Fiyatı ,Hasarı,"v_ Model Yolu","p_ Model Yolu"},
{"",0,0,"",""},
{"Ct Bicagi",0,80,"models/[Shop]JailBreak/Electro/Electro.mdl" ,"models/[Shop]JailBreak/Electro/Electro2.mdl" },
{"T Yumruk",0,15,"models/[Shop]JailBreak/Punos/Punos.mdl" ,"models/[Shop]JailBreak/Punos/Punos2.mdl" },
{"Pompa",-1,25,"models/[Shop]JailBreak/Palo/Palo.mdl" ,"models/[Shop]JailBreak/Palo/Palo2.mdl" },
{"Balta",10,50,"models/[Shop]JailBreak/Hacha/Hacha.mdl" ,"models/[Shop]JailBreak/Hacha/Hacha2.mdl" },
{"Doner Bicagi",15,75,"models/[Shop]JailBreak/Machete/Machete.mdl" ,"models/[Shop]JailBreak/Machete/Machete2.mdl" },
{"Testere + Bomba",25,200,"models/[Shop]JailBreak/Moto/Moto.mdl" ,"models/[Shop]JailBreak/Moto/Moto2.mdl" }
};
// --------------------------------
// Bıçak Sesi Yolları
// --------------------------------
new stock pKnifeSound[][][]= {
/* Default Bicak Sesleri Bunlara Dokunmayin */
{"weapons/knife_deploy1.wav","weapons/knife_slash1.wav","weapons/knife_slash2.wav","weapons/knife_hitwall1.wav","weapons/knife_hit1.wav",
"weapons/knife_hit2.wav","weapons/knife_hit3.wav","weapons/knife_hit4.wav","weapons/knife_stab.wav"},
/* //////////////////////////////////////// */
{"[Shop]JailBreak/CT/CTConvoca.wav","[Shop]JailBreak/CT/Slash1.wav","[Shop]JailBreak/CT/Slash2.wav","[Shop]JailBreak/CT/CTHitWall.wav","[Shop]JailBreak/CT/CTHit1.wav",
"[Shop]JailBreak/CT/CTHit2.wav","[Shop]JailBreak/CT/CTHit3.wav","[Shop]JailBreak/CT/CTHit4.wav","[Shop]JailBreak/CT/CTStab.wav"},
{"[Shop]JailBreak/T/TConvoca.wav","[Shop]JailBreak/T/Slash1.wav","[Shop]JailBreak/T/Slash2.wav","[Shop]JailBreak/T/THitWall.wav","[Shop]JailBreak/T/THit1.wav",
"[Shop]JailBreak/T/THit2.wav","[Shop]JailBreak/T/THit3.wav","[Shop]JailBreak/T/THit4.wav","[Shop]JailBreak/T/TStab.wav"},
{"weapons/knife_deploy1.wav","weapons/knife_slash1.wav","weapons/knife_slash2.wav","[Shop]JailBreak/Palo/PHitWall.wav","[Shop]JailBreak/Palo/PHit1.wav",
"[Shop]JailBreak/Palo/PHit2.wav","[Shop]JailBreak/Palo/PHit3.wav", "[Shop]JailBreak/Palo/PHit4.wav","[Shop]JailBreak/Palo/PStab.wav"},
{"weapons/knife_deploy1.wav","[Shop]JailBreak/Hacha/HSlash1.wav","[Shop]JailBreak/Hacha/HSlash2.wav","[Shop]JailBreak/Hacha/HHitWall.wav","[Shop]JailBreak/Hacha/HHit1.wav",
"[Shop]JailBreak/Hacha/HHit2.wav","[Shop]JailBreak/Hacha/HHit3.wav","[Shop]JailBreak/Hacha/HHit3.wav","[Shop]JailBreak/Hacha/HHit4.wav"},
{"weapons/knife_deploy1.wav","[Shop]JailBreak/Machete/MSlash1.wav","[Shop]JailBreak/Machete/MSlash2.wav","[Shop]JailBreak/Machete/MHitWall.wav","[Shop]JailBreak/Machete/MHit1.wav",
"[Shop]JailBreak/Machete/MHit2.wav","[Shop]JailBreak/Machete/MHit3.wav", "[Shop]JailBreak/Machete/MHit4.wav","[Shop]JailBreak/Machete/MStab.wav"},
{"[Shop]JailBreak/Moto/MTConvoca.wav","[Shop]JailBreak/Moto/MTSlash.wav","[Shop]JailBreak/Moto/MTSlash.wav","[Shop]JailBreak/Moto/MtHitWall.wav","[Shop]JailBreak/Moto/MTHit1.wav",
"[Shop]JailBreak/Moto/MTHit2.wav","[Shop]JailBreak/Moto/MTHit1.wav", "[Shop]JailBreak/Moto/MTHit2.wav","[Shop]JailBreak/Moto/MTStab.wav"}
};
// Burada Cvar Ayarlarını Girdik Hızlıca Kayıt Edilsin Diye.
new stock pCvarNum[][][] = {
{"Baslangic_TL","3"},{"Kill_TL","3"},{"Max_Verilecek_TL","250"}
};
// --------------------------------
// Daha Fazla Ayar Eklenirse Diye enum Şeklinde Yapıldı
// --------------------------------
enum _: pConfig {
pChoose,pPlayer,pMarket
}
new pVData[33][pConfig],pKnifeID[33],pTL[33],pCvar[3]
public plugin_precache() {
// -------------------------------------
// Burada Bıçak Model Yollarını Precache Ettik.
static pKnives[128];
for(new i=1;i<sizeof(pKnifeMDL);i++) {
formatex(pKnives,charsmax(pKnives),pKnifeMDL[i][3]),precache_model(pKnives);
formatex(pKnives,charsmax(pKnives),pKnifeMDL[i][4]),precache_model(pKnives);
}
// -------------------------------------
// Burada Bıçak Ses Yollarını Precache Ettik.
for(new i= 0;i<sizeof(pKnifeSound);i++) {for(new s = 0; s < 9; s++) precache_sound(pKnifeSound[i][s]);}
// -------------------------------------
}
public plugin_natives() {
// Burada Eklentinin Nativelerini Girdik Ki Diğer Eklentilerden Bu Para Birimine Erişim Olsun Diye.
register_native("jb_get_user_packs","Native_JSUP", 1);
register_native("jb_set_user_packs","Native_JGUP");
}
// Native lerin Neye Eşit Olduğunu Gösterdik.
public Native_JSUP(id) return pTL[id];
public Native_JGUP(id, ammount) {new id = get_param(1), ammount = get_param(2);pTL[id] = ammount;return 1;}
//--------------------------------
public plugin_init() {
register_plugin("Optimize JBMenu", "1.0","PawNod'");
register_clcmd("say /jbmenu","pCC");
register_clcmd("say /mg","pTLMenu");
register_clcmd("say !mg","pTLMenu");
register_clcmd("say .mg","pTLMenu");
register_clcmd("say /tl","pTLMenu");
register_clcmd("say .tl","pTLMenu");
register_clcmd("say !tl","pTLMenu");
register_event("CurWeapon","pWP","be","1=1");
RegisterHam(Ham_Spawn,"player","pSW",1);
register_clcmd("Miktar_Giriniz?","pTLMiktar");
register_event("HLTV", "pRS", "a", "1=0", "2=0");
RegisterHam(Ham_TakeDamage, "player", "pKD", 0);
register_forward(FM_EmitSound,"pKS");
// Cvarlari Stock Dan Çekip Hızlıca Kayıt Ettirdik.
for(new i=0; i < sizeof(pCvarNum);i++)pCvar[i] = register_cvar(pCvarNum[i][0][0],pCvarNum[i][1][0]);
//-------------------------------------------
}
public client_putinserver( id ) {pTL[id] = get_pcvar_num(pCvar[0]);}
public pRS() {
new players[32], inum, id,i;
get_players(players, inum);
for(i=0;i<inum;i++) {
id = players[i];
pVData[id][pMarket] = 0 // Config deki Değeri 0 Yaptırdık ki Diğer El Oyuncumuz Markete Girebilsin.
}
}
public pCC(id) {
if(is_user_alive( id )){
new players[ 32 ], Son_Mahkum;get_players( players, Son_Mahkum, "ae", "TERRORIST" );
if(Son_Mahkum == 1) {
renkli_yazi(id,"!n[ !t- !g%s !t- !n] !tSona Kalan Mahkum !nBu Menuden Yararlanamaz!",SayTag); return PLUGIN_HANDLED;
} else if(get_user_team( id ) == 1) pJailShop(id);
}
return PLUGIN_CONTINUE;
}
public pSW(id) {
switch(get_user_team(id)) {
case 1: {
pKnifeID[id] = 2;strip_user_weapons( id ); give_item(id, "weapon_knife");pKnifeShop(id);
}
case 2:{pKnifeID[id] = 1;}
}
}
// --------------------------------
// Ana Jail Marketi.
// --------------------------------
public pJailShop(id) {
new pMenu = pMenuOlustur("\rJailbreak \yMarketi","pJailShop_");
// Eğer Marketi Kullandıysa Menüde Kullandınız Yazısı Gelecek Kullanmadıysa Gelmeyecek
pMenuSecenekEkle(pMenu,"Bicak \yMarketi %s","1",1,pVData[id][pMarket]?"\w[\rKullandiniz\w]":"");
pMenuBitir(id,pMenu);
}
public pJailShop_(id, pMenu, pEsya) {
if( pEsya == MENU_EXIT ) { menu_destroy(pMenu);return PLUGIN_HANDLED;}
new pVeri[6],pBos;
menu_item_getinfo(pMenu,pEsya,pBos,pVeri,5,_,_,pBos);
new key = str_to_num(pVeri);
switch(key) {
case 1: {
if(pVData[id][pMarket] == 1) {pJailShop(id),renkli_yazi(id,"!n[ !t- !g%s !t- !n] !nMarkete Zaten Girdin!",SayTag);}else{pKnifeShop(id);}
}
}
menu_destroy(pMenu);return PLUGIN_HANDLED;
}
//----------------------------------------
// Stock'da Belirtilen Bıçaklardan Bıçak Menü
//----------------------------------------
public pKnifeShop(id) {
new pMenu = pMenuOlustur("\rBicak \yMarketi","pKnifeShop_"),NTS[6];
// Burada i değişkenini 3'den Başlattık Ki Stock Da Belirttiğimiz Boş Stock,Yumruk ve CT Bıçağı Da Markete Eklenmesin.
for(new i=3; i < sizeof(pKnifeMDL); i++) {
num_to_str(i,NTS,5);
pMenuSecenekEkle(pMenu,"%s \d[\w%d \yTL\d]",NTS,1,pKnifeMDL[i][0][0],pKnifeMDL[i][1][0]);
}
pMenuBitir(id,pMenu);
}
public pKnifeShop_(id, pMenu, pEsya) {
if( pEsya == MENU_EXIT ) { pJailShop(id);menu_destroy(pMenu);return PLUGIN_HANDLED;}
new pVeri[6],pBos;
menu_item_getinfo(pMenu,pEsya,pBos,pVeri,5,_,_,pBos);
new key = str_to_num(pVeri);
if(pTL[id] >= pKnifeMDL[key][1][0]) {
pTL[id] -= pKnifeMDL[key][1][0], pKnifeID[id] = key;
ham_strip_weapon(id, "weapon_knife"),give_item(id, "weapon_knife");
// Burda "Testere + Bomba" Seçeneğini Alıp Almadığına Göre Bomba Verecek
if(equal(pKnifeMDL[key][0][0],"Testere + Bomba")) {give_item(id,"weapon_hegrenade");}
//----------------------------------------
pVData[id][pMarket]= 1;pCC(id);
renkli_yazi(id,"!n[ !t- !g%s !t- !n] !nMarketten !g[ !t%s !g] !nSatin Aldin!",SayTag,pKnifeMDL[key][0][0]);
}
else renkli_yazi(id,"!n[ !t- !g%s !t- !n] !nYeterli Paran !tYok!",SayTag),pKnifeShop(id);
menu_destroy(pMenu);return PLUGIN_HANDLED;
}
//----------------------------------------
// TL Ver-Al Gelişmiş Sistem (For Gardiyan)
//----------------------------------------
public pTLMenu(id) {
if(get_user_team(id) == 2){
new pMenu = pMenuOlustur("TL \yVer\d-\rAl \dMenu","pTLMenu_");
pMenuSecenekEkle(pMenu,"\wTL \yVer","1");
pMenuSecenekEkle(pMenu,"\wTL \rAl","2");
pMenuSecenekEkle(pMenu,"\wToplu TL \yVer \d(\wSadece \yYasayan\d)","3");
pMenuSecenekEkle(pMenu,"\wToplu TL \yVer \d(\wTum \rMahkumlar\d)","4");
pMenuBitir(id,pMenu);
}
else renkli_yazi(id,"!n[ !t- !g%s !t- !n] !nBuraya !tGiris Yetkin !nYok!",SayTag);
}
public pTLMenu_(id, pMenu, pEsya) {
if( pEsya == MENU_EXIT ) { menu_destroy(pMenu);return PLUGIN_HANDLED;}
new pVeri[6],pBos;
menu_item_getinfo(pMenu,pEsya,pBos,pVeri,5,_,_,pBos);
new key = str_to_num(pVeri);
if(key > 2) {pVData[id][pChoose] = key;client_cmd(id,"messagemode Miktar_Giriniz?");return PLUGIN_HANDLED;}
pPlayerCh(id);pVData[id][pChoose] = key;
menu_destroy(pMenu);return PLUGIN_HANDLED;
}
public pPlayerCh(id) {
static players[32], pnum, tempid,szName[33], szTempid[10];
new pMenu = pMenuOlustur("Oyuncu \rSecin","pPlayerCh_");
get_players(players, pnum,"a");
for( new i; i<pnum; i++ ){
tempid = players[i];get_user_name(tempid, szName, 32);num_to_str(tempid, szTempid, 9);
pMenuSecenekEkle(pMenu,"\w%s \d[\y%d \wTL\d]",szTempid,0, szName,pTL[tempid]);
}
pMenuBitir(id,pMenu);
}
public pPlayerCh_(id, pMenu, pEsya) {
if( pEsya == MENU_EXIT ) { menu_destroy(pMenu);return PLUGIN_HANDLED;}
new pVeri[6],pBos;
menu_item_getinfo(pMenu,pEsya,pBos,pVeri,5,_,_,pBos);
pVData[id][pPlayer] = str_to_num(pVeri);
client_cmd(id, "messagemode Miktar_Giriniz?");
menu_destroy(pMenu);
return PLUGIN_HANDLED;
}
public pTLMiktar(id) {
new say[300];
read_args(say, charsmax(say));remove_quotes(say);
if(!is_str_num(say) || equal(say, "")) return PLUGIN_HANDLED;
new amount = str_to_num(say),clyVerilen = pVData[id][pPlayer];
if(amount > 0) {
// Cvardaki Miktardan Fazlaysa Verdirtmeyip ve Tekrar Girdirtmesini Söyledik.
if(get_pcvar_num(pCvar[2]) < amount) {
renkli_yazi(id,"!n[ !t- !g%s !t- !n] !t[ !g%d TL !t] !n'den Fazla Veremezsin!",SayTag,get_pcvar_num(pCvar[2]));
client_cmd(id, "messagemode Miktar_Giriniz?");
return PLUGIN_HANDLED;
}
// -------------------------------------------------
new pA[33], pV[33];get_user_name(clyVerilen, pA, 32);get_user_name(id, pV, 32);
switch(pVData[id][pChoose]) {
case 1: {
pTL[clyVerilen] += amount;
renkli_yazi(0,"!n[ !t- !g%s !t- !n] !t[ !g%s !t] - !t[ !g%s !t] !n'e !t%d !nTL Verdi!",SayTag,pV,pA,amount);
}
case 2:{
pTL[clyVerilen] -= amount;
renkli_yazi(0,"!n[ !t- !g%s !t- !n] !t[ !g%s !t] - !t[ !g%s !t] !n'nin !t%d !nTL'sini Aldi!",SayTag,pV,pA,amount);
}
case 3: {
new players[32], inum, uid,i;get_players(players, inum,"a");
for(i=0;i<inum;i++) { uid = players[i];if(get_user_team(uid) == 1) pTL[uid] += amount;}
renkli_yazi(0,"!n[ !t- !g%s !t- !n] !t[ !g%s !t] - !t[ !gYasayanlar !t] !n'a !t%d !nTL Verdi!",SayTag,pV,amount);
}
case 4: {
new players[32], inum, uid,i;get_players(players, inum);
for(i=0;i<inum;i++) { uid = players[i];if(get_user_team(uid) == 1) pTL[uid] += amount;}
renkli_yazi(0,"!n[ !t- !g%s !t- !n] !t[ !g%s !t] - !t[ !gHerkes !t] !n'a !t%d !nTL Verdi!",SayTag,pV,amount);
}
}
pVData[id][pPlayer] = 0;
}
return PLUGIN_HANDLED;
}
public pKD(victim, inflictor, attacker, Float:damage, damage_bits){
if(!is_valid_player(attacker) || !is_valid_player(victim)) return HAM_IGNORED;
if (is_valid_player(attacker) && get_user_weapon(attacker) == CSW_KNIFE && pKnifeID[attacker] > 0){
SetHamParamFloat(4, float(pKnifeMDL[pKnifeID[attacker]][2][0])); // Alınan Hasarı Stock'da Ayarladığımız Şekilde Verdirtmek.
// Kafadan Alınan Hasarı Stock'da Ayarladığımız Şekilden +15 Fazla Verdirtmek.
if(get_pdata_int(victim, 75) == HIT_HEAD) SetHamParamFloat(4, float(pKnifeMDL[pKnifeID[attacker]][2][0])+15);
}
return HAM_HANDLED;
}
public pWP(id) {
new pWPID = read_data(2);
if(pWPID == CSW_KNIFE && pKnifeID[id] > 0) {
set_pev(id, pev_viewmodel2, pKnifeMDL[pKnifeID[id]][3][0]); // V_ Modelini Değiştirme.
set_pev(id, pev_weaponmodel2, pKnifeMDL[pKnifeID[id]][4][0]); // P_ Modelini Değiştirme.
}
return PLUGIN_CONTINUE;
}
public pKS(id, channel, const sample[]) {
if (!is_user_connected(id)) return FMRES_IGNORED;
// Eklentide Kayıtlı Orjinal Bıçak Sesleriyle Yeni Bıçak Seslerini Değiştirdik.
for(new i=0; i < 9; i++) {
if(equal(sample, pKnifeSound[0][i][0])) {
emit_sound(id, channel,pKnifeSound[pKnifeID[id]][i][0], 1.0, ATTN_NORM, 0, PITCH_NORM); return FMRES_SUPERCEDE;
}
}
// -------------------------------------------------
return FMRES_IGNORED;
}
// Godun Olup Olmadığını Kontrol Eden Public.
public get_godmode() {
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; }
return PLUGIN_HANDLED;
}
// ---------------------------------------------------------
// Optimize Bir Şekilde Menü Oluşturmaya Yarayan Stocklar (From ITenGrITR)
// ---------------------------------------------------------
// Menü Başlığı Oluşturma
stock pMenuOlustur(const pBaslik[],const pDevam[], any:...){
new pYBaslik[256],pDBaslik[256];
vformat(pDBaslik,charsmax(pDBaslik),pBaslik,3);
formatex(pYBaslik,charsmax(pYBaslik),"%s %s",pMenuTag,pDBaslik);
new pMenu = menu_create(pYBaslik,pDevam);
return pMenu;
}
// Menüye Seçenek Eklemek
stock pMenuSecenekEkle(pMenuID,const pSBaslik[],const pBilgi[],pTag = 1, any:...){
new pYSBaslik[256],pSDuzelt[256];
vformat(pSDuzelt,charsmax(pSDuzelt),pSBaslik,5);
if(pTag == 1){formatex(pYSBaslik,charsmax(pYSBaslik),"%s %s",pMenuKisaTag,pSDuzelt);}
else{formatex(pYSBaslik,charsmax(pYSBaslik),"%s",pSDuzelt);}
menu_additem(pMenuID,pYSBaslik,pBilgi);
}
// Menünün Çıkış Kodları
stock pMenuBitir(id,pMenuID,pSecenek = 1,pCikis = 1,pSayfa = 0){
menu_setprop(pMenuID,MPROP_EXITNAME,"\wCikis");
menu_setprop(pMenuID,MPROP_PERPAGE, pSecenek ? 7:0 );
menu_setprop(pMenuID,MPROP_EXIT,pCikis ? MEXIT_ALL:MEXIT_NEVER);
menu_display(id,pMenuID,pSayfa);
}
// İstenilen Silahı Alma Stocku
stock ham_strip_weapon(id,weapon[]) {
if(!equal(weapon,"weapon_",7)) return 0;
new wId = get_weaponid(weapon);
if(!wId) return 0;
new wEnt;
while((wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname",weapon)) && pev(wEnt,pev_owner) != id) {}
if(!wEnt) return 0;
if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon,wEnt);
if(!ExecuteHamB(Ham_RemovePlayerItem,id,wEnt)) return 0;
ExecuteHamB(Ham_Item_Kill,wEnt);set_pev(id,pev_weapons,pev(id,pev_weapons) & ~(1<<wId));
return 1;
}
// Renkli Yazı Stocku
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");
replace_all(msg, 190, "!g", "^x04");
replace_all(msg, 190, "!t", "^x03");
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();
}
}
}
}
)

