Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*new const knifeModels - Modele
- new const knifeNames - Nazwy
- new const knifeCosts - Koszt
- new const knifeAccess - Dostęp (0 - dla każdego, ADMIN_LEVEL_* - dla danej flagi)
- #define KNIFE_COUNT - ilość kos, jeśli masz 3, to KNIFE_COUNT = 3*/
- #include <amxmodx>
- #include <amxmisc>
- #include <fakemeta>
- #include <engine>
- #include <vault>
- #include <fun>
- #include <ColorChat>
- #include <nvault>
- #define PLUGIN "Kup kose za farbki"
- #define VERSION "2.1"
- new const prefix[] = "[^x04 PB ^x01]"
- #define FLAG_VIP ADMIN_LEVEL_H
- #define MAX_PLAYERS 32
- #define KNIFE_COUNT 15
- #define ForArray(%1,%2) for(new %1 = 0; %1 < sizeof %2; %1++)
- #define ForRange(%1,%2,%3) for(new %1 = %2; %1 <= %3; %1++)
- native cod_get_user_coins(id);
- native cod_set_user_coins(id, wartosc);
- new userKnife[MAX_PLAYERS + 1],
- bool:userBought[KNIFE_COUNT][MAX_PLAYERS + 1],
- vaultHandle;
- new const knifeCommands[][] =
- {
- "/knife"
- };
- new const knifeModels[][] =
- {
- "models/v_knife.mdl",
- "models/pb/pbkosy/v_knifedaggerslau.mdl",
- "models/pb/pbkosy/v_knifesplintzer.mdl",
- "models/pb/pbkosy/v_knifedreamer.mdl",
- "models/pb/pbkosy/v_knifebutternorth.mdl",
- "models/pb/pbkosy/v_knife9dopler.mdl",
- "models/pb/pbkosy/v_knifekarlore.mdl",
- "models/pb/pbkosy/v_Kosa1.mdl",
- "models/pb/pbkosy/v_knifem9bayonet.mdl",
- "models/pb/pbkosy/v_knifemarblefade.mdl",
- "models/pb/pbkosy/v_knifeabyssal.mdl",
- "models/pb/pbkosy/v_knifeM9mgardient.mdl",
- "models/pb/pbkosy/v_knifered.mdl",
- "models/pb/pbkosy/v_knifebay33.mdl",
- "models/pb/pbkosy/v_knifeauto.mdl",
- "models/pb/pbkosy/v_knifegold.mdl",
- "models/pb/pbkosy_vip/v_testkvip.mdl"
- };
- new const knifeNames[][] =
- {
- "Zwykly Noz",
- "Shadow Dagers | Slaughter",
- "Bagnet M9 | Splinter",
- "Karambit | Blue Dreamer",
- "ButterFly | North",
- "Bayonet M9 | Dopler",
- "Bayonet M9 | Fade",
- "Karambit | Dragon Lore",
- "Karambit | Marble Fade",
- "Bayonet M9 | Abyssal",
- "Bayonet M9 | Marble Gradient",
- "Karambit | Red Dreamer",
- "Bayonet M9 | Damascus Steel",
- "Gut Knife | Autotronic",
- "CrossFire | Noble Gold"
- };
- new const knifeCosts[] =
- {
- 0,
- 0,
- 30,
- 50,
- 80,
- 100,
- 350,
- 420,
- 580,
- 620,
- 700,
- 800,
- 900,
- 1000,
- 1200
- };
- new const knifeAccess[] =
- {
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- FLAG_VIP,
- FLAG_VIP
- };
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, "K@MILOVVSKY");
- register_event("CurWeapon", "CurWeapon", "be", "1=1");
- registerCommands(knifeCommands, sizeof(knifeCommands), "chooseKnife");
- vaultHandle = nvault_open("Pb_Kosy");
- if(vaultHandle == INVALID_HANDLE)
- {
- set_fail_state("Nie mozna otworzyc pliku.");
- }
- }
- public plugin_precache()
- {
- ForArray(i, knifeModels)
- {
- precache_model(knifeModels[i]);
- }
- }
- public client_authorized(id)
- {
- Wczytaj(id);
- LoadDataKnife(id);
- }
- public client_disconnected(id)
- {
- Zapisz(id);
- ForRange(i, 0, KNIFE_COUNT - 1)
- {
- userBought[i][id] = false;
- }
- }
- public plugin_end()
- {
- nvault_close(vaultHandle);
- }
- public chooseKnife(id)
- {
- new aktywna = menu_makecallback("aktywna_func"),
- nieaktywna = menu_makecallback("niekatywna_func"),
- menuTitle[128],
- menuItem[128],
- menuIndex,
- bool:available,
- bool:costAvailable;
- formatex(menuTitle, charsmax(menuTitle), "\d==> \rDeagleShot.eu \d<==^n\wWybierz skin do \ykosy");
- menuIndex = menu_create(menuTitle, "knifemenu");
- /*FREE*/
- menu_additem(menuIndex, "\wZwykly Noz", "", 0, aktywna);
- menu_additem(menuIndex, "Shadow Dagers | Slaughter", "", 0, aktywna);
- ForRange(i, 2, KNIFE_COUNT - 1)
- {
- if(userBought[i][id])
- {
- formatex(menuItem, charsmax(menuItem), "\w%s \d=>\yKupiono\d<=", knifeNames[i]);
- available = true;
- }
- else
- {
- costAvailable = bool:(cod_get_user_coins(id) >= knifeCosts[i]);
- formatex(menuItem, charsmax(menuItem), "\w%s \y[%s%s\r%i farbek \y]", knifeNames[i], costAvailable ? "\d" : "\y", costAvailable ? "koszt: " : "", knifeCosts[i]);
- available = costAvailable;
- }
- menu_additem(menuIndex, menuItem, "", 0, available ? aktywna : nieaktywna);
- }
- menu_setprop(menuIndex, MPROP_BACKNAME, "Wstecz");
- menu_setprop(menuIndex, MPROP_NEXTNAME, "Dalej");
- menu_setprop(menuIndex, MPROP_EXITNAME, "Wyjdz");
- menu_display(id, menuIndex);
- }
- public knifemenu(id, menu, item)
- {
- if(!userBought[item][id] && cod_get_user_coins(id) >= knifeCosts[item])
- {
- if(knifeAccess[item])
- {
- if(!(get_user_flags(id) & knifeAccess[item]))
- {
- ColorChat(id, NORMAL, "%s Nie masz do tego dostepu.", prefix);
- return PLUGIN_HANDLED;
- }
- }
- cod_set_user_coins(id, cod_get_user_coins(id) - knifeCosts[item]);
- ColorChat(id, NORMAL, "%s Kupiles ^x04%s^x01 za^x03 %i ^x01farbek.", prefix, knifeNames[item], knifeCosts[item]);
- userBought[item][id] = true;
- Zapisz(id);
- }
- else if(!userBought[item][id])
- {
- return PLUGIN_HANDLED;
- }
- SetKnife(id, item);
- SaveDataKnife(id)
- return PLUGIN_HANDLED
- }
- public SetKnife(id, Knife)
- {
- userKnife[id] = Knife;
- if(get_user_weapon(id) != CSW_KNIFE)
- {
- return PLUGIN_HANDLED;
- }
- entity_set_string(id, EV_SZ_viewmodel, knifeModels[Knife]);
- return PLUGIN_HANDLED;
- }
- public CurWeapon(id)
- {
- if(!is_user_alive(id))
- {
- return PLUGIN_HANDLED;
- }
- SetKnife(id, userKnife[id])
- return PLUGIN_HANDLED;
- }
- SaveDataKnife(id)
- {
- new steamIndex[32],
- vaultKey[64],
- vaultData[64];
- get_user_authid(id, steamIndex, charsmax(steamIndex));
- format(vaultKey, charsmax(vaultKey), "Knife_%s", steamIndex);
- format(vaultData, charsmax(vaultData), "%d", userKnife[id]);
- set_vaultdata(vaultKey, vaultData);
- }
- LoadDataKnife(id)
- {
- new steamIndex[32],
- vaultKey[64];
- get_user_authid(id, steamIndex, charsmax(steamIndex));
- format(vaultKey, charsmax(vaultKey), "Knife_%s", steamIndex);
- userKnife[id] = get_vaultdata(vaultKey);
- }
- public aktywna_func(id, menu, item)
- {
- return ITEM_ENABLED;
- }
- public nieaktywna_func(id, menu, item)
- {
- return ITEM_DISABLED;
- }
- public client_putinserver(id)
- {
- if(get_user_flags(id) & ADMIN_LEVEL_H || get_user_flags(id) & ADMIN_LEVEL_G)
- {
- return PLUGIN_HANDLED;
- }
- SetKnife(id, 0);
- return PLUGIN_HANDLED;
- }
- public Zapisz(id)
- {
- new steam_id[35];
- get_user_name(id, steam_id, charsmax(steam_id));
- new vaultKey[64],
- vaultData[256];
- format(vaultKey, charsmax(vaultKey), "%s-Skiny", steam_id);
- ForRange(i, 0, KNIFE_COUNT - 1)
- {
- format(vaultData, charsmax(vaultData), "%s%d%s", vaultData, userBought[id], i == KNIFE_COUNT - 1 ? "" : "#");
- }
- nvault_set(vaultHandle, vaultKey, vaultData);
- return PLUGIN_CONTINUE;
- }
- public Wczytaj(id)
- {
- new steamIndex[35],
- vaultKey[64],
- vaultData[256];
- get_user_name(id, steamIndex, charsmax(steamIndex));
- format(vaultKey, charsmax(vaultKey), "%s-Skiny", steamIndex);
- nvault_get(vaultHandle, vaultKey, vaultData, charsmax(vaultData));
- new vaultReadData[KNIFE_COUNT + 1][33];
- explode(vaultData, '#', vaultReadData, KNIFE_COUNT + 1, sizeof(vaultReadData));
- ForRange(i, 0, KNIFE_COUNT - 1)
- {
- userBought[i][id] = bool:str_to_num(vaultReadData[i]);
- }
- return PLUGIN_CONTINUE;
- }
- stock explode(const string[], const character, output[][], const maxs, const maxlen)
- {
- new iDo = 0,
- len = strlen(string),
- oLen = 0;
- do
- {
- oLen += (1+copyc(output[iDo++],maxlen,string[oLen],character))
- }
- while(oLen < len && iDo < maxs)
- }
- stock registerCommands(const array[][], arraySize, function[])
- {
- #if !defined ForRange
- #define ForRange(%1,%2,%3) for(new %1 = %2; %1 <= %3; %1++)
- #endif
- new newCommand[33];
- ForRange(i, 0, arraySize - 1)
- {
- ForRange(j, 0, 1)
- {
- formatex(newCommand, charsmax(newCommand), "%s %s", !j ? "say" : "say_team", array[i]);
- register_clcmd(newCommand, function);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement