/* Start 21 Sierpien */ /* przerwano 24 Sierpien */ #include #include #include #include #include #include #include #include #include #include #include #pragma tabsize 0 #define PLUGIN "Gothic II Mod" #define VERSION "1.0" #define AUTHOR "Stachu Mroz ;]" #define MAX 20 #define csdm_task 444 //////valut///// new g_exp new g_zielsko new g_bron new g_mikstury new g_umie //////exp-doswiadczenie///// new iExp[33] new iLvl[33] new iKim[33] new player_rozdzial[33] new player_krag[33] new player_pkt[33] new sila[33] new zrecznosc[33] new zycie[33] new mana[33],aktualna_mana[33] new last_update_xp[33] new Float:last_update_perc[33] new const LEVELS[16] = { 0, 100, 200, 400,800,1500,2300,3100,4000,5000,6400,7900,9000,11000,15000,33333 } /////nazwy gildie poziomy itp////// new klasy[3][22] = {"Brak Sciezki","Nowicjusz","Maly ziom"} /////enum dla poziomow//// enum { NONE = 0, Nowicjusz, xxx} /////inne//// new gmsgStatusText new g_msgDeathMsg new menu_option[33],menu_przydziel[33] ////przypisywanie klawiszy slot1 itp//// new ma_funkcje1[33],ma_funkcje2[33],ma_funkcje3[33],ma_funkcje4[33],ma_funkcje5[33] ////ziola//// new rdes[33],l_jag[33],r_lecz[33],g_jag[33],z_ziele[33],o_korz[33],s_korz[33],s_kru[33],menzurka[33],alchemia[33] ////mikstury//// new m_zycia[33],m_mana[33],m_spid[33] ////bronie///// new tryb_broni[33] new bron1[33],bron2[33],bron3[33],bron4[33],id_broni[33] new moja_bron[33],dmg_bron[33] new lista_broni[][]={"Brak", "Sztylet",//1 "Pogrzebacz",//2 "Sierp",//3 "Laska",//4 "Laga",//5 "Sluga Wiatru",//6 "Kiepski Krotki Miecz",//7 "Krotki Miecz Strazy",//8 "Mlot Kowalski",//9 "Topor",//10 "Topor Drwala",//11 "Zardzewialy Krotki Miecz",//12 "Noz na wilki",//13 "Mala Kosa",//14 "Maczuga z Kolcami",//15 "Krotki Miecz",//16 "Miecz",//17 "Gruby Krotki Miecz",//18 "Palka z kolcami",//19 "Kilof",//20 "Wilczy Kiel",//21 "Pika Bojowa",//22 "Palka Bojowa",//23 "Dobry Krotki Miecz",//24 "Kostur Sedziego",//25 "Kiepski Miecz",//26 "Kiepski Tasak",//27 "Kiepski Szeroki Miecz",//28 "Miecz Arlika",//29 "Zardzewialy Topor",//30 "Zardzewialy Miecz Dwureczny",//31 "Ciezka Palka z Kolcami",//32 "Halabarda",//33 "Magiczna Rozdzka",//34 "Mlot Wojeny",//35 "Kiepski Dlugi Miecz",//36 "Topor Marynarski",//37 "Piracki Kordelas",//38 "Lekki Orkowy Topor",//39 "Topor Pokladowy",//40 "Stara Maczeta" } new sila_do_broni[]={ 0,5,5,5,5,10,10,25,10,10,10, 10,50,30,30,10,10,10,30,20,30, 10,22,15,50,25,35,50,40,50,30, 40,50,70,55,25,55,65,60,60,70, 60,60 } new dmg_broni[112]={ 0,5,5,7,8,8,10,15,20,20, ///10/ 20,20,50,30,30,25,25,16,40,40,//20/ 40,30,45,30,50,50,50,40,40,60,///30/ 30,40,50,70,55,55,55,65,60,65, 50,60,60,60,60,60,65,30,70,70, 70,75,70,80,100,35,35,60,60,60, 40,90,60,90,80,80,70,75,80,90, 90,110,80,60,50,100,80,85,100,105,///80 105,110,110,115,60,100,110,80,100,100,///90 105,130,120,125,120,140,135,145,120,120, 120,150,150,140,200,190,140,160,160,160, 160,180} new cena_broni[112]={ 0,5,5,10,10,5,5,25,250,250, ///10 200,200,500,30,250,50,60,450,50,450, ///10 300,550,500,500,750,600,40,40,750,50,///10 40,50,700,550,850,550,650,600,700,10,///10 600,600,900,900,600,950,100,700,700,1000,///10 750,700,700,100,300,450,60,60,15,50,///10 900,1000,900,800,25,20,1050,900,850,900,///10 110,25,750,600,1200,800,850,1100,1100,1050,///10 1100,1100,1150,120,130,1100,1200,2000,1200,1100,///10 1300,1200,1250,1300,1400,1350,1450,1500,2000,3000,///10 1500,1500,1500,3000,2900,4000,4000,1800,1800,///104000,2100 } new tryb_bron[112]={ 1,1,1,1,1,1,1,1,1,1, 1,1,2,1,1,1,1,1,1,1, 1,2,1,2,1,1,1,1,1,1, 1,2,2,1,2,2,1,1,1,1, 2,1,1,2,2,1,2,1,2,2, 2,2,2,2,1,1,1,2,2,2, 2,1,2,2,2,2,2,2,1,1, 1,1,2,1,1,1,2,1,1,2, 2,1,1,2,2,2,1,1,1,1, 2,1,1,1,1,2,2,2,2,2, 1,2,2,2,2,2,1,2,2,1,2,2} ////sprite.//// new sprite_white = 0 public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); g_exp = nvault_open("Exp") g_zielsko = nvault_open("Ziolo") g_bron = nvault_open("Bron") g_mikstury = nvault_open("Poty") g_umie = nvault_open("Umiejetnosci") register_clcmd("say eq","info_eq"); register_clcmd("say /eq","info_eq"); register_clcmd("say /menu","showmenu"); register_clcmd("fullupdate", "BlokujKomende"); register_clcmd("cl_autobuy", "BlokujKomende"); register_clcmd("cl_rebuy", "BlokujKomende"); register_clcmd("cl_setautobuy","BlokujKomende"); register_clcmd("rebuy", "BlokujKomende"); register_clcmd("autobuy", "BlokujKomende"); register_clcmd("glock", "BlokujKomende"); register_clcmd("usp", "BlokujKomende"); register_clcmd("p228", "BlokujKomende"); register_clcmd("deagle", "BlokujKomende"); register_clcmd("elites", "BlokujKomende"); register_clcmd("fn57", "BlokujKomende"); register_clcmd("m3", "BlokujKomende"); register_clcmd("XM1014", "BlokujKomende"); register_clcmd("mac10", "BlokujKomende"); register_clcmd("tmp", "BlokujKomende"); register_clcmd("mp5", "BlokujKomende"); register_clcmd("ump45", "BlokujKomende"); register_clcmd("p90", "BlokujKomende"); register_clcmd("galil", "BlokujKomende"); register_clcmd("ak47", "BlokujKomende"); register_clcmd("scout", "BlokujKomende"); register_clcmd("sg552", "BlokujKomende"); register_clcmd("awp", "BlokujKomende"); register_clcmd("g3sg1", "BlokujKomende"); register_clcmd("famas", "BlokujKomende"); register_clcmd("m4a1", "BlokujKomende"); register_clcmd("bullpup", "BlokujKomende"); register_clcmd("sg550", "BlokujKomende"); register_clcmd("m249", "BlokujKomende"); register_clcmd("shield", "BlokujKomende"); register_clcmd("hegren", "BlokujKomende"); register_clcmd("sgren", "BlokujKomende"); register_clcmd("flash", "BlokujKomende"); register_clcmd("vest", "BlokujKomende"); register_clcmd("vesthelm", "BlokujKomende"); register_clcmd("f1", "klawisz1"); register_clcmd("f2", "klawisz2"); register_clcmd("f3", "klawisz3"); register_clcmd("f4", "klawisz4"); register_clcmd("f5", "klawisz5"); register_menucmd(register_menuid("Opcje"), 1023, "option_menu") register_menucmd(register_menuid("Punkty Nauki"), 1023, "skill_menu") gmsgStatusText = get_user_msgid("StatusText") g_msgDeathMsg = get_user_msgid("DeathMsg") set_msg_block( g_msgDeathMsg, BLOCK_SET ); register_event("DeathMsg", "DeathMsg", "a"); RegisterHam(Ham_TakeDamage, "player","fwTakeDamage",0) RegisterHam(Ham_Spawn, "player", "ustaw_hp", 1); register_forward(FM_PlayerPreThink, "PlayerPreThink") set_task(1.0, "UpdateHUD",0,"",0,"b") } public plugin_precache() { sprite_white = precache_model("sprites/white.spr") } public client_connect(id){ Wczytaj(id) WczytajZ(id) WczytajB(id) WczytajM(id) WczytajU(id) set_task(5.0,"aktywuj_bron",id) } /* public client_authorized(id) { client_cmd(id,"bind ^"f1^" ^"f1^"") client_cmd(id,"bind ^"f2^" ^"f2^"") client_cmd(id,"bind ^"f3^" ^"f3^"") client_cmd(id,"bind ^"f4^" ^"f4^"") client_cmd(id,"bind ^"f5^" ^"f5^"") }*/ public client_disconnect(id) { Zapisz(id) ZapiszZ(id) ZapiszB(id) ZapiszM(id) ZapiszU(id) reset_all(id) } public reset_all(id) { iExp[id] = 0 iLvl[id] = 0 iKim[id] = 0 player_rozdzial[id] = 0 player_krag[id] = 0 player_pkt[id] = 0 rdes[id] = 0 zycie[id] = 0 mana[id] = 0 moja_bron[id] = 0 l_jag[id] = 0 r_lecz[id] = 0 g_jag[id] = 0 z_ziele[id] = 0 o_korz[id] = 0 s_korz[id] = 0 s_kru[id] = 0 bron1[id] = 0 bron2[id] = 0 bron3[id] = 0 bron4[id] = 0 m_zycia[id]=0 m_mana[id]=0 m_spid[id]=0 dmg_bron[id] = 0 menzurka[id] = 0 } ////////////////////////////////////nvalut//////////////////////////// public Zapisz(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-GT",AuthID) format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#",iExp[id], iLvl[id], iKim[id] ,player_rozdzial[id],player_krag[id],player_pkt[id],sila[id],zrecznosc[id],zycie[id],mana[id],moja_bron[id]) nvault_set(g_exp,vaultkey,vaultdata) return PLUGIN_CONTINUE } public Wczytaj(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-GT",AuthID) format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#%i#",iExp[id], iLvl[id], iKim[id] ,player_rozdzial[id],player_krag[id],player_pkt[id],sila[id],zrecznosc[id],zycie[id],mana[id],moja_bron[id]) nvault_get(g_exp,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new playerxp[32], playerlevel[32], playerkim[32], playerroz[32], playerkra[32], playerpkt[32], si[32], zr[32], zyc[32],man[32],bro[32] parse(vaultdata, playerxp, 31, playerlevel, 31, playerkim, 31, playerroz, 31, playerkra, 31, playerpkt, 31, si, 31, zr, 31, zyc, 31, man, 31, bro, 31) iExp[id] = str_to_num(playerxp) iLvl[id] = str_to_num(playerlevel) iKim[id] = str_to_num(playerkim) player_rozdzial[id] = str_to_num(playerroz) player_krag[id] = str_to_num(playerkra) player_pkt[id] = str_to_num(playerkra) sila[id] = str_to_num(si) zrecznosc[id] = str_to_num(zr) zycie[id] = str_to_num(zyc) mana[id] = str_to_num(man) moja_bron[id] = str_to_num(bro) return PLUGIN_CONTINUE } ////////////////////////////////////// public ZapiszZ(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-GTZ",AuthID) format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#",rdes[id],l_jag[id],r_lecz[id],g_jag[id],z_ziele[id],o_korz[id],s_korz[id],s_kru[id]) nvault_set(g_zielsko,vaultkey,vaultdata) return PLUGIN_CONTINUE } public WczytajZ(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-GTZ",AuthID) format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#",rdes[id],l_jag[id],r_lecz[id],g_jag[id],z_ziele[id],o_korz[id],s_korz[id],s_kru[id]) nvault_get(g_zielsko,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new bez1[32], jag[32], lecz1[32], lecz2[32], ziele[32], korz[32], korz2[32], kru[32] parse(vaultdata, bez1, 31, jag, 31, lecz1, 31, lecz2, 31, ziele, 31, korz, 31, korz2, 31, kru, 31) rdes[id] = str_to_num(bez1) l_jag[id] = str_to_num(jag) r_lecz[id] = str_to_num(lecz1) g_jag[id] = str_to_num(lecz2) z_ziele[id] = str_to_num(ziele) o_korz[id] = str_to_num(korz) s_korz[id] = str_to_num(korz2) s_kru[id] = str_to_num(kru) return PLUGIN_CONTINUE } ////////////////////////////////////// public ZapiszB(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-GTB",AuthID) format(vaultdata,255,"%i#%i#%i#%i#",bron1[id],bron2[id],bron3[id],bron4[id]) nvault_set(g_bron,vaultkey,vaultdata) return PLUGIN_CONTINUE } public WczytajB(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-GTB",AuthID) format(vaultdata,255,"%i#%i#%i#%i#",bron1[id],bron2[id],bron3[id],bron4[id]) nvault_get(g_bron,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new bez1[32], jag[32], lecz1[32], lecz2[32] parse(vaultdata, bez1, 31, jag, 31, lecz1, 31, lecz2, 31) bron1[id] = str_to_num(bez1) bron2[id] = str_to_num(jag) bron3[id] = str_to_num(lecz1) bron4[id] = str_to_num(lecz2) return PLUGIN_CONTINUE } ////////////////////////////////////// public ZapiszM(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-GTB",AuthID) format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#",m_zycia[id],m_mana[id],m_spid[id],ma_funkcje1[id],ma_funkcje2[id],ma_funkcje3[id],ma_funkcje4[id],ma_funkcje5[id]) nvault_set(g_mikstury,vaultkey,vaultdata) return PLUGIN_CONTINUE } public WczytajM(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-GTB",AuthID) format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#",m_zycia[id],m_mana[id],m_spid[id],ma_funkcje1[id],ma_funkcje2[id],ma_funkcje3[id],ma_funkcje4[id],ma_funkcje5[id]) nvault_get(g_mikstury,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new zyc[32], man[32], spi[32], f1[32], f2[32], f3[32], f4[32], f5[32] parse(vaultdata, zyc, 31, man, 31, spi, 31, f1, 31, f2, 31, f3, 31, f4, 31, f5, 31) m_zycia[id] = str_to_num(zyc) m_mana[id] = str_to_num(man) m_spid[id] = str_to_num(spi) ma_funkcje1[id] = str_to_num(f1) ma_funkcje2[id] = str_to_num(f2) ma_funkcje3[id] = str_to_num(f3) ma_funkcje4[id] = str_to_num(f4) ma_funkcje5[id] = str_to_num(f5) return PLUGIN_CONTINUE } ////////////////////////////////////// public ZapiszU(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-GTB",AuthID) format(vaultdata,255,"%i#%i#",alchemia[id],menzurka[id]) nvault_set(g_umie,vaultkey,vaultdata) return PLUGIN_CONTINUE } public WczytajU(id) { new AuthID[35] get_user_name(id,AuthID,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-GTB",AuthID) format(vaultdata,255,"%i#%i#",alchemia[id],menzurka[id]) nvault_get(g_umie,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new zyc[32],men[32] parse(vaultdata, zyc, 31, men ,31) alchemia[id] = str_to_num(zyc) menzurka[id] = str_to_num(men) return PLUGIN_CONTINUE } /* ==================================================================================================== */ public DeathMsg(id) { new kid = read_data(1) new vid = read_data(2) new weaponname[20] new headshot = read_data(3) read_data(4,weaponname,31) if (is_user_connected(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid)) { award_kill(kid,vid) daj_mu_item(kid) Zapisz(vid) show_deadmessage(kid,vid,headshot,weaponname) set_task(3.0,"respawn_player",vid+csdm_task); } } /* ==================================================================================================== */ public show_deadmessage(killer_id,victim_id,headshot,weaponname[]) { if (!(killer_id==victim_id && !headshot && equal(weaponname,"world"))) { message_begin( MSG_ALL, g_msgDeathMsg,{0,0,0},0) write_byte(killer_id) write_byte(victim_id) write_byte(headshot) write_string(weaponname) message_end() } } /* ==================================================================================================== */ public award_kill(killer_id,victim_id) { if (!is_user_connected(killer_id) || !is_user_connected(victim_id)) return PLUGIN_CONTINUE new xp_award = 100 if (iExp[killer_id]1){ iExp[id]+=amount if (iExp[id] >= LEVELS[iLvl[id]]) { iLvl[id]+=1 player_pkt[id]+=10 zycie[id]+=12 Zapisz(id) } if (iExp[id] < LEVELS[iLvl[id]-1]) { iLvl[id]-=1 Zapisz(id) } } } /* ==================================================================================================== */ public lvl_hud(id) { if (iLvl[id] == 0) iLvl[id] = 1 new tpstring[1024],pkt[50] new Float:xp_now new Float:xp_need new Float:perc if (last_update_xp[id] == iExp[id]) { perc = last_update_perc[id] } else { //Calculate percentage of xp required to level if (iLvl[id] == 1) { xp_now = float(iExp[id]) xp_need = float(LEVELS[iLvl[id]]) perc = xp_now*100.0/xp_need } else { xp_now = float(iExp[id])-float(LEVELS[iLvl[id]-1]) xp_need = float(LEVELS[iLvl[id]])-float(LEVELS[iLvl[id]-1]) perc = xp_now*100.0/xp_need } } format(pkt,65,"^nWolne Pkt Nauki: %i",player_pkt[id]) last_update_xp[id] = iExp[id] last_update_perc[id] = perc new hapek = get_user_health(id); set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 6.0, 1.0); show_hudmessage(id, "Lvl: %i (%0.0f%s)^nBron: %s",iLvl[id],perc, "%",lista_broni[moja_bron[id]],player_pkt[id]? pkt:""); format(tpstring,1023,"HP: %i MP: %i %s ",hapek,aktualna_mana[id],klasy[iKim[id]]) message_begin(MSG_ONE,gmsgStatusText,{0,0,0}, id) write_byte(0) write_string(tpstring) message_end() } /* ==================================================================================================== */ public UpdateHUD() { for (new id=0; id < MAX; id++) { //If user is not connected, don't do anything if (!is_user_connected(id)) continue if (is_user_alive(id)) lvl_hud(id) else { //Show info about the player we're looking at new index,bodypart get_user_aiming(id,index,bodypart) if(index >= 0 && index < MAX && is_user_connected(index) && is_user_alive(index)) { new pname[32] get_user_name(index,pname,31) new Msg[512] set_hudmessage(255, 255, 255, 0.73, 0.68, 0, 6.0, 3.0) format(Msg,511,"Nick: %s^n%i^n%s", pname,iLvl[index],klasy[iKim[index]]) show_hudmessage(id, Msg) } } } return PLUGIN_CONTINUE; } /* ==================================================================================================== */ public daj_mu_item(id){ new rodzaj = random_num(1,2); switch(rodzaj){ case 1: { if(bron4[id] !=0){ return PLUGIN_HANDLED } else { award_bron(id,0) } } case 2: { award_ziolo(id, 0) } } return PLUGIN_HANDLED } /* ==============Ziolo==================*/ public award_ziolo(id, itemnum) { new rannum = random_num(1,6) new rf = random_num(1,3) if (itemnum > 0) rannum = itemnum else if (itemnum < 0) return PLUGIN_HANDLED if (rf == 3 && itemnum == 0) //We found a rare item { award_unique_ziolo(id) rannum = -1 } switch(rannum) { case 1: { ColorChat(id, GREEN, "Dostales ^x04 Rdes Polny^x01") rdes[id]++ } case 2: { ColorChat(id, GREEN, "Dostales ^x04 Lesna jagode^x01") l_jag[id]++ } case 3: { ColorChat(id, GREEN, "Dostales ^x04 Rosline lecznicza^x01") r_lecz[id]++ } case 4: { ColorChat(id, GREEN, "Dostales ^x04 Zebate Ziele^x01") z_ziele[id]++ } case 5: { ColorChat(id, GREEN, "Dostales ^x04 Ognisty Korzen^x01") o_korz[id]++ } } return PLUGIN_HANDLED } public award_unique_ziolo(id) { new rannum = random_num(1,5) switch(rannum) { case 1: { ColorChat(id, GREEN, "Dostales ^x04 Smoczy Korzen^x01") s_korz[id]++ } case 2: { ColorChat(id, GREEN, "Dostales ^x04 Szczaw Krolewski^x01") s_kru[id]++ } case 3: { ColorChat(id, GREEN, "Dostales ^x04 Goblinie jagody^x01") g_jag[id]++ } } } /* ==============Ziolo==================*/ public award_bron(id, itemnum) { new rannum if( 10 > iLvl[id] >= 0){ rannum = random_num( 1,9 ); } else if( 20 > iLvl[id] >= 10){ rannum = random_num( 1,17 ); } else if( 30 > iLvl[id] >= 20){ rannum = random_num( 1,28 ); } else if( 40 > iLvl[id] >= 30){ rannum = random_num( 1,40 ); } switch(rannum){ case 6,9,11,17,20,21,25,29,34,35,39:return PLUGIN_HANDLED } if (itemnum > 0) rannum = itemnum else if (itemnum < 0) return PLUGIN_HANDLED id_broni[id] = rannum ColorChat(id, GREEN, "Dostales ^x04 %s^x01",lista_broni[id_broni[id]]) if(bron1[id] == 0){ bron1[id] = id_broni[id] return PLUGIN_HANDLED } if(bron2[id] == 0){ bron2[id] = id_broni[id] return PLUGIN_HANDLED } if(bron3[id] == 0){ bron3[id] = id_broni[id] return PLUGIN_HANDLED } if(bron4[id] == 0){ bron4[id] = id_broni[id] return PLUGIN_HANDLED } return PLUGIN_HANDLED } public info_eq(id) { new path_to_file[64] new diabloDir[64] new amxbasedir[64] get_basedir(amxbasedir,63) format(diabloDir,63,"%s/diablo",amxbasedir) if (!dir_exists(diabloDir)) { new errormsg[512] format(errormsg,511,"Blad: Folder %s/diablo nie mogł być znaleziony. Prosze skopiowac ten folder z archiwum do folderu amxmodx",amxbasedir) show_motd(id, errormsg, "An error has occured") } format(path_to_file,63,"%s/diablo/item.txt",amxbasedir) if(file_exists(path_to_file)){ delete_file(path_to_file) } new Data[1024]; format(Data,1024,"Informacje Plecak") write_file(path_to_file,Data,-1) format(Data,1024,"
") write_file(path_to_file,Data,-1) if(bron1[id]) { format(Data,1024,"%s
",lista_broni[bron1[id]]) write_file(path_to_file,Data,-1); } if(bron2[id]) { format(Data,1024,"%s
",lista_broni[bron2[id]]) write_file(path_to_file,Data,-1); } if(bron3[id]) { format(Data,1024,"%s
",lista_broni[bron3[id]]) write_file(path_to_file,Data,-1); } if(bron4[id]) { format(Data,1024,"%s
",lista_broni[bron4[id]]) write_file(path_to_file,Data,-1); } if(m_zycia[id]) { format(Data,1024,"Mikstury Zycia %i
",m_zycia[id]) write_file(path_to_file,Data,-1); } if(m_mana[id]) { format(Data,1024,"Mikstury Many %i
",m_mana[id]) write_file(path_to_file,Data,-1); } if(m_spid[id]) { format(Data,1024,"%s
",m_spid[id]) write_file(path_to_file,Data,-1); } if(rdes[id]) { format(Data,1024,"Rdes: %i
",rdes[id]) write_file(path_to_file,Data,-1); } if(l_jag[id]) { format(Data,1024,"Lesna Jagoda: %i
",l_jag[id]) write_file(path_to_file,Data,-1); } if(r_lecz[id]) { format(Data,1024,"Rosliny Lecznicze: %i
",r_lecz[id]) write_file(path_to_file,Data,-1); } if(g_jag[id]) { format(Data,1024,"Goblinie jagody: %i
",g_jag[id]) write_file(path_to_file,Data,-1); } if(z_ziele[id]) { format(Data,1024,"Zebate Ziele: %i
",z_ziele[id]) write_file(path_to_file,Data,-1); } if(o_korz[id]) { format(Data,1024,"Ognisty Korzen: %i
",o_korz[id]) write_file(path_to_file,Data,-1); } if(s_korz[id]) { format(Data,1024,"Smoczy Korzen: %i
",s_korz[id]) write_file(path_to_file,Data,-1); } if(s_kru[id]) { format(Data,1024,"Szczaw Krolewski: %i
",s_kru[id]) write_file(path_to_file,Data,-1); } format(Data,1024,"
") write_file(path_to_file,Data,-1); show_motd(id,path_to_file,"Item") return PLUGIN_HANDLED } public fwTakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker)){ return HAM_IGNORED; } new health = get_user_health(this); if(health < 2){ return HAM_IGNORED; } damage=dmg_bron[idattacker]+8.0 damage*=random_float(0.45,0.85) if(iLvl[idattacker]+5>iLvl[this]){ damage*=random_float(0.60,0.80) } SetHamParamFloat(4, damage); return HAM_IGNORED; } public PlayerPreThink(id) { if(!is_user_alive(id)) return FMRES_IGNORED if(get_user_weapon(id) != CSW_KNIFE) return FMRES_IGNORED if(tryb_broni[id]>1) set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK) else set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK2) return FMRES_HANDLED } ////////////////////////////////// public change_health(id,hp,attacker,weapon[]) { if(is_user_alive(id) && is_user_connected(id)) { new health = get_user_health(id) if(hp>0) { if (hp+health>zycie[id]) set_user_health(id,zycie[id]) else set_user_health(id,get_user_health(id)+hp) } else { if(health+hp<1) { //UTIL_Kill(attacker,id,weapon) } else set_user_health(id,get_user_health(id)+hp) } } } public change_mana(id,ile) { if(is_user_alive(id) && is_user_connected(id)) { if(ile+aktualna_mana[id]>mana[id]) aktualna_mana[id] = mana[id] else aktualna_mana[id]+=ile } } public showmenu(id) { new text[513] new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<8)|(1<<9) format(text, 512, "\wMenu^n\r1. \wPlecak^n\r2. \wStatystyki^n\r3. \wMiecze^n\r4. \dZbroie^n\r5. \wUmiejetnosci^n^n\r0. Zamknij") show_menu(id, keys, text, -1, "Opcje") return PLUGIN_HANDLED } public option_menu(id, key) { client_cmd(id, "spk diablosound/wybierz"); switch(key) { case 0: { info_eq(id) } case 1: { skilltree(id) } case 2: { wybierz_bron(id) } case 3: { } case 4: { glowne_umiejetnosci(id) } case 5: { } case 8: { } case 9: { return PLUGIN_HANDLED } } return PLUGIN_HANDLED } /* FUNCTIONS ====================================================================================== */ public aktywna_func(id, menu, item){ return ITEM_ENABLED; } public nieaktywna_func(id, menu, item){ return ITEM_DISABLED; } public wybierz_bron(id) { new MyMenu=menu_create("Itemy","itemy_menu_handle"); new aktywna=menu_makecallback("aktywna_func"); new nieaktywna=menu_makecallback("nieaktywna_func"); if(bron1[id] != 0){ menu_additem(MyMenu,lista_broni[bron1[id]],"",0,aktywna); } else { menu_additem(MyMenu,"None","",0,nieaktywna); } if(bron2[id] != 0){ menu_additem(MyMenu,lista_broni[bron2[id]],"",0,aktywna); } else { menu_additem(MyMenu,"None","",0,nieaktywna); } if(bron3[id] != 0){ menu_additem(MyMenu,lista_broni[bron3[id]],"",0,aktywna); } else { menu_additem(MyMenu,"None","",0,nieaktywna); } if(bron4[id] != 0){ menu_additem(MyMenu,lista_broni[bron4[id]],"",0,aktywna); } else { menu_additem(MyMenu,"None","",0,nieaktywna); } if(menu_option[id] == 0){ menu_additem(MyMenu,"Zaloz \dKlik by zmienic","",0,aktywna); } else if(menu_option[id] == 1){ menu_additem(MyMenu,"Drop \dKlik by zmienic","",0,aktywna); } else if(menu_option[id] == 2){ menu_additem(MyMenu,"Info \dKlik by zmienic","",0,aktywna); } menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie"); menu_setprop(MyMenu,MPROP_BACKNAME,"Wroc") menu_setprop(MyMenu,MPROP_NEXTNAME,"Nastepne") //zawsze pokaż opcję wyjścia menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL); menu_setprop(MyMenu,MPROP_PERPAGE,7) //kolor cyfry przycisku zmień na żółty //menu_setprop(MyMenu,MPROP_NUMBER_COLOR,"r"); menu_display(id, MyMenu,0); return PLUGIN_HANDLED; } public itemy_menu_handle(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } switch(item){ case 0:{ if(menu_option[id] == 1){ drop_bron(id,0) } else if(menu_option[id] == 0){ zaloz_bron(id,bron1[id]); } else if(menu_option[id] == 2){ cmd_bron(id,bron1[id]) } } case 1:{ if(menu_option[id] == 1){ drop_bron(id,1) } else if(menu_option[id] == 0){ zaloz_bron(id,bron2[id]); } else if(menu_option[id] == 2){ cmd_bron(id,bron2[id]) } } case 2:{ if(menu_option[id] == 1){ drop_bron(id,2) } else if(menu_option[id] == 0){ zaloz_bron(id,bron3[id]); } else if(menu_option[id] == 2){ cmd_bron(id,bron3[id]) } } case 3:{ if(menu_option[id] == 1){ drop_bron(id,3) } else if(menu_option[id] == 0){ zaloz_bron(id,bron4[id]); } else if(menu_option[id] == 2){ cmd_bron(id,bron4[id]) } } case 4:{ if(menu_option[id] == 0){ menu_option[id] = 1; wybierz_bron(id) } else if(menu_option[id] == 1){ menu_option[id] = 2; wybierz_bron(id) } else if(menu_option[id] == 2){ menu_option[id] = 0; wybierz_bron(id) } } } menu_destroy(menu); return PLUGIN_HANDLED; } //////////////////////////////////////////// public glowne_umiejetnosci(id) { new MyMenu=menu_create("Umiejetnosci","umie_handle"); new aktywna=menu_makecallback("aktywna_func"); menu_additem(MyMenu,"Alchemia","",0,aktywna); menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie"); menu_setprop(MyMenu,MPROP_BACKNAME,"Wroc") menu_setprop(MyMenu,MPROP_NEXTNAME,"Nastepne") //zawsze pokaż opcję wyjścia menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL); menu_setprop(MyMenu,MPROP_PERPAGE,7) //kolor cyfry przycisku zmień na żółty //menu_setprop(MyMenu,MPROP_NUMBER_COLOR,"r"); menu_display(id, MyMenu,0); return PLUGIN_HANDLED; } public umie_handle(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } switch(item){ case 0:{ alchemia_menu(id) } } menu_destroy(menu); return PLUGIN_HANDLED; } //////////////////////////////////////////// public alchemia_menu(id) { new MyMenu=menu_create("Alchemia","al_menu_handle"); new aktywna=menu_makecallback("aktywna_func"); new nieaktywna=menu_makecallback("nieaktywna_func"); if(alchemia[id]){ if(menzurka[id]){ if(r_lecz[id] && rdes[id]){ menu_additem(MyMenu,"Mikstura zycia x1","",0,aktywna); } else menu_additem(MyMenu,"Potrzebne Roslina lecznicza i Rdes","",0,nieaktywna); if(o_korz[id] && rdes[id]){ menu_additem(MyMenu,"Mikstura many x1","",0,aktywna); } else menu_additem(MyMenu,"Potrzebne Ognisty Korzen i Rdes","",0,nieaktywna); } else menu_additem(MyMenu,"Nie masz menzurki","",0,nieaktywna); } else menu_additem(MyMenu,"Umiejetnosc nie wyuczona","",0,nieaktywna); menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie"); menu_setprop(MyMenu,MPROP_BACKNAME,"Wroc") menu_setprop(MyMenu,MPROP_NEXTNAME,"Nastepne") //zawsze pokaż opcję wyjścia menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL); menu_setprop(MyMenu,MPROP_PERPAGE,7) //kolor cyfry przycisku zmień na żółty //menu_setprop(MyMenu,MPROP_NUMBER_COLOR,"r"); menu_display(id, MyMenu,0); return PLUGIN_HANDLED; } public al_menu_handle(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } switch(item){ case 0:{ r_lecz[id]-- rdes[id]-- menzurka[id]-- m_zycia[id]++ ColorChat(id, YELLOW, "Zrobiono miksture") } } menu_destroy(menu); return PLUGIN_HANDLED; } public skilltree(id) { new text[513],keys format(text, 512, "\wPunkty Nauki: %i^n^n\r1. \wSila \r%i^n\r2. \wZrecznosc \r%i^n\r3. \wMana \r%i^n^n\r0. \w Wyjdz", player_pkt[id],sila[id],zrecznosc[id],mana[id]) keys = (1<<0)|(1<<1)|(1<<2)|(1<<9) show_menu(id, keys, text) return PLUGIN_HANDLED } public skill_menu(id, key) { if(player_pkt[id] == 0){ ColorChat(id, GREEN, "Nie masz punktow nauki") return PLUGIN_HANDLED } switch(key) { case 0: { if(sila[id]<200) { player_pkt[id]-=1 sila[id]+=1 } } case 1: { if(zrecznosc[id]<200) { player_pkt[id]-=1 zrecznosc[id]+=1 } } case 2: { mana[id]+=5 player_pkt[id]-=1 } case 9: { return PLUGIN_HANDLED } } if (player_pkt[id] > 0 && key !=9) skilltree(id) return PLUGIN_HANDLED } public BlokujKomende() return PLUGIN_HANDLED; public drop_bron(id,mod) { switch(mod) { case 0: { if(moja_bron[id] == bron1[id]) moja_bron[id] = 0 bron1[id] = bron2[id] bron2[id] = bron3[id] bron3[id] = bron4[id] bron4[id] = 0 } case 1: { if(moja_bron[id] == bron2[id]) moja_bron[id] = 0 bron2[id] = bron3[id] bron3[id] = bron4[id] bron4[id] = 0 } case 2: { if(moja_bron[id] == bron3[id]) moja_bron[id] = 0 bron3[id] = bron4[id] bron4[id] = 0 } case 3: { if(moja_bron[id] == bron4[id]) moja_bron[id] = 0 bron4[id] = 0 } } aktywuj_bron(id) } public zaloz_bron(id,bron_id) { if(sila[id]") len += formatex(motd[len],sizeof motd - 1 - len,"") len += formatex(motd[len],sizeof motd - 1 - len,"

