Merhabalar, ben bir jbmenu yapmak ıstıyorum. ve bunun ıcınde @PawNod' un menusunu kulanıyorum (pawn da paylastıgı)
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
menu bu
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();
}
}
}
}
)

