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
CoD Nowy

Gubi właściwy perk przy zmianie klasy / zamianie perkami

cod nowy

Najlepsza odpowiedź Lacostii, 22.12.2013 01:33

adif11 ,to nie to. Za to udało mi się już samodzielnie znaleźć przyczynę,

opisuję ją w nowym temacie: http://amxx.pl/topic...adnięcie-perku/

Przejdź do postu


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 Lacostii

    Profesjonalista

  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:172
  • Lokalizacja:Poland
Offline

Napisano 15.12.2013 04:01

Witam Serdecznie,

już mam od dłuższego czasu problem, na którego zidentyfikowanie przyczyny poświęciłem już kilka godzin, bezowocnie. :/

Dlatego w ostateczności zwracam się do Was, proszę o wsparcie z tym.

 

Używam silnika tego z załącznika.

Błąd polega na stracie perków przy zamianie tym pluginem:

http://amxx.pl/topic...rkami/?p=420388

Dokładniej to obie ze stron dostają inne perki niż przed wymianą. Błąd przejawia się również przy zmianie klasy, losuje się inny perk. Błąd nie występuje zawsze, strzelałbym że w 20% przy wymianie i 10% przy zamianie klasy. Osobiście nie udało mi się odwzorować błędu w grze, ale za to bardzo dużo nasłuchałem się narzekań na to. Częściej się chyba to buguje, gdy serwer jest pełen.

 

Nim potwierdzona informacja o błędzie do mnie doszła minęło sporo czasu od momentu, gdy wprowadzałem w silniku jakieś zmiany, nie pamiętam wiele rzeczy dokładnie. W okresie zmian, po których ten błąd zaczął występować głównie stworzyłem wiele nowych perków i trochę klas, nie wiem czy mogłoby być to przyczyną, nie wiem czego by tam szukać.

 

 

 

 

Załączone pliki


Użytkownik Lacostii edytował ten post 15.12.2013 04:03

  • +
  • -
  • 0

Zapraszam na forum Classic-Zone.pl . ;)


#2 Lacostii

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:172
  • Lokalizacja:Poland
Offline

Napisano 16.12.2013 20:47

Refresh ;)


  • +
  • -
  • 0

Zapraszam na forum Classic-Zone.pl . ;)


#3 Lacostii

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:172
  • Lokalizacja:Poland
Offline

Napisano 17.12.2013 23:45

Refresh :&


  • +
  • -
  • 0

Zapraszam na forum Classic-Zone.pl . ;)


#4 adif11

    Wszechpomocny

  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:357
  • Imię:adrian
  • Lokalizacja:szczecin
Offline

Napisano 19.12.2013 21:26

Dodam że miałem ten sam błąd + mały dodatek otóż perki miały 1/1 nie ważne jaki

Jedyny sposób który działał to podmiana kilku rzeczy

Ten kod działa w 100%

 

#include <amxmodx>
#include <codmod>

#define PLUGIN "Wymien Perk"
#define VERSION "1.0"
#define AUTHOR "QTM.Peyote & cypis"

new bool:dostal_przedmiot[33];
new oddaj_id[33];

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_clcmd("say /wymien", "ZamienPerk");
    register_clcmd("say /zamien", "ZamienPerk");
    register_event("ResetHUD", "cod_perk_changed", "abe");
}

public ZamienPerk(id)
{
    new menu = menu_create("Zamien sie perkiem", "ZamienPerk_Handle");
    new cb = menu_makecallback("OddajPerk_Callback");
    for(new i=0, n=0; i<=32; i++)
    {
        if(!is_user_connected(i))
            continue;
        oddaj_id[n++] = i;
        new nazwa_gracza[64];
        get_user_name(i, nazwa_gracza, 63)
        menu_additem(menu, nazwa_gracza, "0", 0, cb);
    }
    menu_display(id, menu);
}

public cod_perk_changed(id)
    dostal_przedmiot[id] = false;

