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

[ROZWIĄZANE] problem z opisem klas

cod nowy

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
10 odpowiedzi w tym temacie

#1 1stADXionC

    Wszechobecny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 30.01.2021 19:36

 

Co robię żle ?

próbuje zrobić 4 linie opisu klas

opisy_klas[4][MAX_ILOSC_KLAS+1][MAX_WIELKOSC_OPISU+1],
public OpisKlasy_Handle(id, menu, item)
{
        hud_znika[id]=0;
        if(item == MENU_EXIT)
        {
menu_destroy(menu);
return PLUGIN_CONTINUE;
        }
    
        new data[65], iName[64]
        new acces, callback
        menu_item_getinfo(menu, item, acces, data,64, iName, 63, callback)
    
        item = str_to_num(data);
    
        new bronie[320];
        for(new i=1, n=1; i <= 32; i++)
        {
if((1<<i) & bronie_klasy[item])
{
                        new weaponname[22];
                        get_weaponname(i, weaponname, 21);
                        replace_all(weaponname, 21, "weapon_", " ");
                        if(n > 1)    
                        add(bronie, charsmax(bronie), ",");
                        add(bronie, charsmax(bronie), weaponname);
                        n++;
}
        }
    
        new opis[416+MAX_WIELKOSC_OPISU];
        format(opis, charsmax(opis), "^n^n^n^n\yKlasa:^n ------>\d %s^n\yBronie:^n ------>\d %s^n\yOpis1:^n ------>\d %s^n%s^n\yOpis2:^n ------>\d %s^n%s^n\yOpis3:^n ------>\d %s^n%s^n\yOpis4:^n ------>\d %s^n%s", nazwy_klas[item], bronie, opisy_klas[0][item], opisy_klas[0][item][79], opisy_klas[1][item], opisy_klas[1][item][79], opisy_klas[2][item], opisy_klas[2][item][79], opisy_klas[3][item], opisy_klas[3][item][79]);
        show_menu(id, 1023, opis);
        
        return PLUGIN_CONTINUE;
}
public PobierzOpisKlasy(klasa, Return[], len)
{
     if(klasa <= ilosc_klas)
     {
         param_convert(2);
         copy(Return, len, opisy_klas[0][klasa]);
         copy(Return, len, opisy_klas[1][klasa]);
        copy(Return, len, opisy_klas[2][klasa]);
       copy(Return, len, opisy_klas[3][klasa]);


}
}
native cod_register_class(const nazwa[], const opis[0][], const opis[1][], const opis[2][], const opis[3][], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci);
/*------------------------------
Rejestruje nowa klase oraz zwraca jej numer
------------------------------*/ 

 

new const nazwa[]   = "Hajter (P)";
new const opis[0][]    = "1";
new const opis[1][]    = "2";
new const opis[2][]    = "3";
new const opis[3][]    = "4";
new const bronie    = (1<<CSW_M4A1);
new const zdrowie   = 0;
new const kondycja  = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

Błędy podczas kompilacji:

 

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team


C:\Gry\Counter-Strike 1.6 v43\cstrike\addons\amxmodx\scripting\include\codmod.inc(223) : error 021: symbol already defined: "opis"
C:\Gry\Counter-Strike 1.6 v43\cstrike\addons\amxmodx\scripting\include\codmod.inc(223) : error 021: symbol already defined: "opis"
C:\Gry\Counter-Strike 1.6 v43\cstrike\addons\amxmodx\scripting\include\codmod.inc(223) : error 021: symbol already defined: "opis"
C:\Gry\Counter-Strike 1.6 v43\cstrike\addons\amxmodx\scripting\include\codmod.inc(223) : fatal error 107: too many error messages on one line


Compilation aborted.
4 Errors.
Could not locate output file C:\Users\olsza\Desktop\cod\codclass_hajter.amx (compile failed).
 

  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 30.01.2021 22:36

Po pierwsze:

opisy_klas[2][item][79]

To Ci wypisze 1 znak. Zadziała to tak samo jak to:

new s[10] = "abcdef";

log_amx(s[5]); // f

Po drugie:

native cod_register_class(const nazwa[], const opis[3][], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci);


// log_amx("Opis 1: %s", opis[0]);
// log_amx("Opis 2: %s", opis[1]);
// log_amx("Opis 3: %s", opis[2]);

  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 31.01.2021 16:39


Po pierwsze:

opisy_klas[2][item][79]
To Ci wypisze 1 znak. Zadziała to tak samo jak to:
new s[10] = "abcdef";log_amx(s[5]); // f
Po drugie:
native cod_register_class(const nazwa[], const opis[3][], bronie, punkty_zdrowia, punkty_kondycji, punkty_inteligencji, punkty_wytrzymalosci);// log_amx("Opis 1: %s", opis[0]);// log_amx("Opis 2: %s", opis[1]);// log_amx("Opis 3: %s", opis[2]);

Czyli powinno być:

", nazwy_klas[item], bronie, opisy_klas[4][item], opisy_klas[4][item][79]);

  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#4 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 31.01.2021 20:10

Nie wiem po co Ci to 79?

Jak już to:

", nazwy_klas[item], bronie, opisy_klas[0][item], opisy_klas[1][item], opisy_klas[2][item], opisy_klas[3][item]);

  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#5 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 01.02.2021 13:28


Nie wiem po co Ci to 79?
Jak już to:

", nazwy_klas[item], bronie, opisy_klas[0][item], opisy_klas[1][item], opisy_klas[2][item], opisy_klas[3][item]);

Jeszcze został jeden KOD a mianowicie:
cod_register_class(nazwa, opis[4], bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
Tak będzie poprawnie?
  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#6 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 01.02.2021 17:17

Raczej tak:

cod_register_class(nazwa, opis[4][150], bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

Argument "opis" to tablica przechowująca 4 opisy (stąd [4]) i każdy ma po max. 150 znaków (stąd [150]).

 

Warto na początku zapamiętać, że napisy w amxxie będą podlegać zasadzie: zrób tak jak inne argumenty, ale dodaj wielkość. Będzie Ci łatwiej, jak zawsze będziesz o tym pamiętać ;)


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#7 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 01.02.2021 18:04

Raczej tak:

cod_register_class(nazwa, opis[4][150], bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
Argument "opis" to tablica przechowująca 4 opisy (stąd [4]) i każdy ma po max. 150 znaków (stąd [150]).

Warto na początku zapamiętać, że napisy w amxxie będą podlegać zasadzie: zrób tak jak inne argumenty, ale dodaj wielkość. Będzie Ci łatwiej, jak zawsze będziesz o tym pamiętać ;)

Dzięki wielkie. A czy dla ułatwienia mogę zamiast liczby użyć 'lp' ponieważ klasy się różnią opisami i jedna klasa posiada 3 linie a druga klasa np 4?
  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#8 Engi

    [EKSiD] playaz44

  • Power User

Reputacja: 315
Wszechpomocny

  • Postów:1 071
  • GG:
  • Imię:Seba
  • Lokalizacja:Praga
Offline

Napisano 01.02.2021 20:10


jedna klasa posiada 3 linie a druga klasa np 4

 

Do wyświetlania pętle? A raczej do doklejania do stringa nowej linii? Czy jak to chcesz? Każda tablica w nowej linii czy w jednej wszystko (co się nie wejdzie na czat)? 

https://amxx.pl/topic/6814-p%C4%99tle/

 

i sprawdzenie w pętli czy istnieje X linii https://forums.allie...ad.php?t=47691  https://forums.allie...ad.php?t=218572 ?


  • +
  • -
  • 1
Użytkowniku! Zanim napiszesz wiadomość wiedz, że:

W odpowiedzi na ten status, przejrzałem kilka ostatnich Twoich postów i dodałem Ci kolejne 3 punkty ostrzeżeń. Mam nadzieję, że pomogłem.

1:0 dla Benia :D
Nie pomagam za darmo na pw.

#9 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Online

Napisano 01.02.2021 21:33

Raczej bym proponował zrobić to tak jak Engi mówi. Generalnie zamiast tablicy opisy[4][150] możesz zrobić opisy[512] (choć powinieneś 256, bo w menu i tak wiecej się nie zmieści) i zamienić osobne tablice na jeden napis z line-breakiem. Czyli z tego:

new opisy[4][150];

formatex(opisy[0], charsmax(opisy[]), "Opis 1");
formatex(opisy[1], charsmax(opisy[]), "Opis 2");
formatex(opisy[2], charsmax(opisy[]), "Opis 3");
formatex(opisy[3], charsmax(opisy[]), "Opis 4");

zrobić to:

new opisy[512];

formatex(opisy, charsmax(opisy),
    "Opis 1^n\
    Opis 2^n\
    Opis 3^n\
    Opis 4");

  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#10 1stADXionC

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:443
  • Imię:Rafał
  • Lokalizacja:Wrocław
Offline

Napisano 01.02.2021 22:39

Dzięki! Temat można zamknąć :)
  • +
  • -
  • 0

DiabloMod - 10%

 

COD:MW3 - BETATESTY

 


#11 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 981
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 01.02.2021 23:06

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0





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