Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

dodanie um klas do moda


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 pijag

    Życzliwy

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:24
  • Imię:adam
  • Lokalizacja:forum
Offline

Napisano 13.07.2014 18:40

Witam,

Jak dodać do tego: http://amxx.pl/topic...xp-moda-nvault/

Do tego coda co napisał tam """""Sebul"""""

Umiejętności klas.

Tzn. + 300 speeda,

+50 hp 

+ grawitacja itp.

Jak to zrobić?

 

#include <amxmodx>
#include <amxmisc>
#include <nvault>


new const CLASSES[][] = {
    "None",
    "Dog",
    "Cat",
    "Horse",
    "Cow"
}

new const LEVELS[] = {
    0,
    100,
    200,
    400,
    800,
    1600,
    3200
}

new PlayerXP[33], PlayerLevel[33], PlayerClass[33];
new XP_Kill, XP_Knife, XP_Hs, SaveXP, g_vault;

public plugin_init() {
    register_plugin("XpMod", "1.0", "Fxfighter");

    register_event("DeathMsg", "eDeath", "a");

    SaveXP = register_cvar("SaveXP", "1");
    XP_Kill = register_cvar("XP_per_kill", "20");
    XP_Hs = register_cvar("XP_hs_bonus", "20");
    XP_Knife = register_cvar("XP_knife_bonus", "20");
    g_vault = nvault_open("animod");

    register_clcmd("say /class", "ChangeClass");
    register_clcmd("say_team /class", "ChangeClass");
    register_clcmd("say /xp", "ShowHud");
    register_clcmd("say_team /xp", "ShowHud");
}

public eDeath() {
    new attacker = read_data(1);
    new iVictim = read_data(2);

    if(!is_user_connected(attacker) || !is_user_connected(iVictim))
        return;

    if(attacker == iVictim) // mozna tez dodac sprawdzanie druzyn
        return;

    new headshot = read_data(3);
    new weaponname[32];
    read_data(4, weaponname, 31);

    if(equal(weaponname, "grenade")) {
        format(weaponname, 31, "weapon_he%s", weaponname);
    }
    else if(!equal(weaponname, "weapon_", 7))
        format(weaponname, 31, "weapon_%s", weaponname);

    new weapon = get_weaponid(weaponname);

    PlayerXP[attacker] += get_pcvar_num(XP_Kill);

    if(headshot)
        PlayerXP[attacker] += get_pcvar_num(XP_Hs);

    if(weapon == CSW_KNIFE)
        PlayerXP[attacker] += get_pcvar_num(XP_Knife);

    new bool:zdobyl, bool:stracil;
    while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
    {
        ++PlayerLevel[attacker];
        zdobyl = true;
    }
    while(PlayerXP[attacker] < LEVELS[PlayerLevel[attacker]])
    {
        --PlayerLevel[attacker];
        stracil = true;
    }
    if(stracil) {
        client_print(attacker, print_chat, "Spadles do %i poziomu!", PlayerLevel[attacker]);
    }
    else if(zdobyl) {
        client_print(attacker, print_chat, "Awansowales do %i poziomu!", PlayerLevel[attacker]);
    }
    ShowHud(attacker);
    SaveData(attacker);
}

public ShowHud(id) {
    set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0);
    show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s", PlayerLevel[id], PlayerXP[id], CLASSES[PlayerClass[id]]);

    return PLUGIN_HANDLED;
}

public ChangeClass(id) {
    new menu = menu_create("Class Menu", "Class_Handle");

    new ile = sizeof(CLASSES);
    for(new i=1; i<ile; ++i)
        menu_additem(menu, CLASSES[i]);

    menu_display(id, menu);

    return PLUGIN_HANDLED;
}

public Class_Handle(id, menu, item) {
    if(item++ == MENU_EXIT) {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }

    if(PlayerClass[id] != item) {
        PlayerClass[id] = item;
        client_print(id, print_chat, "You are now a %s", CLASSES[item]);
    }
    else {
        client_print(id, print_chat, "You are alredy a %s", CLASSES[item]);
    }

    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

public client_authorized(id) {
    PlayerXP[id] = 0;
    PlayerLevel[id] = 1;
    PlayerClass[id] = 0;

    if(get_pcvar_num(SaveXP) == 1)
        LoadData(id);
}

public client_disconnect(id) {
    if(get_pcvar_num(SaveXP) == 1)
        SaveData(id);

    PlayerXP[id] = 0;
    PlayerLevel[id] = 1;
    PlayerClass[id] = 0;
}

public SaveData(id) {
    if(g_vault == INVALID_HANDLE)
        return;

    new AuthID[32]; get_user_authid(id, AuthID, 31);

    new vaultkey[64], vaultdata[128];
    format(vaultkey, 63, "%s-Mod", AuthID);
    format(vaultdata, 127, "%i %i", PlayerXP[id], PlayerLevel[id]);
    nvault_set(g_vault, vaultkey, vaultdata);
}

public LoadData(id) {
    if(g_vault == INVALID_HANDLE)
        return;

    new AuthID[32]; get_user_authid(id, AuthID, 31);

    new vaultkey[64], vaultdata[128];
    format(vaultkey, 63, "%s-Mod", AuthID);
    if(nvault_get(g_vault, vaultkey, vaultdata, 127)) {
        new playerxp[11], playerlevel[11];
        parse(vaultdata, playerxp, 10, playerlevel, 10);

        PlayerXP[id] = str_to_num(playerxp);
        PlayerLevel[id] = str_to_num(playerlevel);
    }
}

Użytkownik pijag edytował ten post 13.07.2014 18:44

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych