#include #include #include #include #define FLAGS ADMIN_IMMUNITY new g_PD[33], g_Save; new g_pKill, g_pBonus, g_pPayXp, g_pGiveXp, g_pPayLegend, g_pPayRandom, g_pRandomXpMin, g_pRandomXpMax, g_pGetXp, g_pSaveXp; new koszt, gMaxPlayers; new bool:zagral[33] public plugin_init() { register_plugin("Pokemon Dollar + Lotto", "1.0", "Raku & emblaze"); //Połączył MisieQ new sz_Dir[128]; get_configsdir(sz_Dir, charsmax(sz_Dir)); format(sz_Dir, charsmax(sz_Dir), "%s/pokemondollar.cfg", sz_Dir); server_cmd("exec %s", sz_Dir); register_dictionary("pokemondollar.txt"); g_Save = nvault_open("pdsave"); set_task(3.0, "Life", _, _, _, "b"); register_event("DeathMsg", "DeathMsg", "a"); register_logevent("LogEvent_Round_Start", 2, "0=World triggered", "1=Round_Start"); register_concmd("pd_give", "GivePD", FLAGS," "); register_concmd("pd_take", "DeletePD", FLAGS," "); register_clcmd("say", "Send"); register_clcmd("say pdmenu", "pdmenu"); g_pSaveXp = register_cvar("pd_savexp", "1"); g_pKill = register_cvar("pd_kill", "2"); g_pBonus = register_cvar("pd_hs", "2"); g_pGetXp = register_cvar("pd_getxp", "1"); g_pPayXp = register_cvar("pd_costexp", "10"); g_pPayLegend = register_cvar("pd_costlegend", "600"); g_pPayRandom = register_cvar("pd_costrandom", "50"); g_pGiveXp = register_cvar("pd_givexp", "1000"); g_pRandomXpMin = register_cvar("pd_minexp", "50"); g_pRandomXpMax = register_cvar("pd_maxexp", "200"); register_clcmd("say /lotto", "lotto") register_clcmd("say /pula", "pula") set_task(120.0, "reklama",_,_,_,"b") set_task(150.0, "pula",_,_,_,"b") koszt = register_cvar("amx_lotto_koszt", "5") gMaxPlayers = get_maxplayers(); if(file_exists( sz_Dir )) { return PLUGIN_HANDLED; } write_file(sz_Dir, "//Zapis PD (1 = STEAM_ID, 2 = Nick).", 0); write_file(sz_Dir, "pd_savexp 1", 1); write_file(sz_Dir, "//Ile gracz ma dostawać pd za zabicie przeciwnika.", 3); write_file(sz_Dir, "pd_kill 2", 4); write_file(sz_Dir, "//+Ile gracz ma dostawać pd za zabicie przeciwnika headshotem.", 6); write_file(sz_Dir, "pd_hs 2", 7); write_file(sz_Dir, "//Zdobywanie PD (1 = Normalne (Zabojstwo +HS), 2 = Gracz dostaje tyle PD ile zabity przez niego gracz ma fragów).", 9); write_file(sz_Dir, "pd_getxp 1", 10); write_file(sz_Dir, "//Ile kosztuje exp.", 12); write_file(sz_Dir, "pd_costexp 10", 13); write_file(sz_Dir, "//Ile kosztuje pokemon legendarny.", 15); write_file(sz_Dir, "pd_costlegend 600", 16); write_file(sz_Dir, "//Ile kosztuje pralka.", 18); write_file(sz_Dir, "pd_costrandom 50", 19); write_file(sz_Dir, "//Ile ma dawac expa.", 21); write_file(sz_Dir, "pd_givexp 1000", 22); write_file(sz_Dir, "//Ile mamy dostawać minimalnie expa z pralki.", 24); write_file(sz_Dir, "pd_minexp 50", 25); write_file(sz_Dir, "//Ile mamy dostawać maksymalnie expa z pralki.", 27); write_file(sz_Dir, "pd_maxexp 200", 28); return PLUGIN_CONTINUE; } public client_connect(id) { Load_PD(id); zagral[id] = false } public client_disconnect(id) { Save_PD(id); } public plugin_end() { nvault_close(g_Save); } public reklama() { client_print(0,print_chat,"[LOTTO] Wpisz /lotto aby zagrac w lotka.") client_print(0,print_chat,"[LOTTO] W razie problemów wejdz na amxx.pl") client_print(0,print_chat,"[LOTTO] plugin by emblaze") } public lotto(id) { if(zagral[id]) { client_print(0,print_chat,"[LOTTO] Juz grales, mozesz grac co 5 minut...") return PLUGIN_HANDLED } g_PD[id]-=get_pcvar_num(koszt) client_print(id,print_chat,"[LOTTO] Zagraleś w lotto !") client_print(id,print_chat,"[LOTTO] Za 1 minute dowiesz sie czy wygrales...") client_print(id,print_chat,"[LOTTO] Losowanie trwa...") set_task(60.0,"kumulacja",id) return PLUGIN_CONTINUE } public kumulacja (id) { zagral[id] = true new rand = random_num(0,20) switch(rand) { case 0: { client_print(id,print_chat,"[LOTTO] Niestety nie wygrales nic...") } case 1: { client_print(id,print_chat,"[LOTTO] Wygrales 10$ !") g_PD[id]+=10 } case 2: { client_print(id,print_chat,"[LOTTO] Niestety nie wygrales nic...") } case 3: { client_print(id,print_chat,"[LOTTO] Wygrales 5$ !") g_PD[id]+=5 } case 20: { client_print(id,print_chat,"[LOTTO] Niestety nie wygrales...") } case 4: { client_print(id,print_chat,"[LOTTO] Wygrales 10$ !") g_PD[id]+=10 } case 5: { client_print(id,print_chat,"[LOTTO] Wygrales 50$ !") g_PD[id]+=50 } case 6: { client_print(id,print_chat,"[LOTTO] Niestety nie wygrales nic...") } case 7: { client_print(id,print_chat,"[LOTTO] Wygrales 1$ !") g_PD[id]+=1 } case 8: { client_print(id,print_chat,"[LOTTO] Niestety nie wygrales nic...") } case 9: { client_print(id,print_chat,"[LOTTO] Wygrales 100$ !") g_PD[id]+=100 } case 10: { client_print(id,print_chat,"[LOTTO] Niestety nie wygrales nic...") } case 11: { client_print(id,print_chat,"[LOTTO] Wygrales 500$ !") g_PD[id]+=500 } case 12: { client_print(id,print_chat,"[LOTTO] Niestety nie wygrales nic...") } case 13: { client_print(id,print_chat,"[LOTTO] Wygrales 75$ !") g_PD[id]+=75 } case 14: { client_print(id,print_chat,"[LOTTO] Niestety nie wygrales nic...") } case 15: { client_print(id,print_chat,"[LOTTO] Wygrales 50$ !") g_PD[id]+=50 } case 16: { client_print(id,print_chat,"[LOTTO] Niestety nie wygrales nic...") } case 17: { client_print(id,print_chat,"[LOTTO] Wygrales 140$ !!!") g_PD[id]+=140 } case 18: { client_print(id,print_chat,"[LOTTO] Niestety nie wygrales nic...") } case 19: { client_print(id,print_chat,"[LOTTO] Wygrales 160$ !!!") g_PD[id]+=160 } } return PLUGIN_CONTINUE } public pula () { client_print(0,print_chat,"[LOTTO] Dzisiejsza pula nagrod to az 500$!!!") client_print(0,print_chat,"[LOTTO] Aby sie zalapac na konkurs wpisz /lotto") } public LogEvent_Round_Start() { for ( new id = 1; id <= gMaxPlayers; id++ ) { if(!is_user_alive(id)) continue; zagral[id] = false; } } public Life() { new Players[32], Num, i, id; get_players( Players, Num, "a" ); for( i = 0; i < Num; i++ ) { id = Players[i]; set_hudmessage(255, 0, 0, 0.0, 0.88, 0, 6.0, 7.0); show_hudmessage(id, "Pokemon Dollar: %d", g_PD[id]); } } public pdmenu(id) { new menu = menu_create("rPokemon Dollar Menu:", "pdmenu_select"); new i_Cost = get_pcvar_num(g_pPayXp); new i_Costlegend = get_pcvar_num(g_pPayLegend); new i_Costrandom = get_pcvar_num(g_pPayRandom); new sz_String[128]; formatex(sz_String, charsmax(sz_String), "Kup Exp r(%dPD)", i_Cost); menu_additem(menu,sz_String, "1", 0); formatex(sz_String, charsmax(sz_String), "Kup Legende r(%dPD)", i_Costlegend); menu_additem(menu,sz_String, "2", 0); formatex(sz_String, charsmax(sz_String), "Pralka r(%dPD)", i_Costrandom); menu_additem(menu,sz_String, "3", 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public pdmenu_select(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new acces, callback; menu_item_getinfo(menu, item, acces, data, charsmax(data), iName, charsmax(iName), callback); new key = str_to_num(data); switch(key) { case 1: { new i_Cost = get_pcvar_num(g_pPayXp); new i_Xp = get_pcvar_num(g_pGiveXp); if( g_PD[id] < i_Cost) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PD"); } else { Poke_Give_XP(id, -1, i_Xp); g_PD[id]-=i_Cost; client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_EXP", i_Xp); } } case 2: { menu_destroy(menu); new menu = menu_create("rPokemon Dollar Menu:", "legend_select"); menu_additem(menu, "wMew", "1", 0); menu_additem(menu, "wArticuno", "2", 0); menu_additem(menu, "wMoltres", "3", 0); menu_additem(menu, "wZapdos", "4", 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); return PLUGIN_HANDLED; } case 3: { new i_Cost = get_pcvar_num(g_pPayRandom); new i_Minexp = get_pcvar_num(g_pRandomXpMin); new i_Maxexp = get_pcvar_num(g_pRandomXpMax); if( g_PD[id] < i_Cost) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PD") ; } else { switch(random_num(1, 2)) { case 1: { new select = random_num(i_Minexp, i_Maxexp); Poke_Give_XP(id, -1, select); g_PD[id]-=i_Cost; client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_RANDOM", select); } case 2: { new poke; do { poke = random_num(1, 151); } while( poke == 151 || poke == 144 || poke == 146 || poke == 145 ); Poke_Give_Poke(id, poke, 1); g_PD[id]-=i_Cost; client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_RANDOM2"); } } } } } menu_destroy(menu); return PLUGIN_HANDLED; } public legend_select(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new acces, callback; menu_item_getinfo(menu, item, acces, data, charsmax(data), iName, charsmax(iName), callback); new key = str_to_num(data); switch(key) { case 1: { new i_Costlegend = get_pcvar_num(g_pPayLegend); if( g_PD[id] < i_Costlegend) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PD"); } else { Poke_Give_Poke(id, 151, 1); g_PD[id]-=i_Costlegend; client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_LEGEND"); } } case 2: { new i_Costlegend = get_pcvar_num(g_pPayLegend); if( g_PD[id] < i_Costlegend) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PD"); } else { Poke_Give_Poke(id, 144, 1); g_PD[id]-=i_Costlegend; client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_LEGEND2"); } } case 3: { new i_Costlegend = get_pcvar_num(g_pPayLegend); if( g_PD[id] < i_Costlegend) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PD"); } else { Poke_Give_Poke(id, 146, 1); g_PD[id]-=i_Costlegend; client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_LEGEND3"); } } case 4: { new i_Costlegend = get_pcvar_num(g_pPayLegend); if( g_PD[id] < i_Costlegend) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PD") ; } else { Poke_Give_Poke(id, 145, 1); g_PD[id]-=i_Costlegend; client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_LEGEND4"); } } } menu_destroy(menu); return PLUGIN_HANDLED; } public Send(id) { new args[256]; read_args(args, charsmax(args)); remove_quotes(args); new szCmd[15], szNick[32], szPD[12]; new parsed = parse(args, szCmd, charsmax(szCmd), szNick, charsmax(szNick), szPD, charsmax(szPD)); if(parsed && equali(szCmd, "wyslij")) { if(parsed < 3) { client_print(id, print_chat, "Uzycie: wyslij "); return PLUGIN_HANDLED; } new Player = cmd_target( id, szNick, CMDTARGET_ONLY_ALIVE & CMDTARGET_NO_BOTS ); if(!Player) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PLAYER", szNick); return PLUGIN_HANDLED; } new iPD = str_to_num(szPD); if( g_PD[id] < iPD ) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PD"); return PLUGIN_HANDLED; } if( iPD < 1 ) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PD2"); return PLUGIN_HANDLED; } g_PD[id]-=iPD; g_PD[Player]+=iPD; new szNick2[32]; get_user_name(id, szNick2, charsmax(szNick2)); get_user_name(Player, szNick, charsmax(szNick2)); client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_SEND", szNick, iPD); client_print(Player, print_chat,"%L",LANG_PLAYER,"MSG_SEND2", szNick2, iPD); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public GivePD(id, level, cid) { if(!(get_user_flags(id) & FLAGS)) { return PLUGIN_HANDLED; } new szNick[33], szPD[10], Player, iPD; read_argv(1, szNick, charsmax(szNick)); read_argv(2, szPD, charsmax(szPD)); Player = cmd_target(id, szNick, CMDTARGET_ONLY_ALIVE & CMDTARGET_NO_BOTS); iPD = str_to_num(szPD); new gName[33], pName[33]; get_user_name(id, gName, charsmax(gName)); get_user_name(Player, pName, charsmax(pName)); if(!Player) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PLAYER", szNick); return PLUGIN_HANDLED; } g_PD[Player]+=iPD; client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_ADMIN2", pName, iPD); return PLUGIN_HANDLED; } public DeletePD(id, level, cid) { if(!(get_user_flags(id) & FLAGS)) return PLUGIN_HANDLED; } new szNick[33], szPD[10], Player, iPD; read_argv(1, szNick, charsmax(szNick)); read_argv(2, szPD, charsmax(szPD)); Player = cmd_target(id, szNick, CMDTARGET_ONLY_ALIVE & CMDTARGET_NO_BOTS); iPD = str_to_num(szPD); new gName[33], pName[33]; get_user_name(id, gName, charsmax(gName)); get_user_name(Player, pName, charsmax(pName)); if(!Player) { client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_NONE_PLAYER", szNick); return PLUGIN_HANDLED; } g_PD[Player]-=iPD; client_print(id, print_chat,"%L",LANG_PLAYER,"MSG_ADMIN", pName, iPD); return PLUGIN_HANDLED; } public DeathMsg() { switch(get_pcvar_num(g_pGetXp)) { case 1: { new kill = get_pcvar_num(g_pKill); new bonus = get_pcvar_num(g_pBonus); new kid = read_data(1); new vid = read_data(2); new hs = read_data(3); if(!is_user_connected(kid) || !is_user_connected(vid)) { return PLUGIN_HANDLED; } g_PD[kid]+=kill; remove_task(vid); if(hs == 1) { g_PD[kid]+=bonus; } } case 2: { new kid = read_data(1); new vid = read_data(2); if(!is_user_connected(kid) || !is_user_connected(vid)) { return PLUGIN_HANDLED; } g_PD[kid]+=get_user_frags(vid) < 1 ? 1 : get_user_frags(vid); } } return PLUGIN_HANDLED; } public Load_PD(id) { new authid[64], vaultkey[64], vaultdata[32], one[512]; switch(get_pcvar_num(g_pSaveXp)) { case 1: get_user_authid(id, authid, 63); case 2: get_user_name(id, authid, 63); } replace_all(authid, 63, " ", "+"); format(vaultkey,63,"%s", authid); nvault_get(g_Save, vaultkey, vaultdata,511); replace_all(vaultdata, 256,"#"," "); parse(vaultdata, one, 99); g_PD[id] = str_to_num(one); } public Save_PD(id) { new authid[64], vaultkey[64], vaultdata[512]; switch(get_pcvar_num(g_pSaveXp)) { case 1: get_user_authid(id, authid, 63); case 2: get_user_name(id, authid, 63); } format(vaultkey, 63, "%s", authid); format(vaultdata, 511,"%d", g_PD[id]); replace_all(authid, 63, " ", "+"); nvault_set(g_Save, vaultkey, vaultdata); }