%s -%s


",lista_broni[bron_id],tryb_bron[bron_id]>1?"Dwureczna":"Jednoreczna") len += formatex(motd[len],sizeof motd - 1 - len,"") len += formatex(motd[len],sizeof motd - 1 - len,"

Wymagana Sila %i

",sila[id]>sila_do_broni[bron_id]?"green":"red",sila_do_broni[bron_id]) len += formatex(motd[len],sizeof motd - 1 - len,"") len += formatex(motd[len],sizeof motd - 1 - len,"

Obrazenia + %i

",dmg_broni[bron_id]) len += formatex(motd[len],sizeof motd - 1 - len,"") len += formatex(motd[len],sizeof motd - 1 - len,"

Wartosc %i monet

",cena_broni[bron_id]) formatex(header,sizeof header - 1,"Bron") show_motd(id,motd,header) } public klawisz1(id) { if(ma_funkcje1[id]>0) dzialaj(id,ma_funkcje1[id]) else przydziel(id) return PLUGIN_HANDLED } public klawisz2(id) { if(ma_funkcje1[id]>0) dzialaj(id,ma_funkcje2[id]) else przydziel(id) return PLUGIN_HANDLED } public klawisz3(id) { if(ma_funkcje1[id]>0) dzialaj(id,ma_funkcje3[id]) else przydziel(id) return PLUGIN_HANDLED } public klawisz4(id) { if(ma_funkcje1[id]>0) dzialaj(id,ma_funkcje4[id]) else przydziel(id) return PLUGIN_HANDLED } public klawisz5(id) { if(ma_funkcje1[id]>0) dzialaj(id,ma_funkcje5[id]) else przydziel(id) return PLUGIN_HANDLED } public przydziel(id) { if(menu_przydziel[id] == 0)menu_przydziel[id] = 1 new MyMenu=menu_create("Przydziel","przydziel_menu_handle"); new aktywna=menu_makecallback("aktywna_func"); menu_additem(MyMenu,"Mikstury","",0,aktywna); menu_additem(MyMenu,"Zwoje","",0,aktywna); menu_additem(MyMenu,"Runy","",0,aktywna); menu_additem(MyMenu,"Magia","",0,aktywna); menu_additem(MyMenu,"Ksiegi","",0,aktywna); switch(menu_przydziel[id]){ case 1:menu_additem(MyMenu,"Klawisz 1","",0,aktywna); case 2:menu_additem(MyMenu,"Klawisz 2","",0,aktywna); case 3:menu_additem(MyMenu,"Klawisz 3","",0,aktywna); case 4:menu_additem(MyMenu,"Klawisz 4","",0,aktywna); case 5:menu_additem(MyMenu,"Klawisz 5","",0,aktywna); } menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie"); menu_setprop(MyMenu,MPROP_BACKNAME,"Wroc") menu_setprop(MyMenu,MPROP_NEXTNAME,"Nastepne") //zawsze pokaż opcję wyjścia menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL); menu_setprop(MyMenu,MPROP_PERPAGE,7) //kolor cyfry przycisku zmień na żółty //menu_setprop(MyMenu,MPROP_NUMBER_COLOR,"r"); menu_display(id, MyMenu,0); return PLUGIN_HANDLED; } public przydziel_menu_handle(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } switch(item){ case 0:{ przydziel_mikstury(id) } case 1:{ } case 2:{ } case 3:{ } case 4:{ } case 5:{ przydziel(id) switch(menu_przydziel[id]){ case 1:menu_przydziel[id] = 2 case 2:menu_przydziel[id] = 3 case 3:menu_przydziel[id] = 4 case 4:menu_przydziel[id] = 5 case 5:menu_przydziel[id] = 1 } } } menu_destroy(menu); return PLUGIN_HANDLED; } public przydziel_mikstury(id) { new MyMenu=menu_create("Mikstury","przydziel_mikstury_handle"); new aktywna=menu_makecallback("aktywna_func"); new nieaktywna=menu_makecallback("nieaktywna_func"); if(m_zycia[id]>0){ menu_additem(MyMenu,"Zycia","",0,aktywna); }else menu_additem(MyMenu,"Zycia","",0,nieaktywna); if(m_mana[id]>0){ menu_additem(MyMenu,"Many","",0,aktywna); }else menu_additem(MyMenu,"Many","",0,nieaktywna); menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie"); menu_setprop(MyMenu,MPROP_BACKNAME,"Wroc") menu_setprop(MyMenu,MPROP_NEXTNAME,"Nastepne") //zawsze pokaż opcję wyjścia menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL); menu_setprop(MyMenu,MPROP_PERPAGE,7) //kolor cyfry przycisku zmień na żółty //menu_setprop(MyMenu,MPROP_NUMBER_COLOR,"r"); menu_display(id, MyMenu,0); return PLUGIN_HANDLED; } public przydziel_mikstury_handle(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu); return PLUGIN_HANDLED; } switch(item){ case 0:{ switch(menu_przydziel[id]){ case 1:ma_funkcje1[id] = 1 case 2:ma_funkcje2[id] = 1 case 3:ma_funkcje3[id] = 1 case 4:ma_funkcje4[id] = 1 case 5:ma_funkcje5[id] = 1 } ColorChat(id, YELLOW, "Mikstury zycia pod klawiszem %i",menu_przydziel[id]) } case 1:{ switch(menu_przydziel[id]){ case 1:ma_funkcje1[id] = 2 case 2:ma_funkcje2[id] = 2 case 3:ma_funkcje3[id] = 2 case 4:ma_funkcje4[id] = 2 case 5:ma_funkcje5[id] = 2 } ColorChat(id, YELLOW, "Mikstury many pod klawiszem %i",menu_przydziel[id]) } } menu_destroy(menu); return PLUGIN_HANDLED; } public dzialaj(id,mode) { switch(mode){ case 1:pij_zycie(id) case 2:pij_mana(id) } } public pij_zycie(id) { if(get_user_health(id) == zycie[id]){ ColorChat(id, YELLOW, "Full hp") return PLUGIN_HANDLED; } if(m_zycia[id]<1){ ColorChat(id, YELLOW, "Brak Mikstur") return PLUGIN_HANDLED; } m_zycia[id]-- change_health(id,60,0,"") ColorChat(id, YELLOW, "Pozostalo %i mikstur",m_zycia[id]) aura(id,255,0,0) return PLUGIN_HANDLED; } public pij_mana(id) { if(aktualna_mana[id] == mana[id]){ ColorChat(id, YELLOW, "Full mana") return PLUGIN_HANDLED; } if(m_mana[id]<1) return PLUGIN_HANDLED; m_mana[id]-- change_mana(id,40) ColorChat(id, YELLOW, "Pozostalo %i mikstur",m_zycia[id]) aura(id,0,0,255) return PLUGIN_HANDLED; } stock aura(id,r,g,b) { new origin[3]; get_user_origin(id,origin); message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin ); write_byte( TE_BEAMCYLINDER ); write_coord( origin[0] ); write_coord( origin[1] ); write_coord( origin[2] ); write_coord( origin[0] ); write_coord( origin[1] + 60) write_coord( origin[2] + 60); write_short( sprite_white ); write_byte( 0 ); // startframe write_byte( 0 ); // framerate write_byte( 10 ); // life write_byte( 10 ); // width write_byte( 255 ); // noise write_byte( r); // r, g, b write_byte( g); // r, g, b write_byte( b ); // r, g, b write_byte( 170 ); // brightness write_byte( 6 ); // speed message_end(); } public respawn_player(id) { id -=csdm_task; if (!is_user_connected(id) || is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_SPECTATOR|| cs_get_user_team(id) == CS_TEAM_UNASSIGNED) return new maxpl,players[32] get_players(players, maxpl) if (maxpl > 2) { ExecuteHamB(Ham_CS_RoundRespawn, id) fm_give_item(id, "weapon_knife"); set_task(0.5,"add_respawn",id+1999) } } public add_respawn(id){ id-=1999; change_health(id,2000,0,"") } public ustaw_hp(id){ change_health(id,2000,0,"") }