public ZamienPerk_Handle(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
    
    if(!is_user_connected(oddaj_id[item])){
        client_print(id, print_chat, "Nie odnaleziono zadanego gracza.");
        return PLUGIN_CONTINUE;
    }
    
    if(dostal_przedmiot[oddaj_id[item]]){
        client_print(id, print_chat, "Wybrany gracz musi poczekac 1 runde.");
        return PLUGIN_CONTINUE;
    }
    
    if(dostal_przedmiot[id]){
        client_print(id, print_chat, "Musisz poczekac 1 runde.");
        return PLUGIN_CONTINUE;
    }
    
    if(!cod_get_user_perk(oddaj_id[item])){
        client_print(id, print_chat, "Wybrany gracz nie mam zadnego perka.");
        return PLUGIN_CONTINUE;
    }
    
    if(!cod_get_user_perk(id)){
        client_print(id, print_chat, "Nie masz zadnego perka.");
        return PLUGIN_CONTINUE;
    }

    new nazwa_menu[128], nick[64], nazwaperka[33];
    cod_get_perk_name(cod_get_user_perk(id), nazwaperka, 32);
    get_user_name(id, nick, charsmax(nick))
    formatex(nazwa_menu, charsmax(nazwa_menu), "Wymien sie perkiem o nazwie %s z %s:", nazwaperka, nick)
    
    new menu2 = menu_create(nazwa_menu, "menu_wymien");

    menu_additem(menu2, "Tak", nick);
    menu_addblank(menu2, 0)
    menu_additem(menu2, "Nie", nick);
    
    menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
    menu_display(oddaj_id[item], menu2);
    return PLUGIN_CONTINUE;
}

public menu_wymien(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
    new access, callback, data[64];
    menu_item_getinfo(menu, item, access, data, charsmax(data), _, _, callback);
    new id2 = get_user_index(data)
    
    switch(item)
    {
        case 0:
        {
            new perk_oddajacego = cod_get_user_perk(id2)
            new perk_dajacego = cod_get_user_perk(id)
            new trim_oddajacego = cod_get_perk_durability(id2)
            new trim_dajacego = cod_get_perk_durability(id)
            
            cod_set_user_perk(id2, perk_dajacego);
            cod_set_user_perk(id, perk_oddajacego);
            cod_set_perk_durability(id2, trim_dajacego)
            cod_set_perk_durability(id, trim_oddajacego)
        
            dostal_przedmiot[id2] = true;
            dostal_przedmiot[id] = true;
                    
            new nazwa_dajacego[64];
            
            get_user_name(id, nazwa_dajacego, charsmax(nazwa_dajacego))
                    
            client_print(id, print_chat, "Wymieniles sie perkiem z %s.", data);
            client_print(id2, print_chat, "Wymieniles sie perkiem z %s.", nazwa_dajacego)
        }
        case 1: client_print(id2, print_chat, "Wybrany gracz nie zgodzil sie na wymiane perka.")
    }
    return PLUGIN_CONTINUE;
}

public OddajPerk_Callback(id, menu, item)
{
    if(oddaj_id[item] == id || !cod_get_user_class(oddaj_id[item]) || !cod_get_user_perk(oddaj_id[item]))
        return ITEM_DISABLED;
    return ITEM_ENABLED;
}

Zapraszam Serdecznie Na Cod Mod'a [401 lvl]

b_350_20_FFFFFF_FFFFFF_000000_000000.png


#5 Lacostii

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 40
Pomocny

  • Postów:172
  • Lokalizacja:Poland
Offline

Napisano 22.12.2013 01:33   Najlepsza odpowiedź

adif11 ,to nie to. Za to udało mi się już samodzielnie znaleźć przyczynę,

opisuję ją w nowym temacie: http://amxx.pl/topic...adnięcie-perku/


  • +
  • -
  • 0

Zapraszam na forum Classic-Zone.pl . ;)






Również z jednym lub większą ilością słów kluczowych: cod nowy

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

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