←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Menu i Zmienna

  • +
  • -
Raku129 - zdjęcie Raku129 11.11.2013

Hmmmm w menu_create nie da się użyć zmiennej no nie?

 

Dzięki format mogę wpisać zmienną, ale nie chce mieć tego 1.  przed nazwą.

Ciężko pewnie zrozumieć to co wyżej napisałem, dlatego pokaże to na przykładzie.

 

Mam powiedzmy zrobione to tak:

 

menu_create "Moje Menu"

format "1. Skill"

format "2. Skill"

format "3. Skill"

 

Chcę w tym menu_create dodać zmienną liczbową, która pokazuje ile ma się punktów, wiem że się nie da, a w format nie będzie to ładnie wyglądać, będzie to się zlewać jak tu:

menu_create "Moje Menu"

format "1. Posiadasz %d Punktów"

format "2. Skill"

format "3. Skill"

format "4. Skill"

 

Jakiś pomysł?

Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 12.11.2013

Em chcesz po prostu przerzucić do nowej linii ? ^n

 

Dlaczego w format miało by to nie ładnie wyglądać ?

 

Jakieś ss czy coś

Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 12.11.2013

W menu_create wpisz swój tytuł menu

 

Następnie weź format i do zmiennej nazwa wryp tytuł menu, nową linię (^n) i linijkę pod tytułem z punktami itp.

 

Następnie użyj menu_setprop(menu, MPROP_TITLE, nazwa)

 

Dalej już robisz co chcesz :)

 

Obejście jest z tego względu, że w tytule menu podawanym do menu_create jest limit znaków... addtext użyć się nie da, bo jest zbugowany (czekamy na darka, aby to poprawił w swoim AMX).

Odpowiedz

  • +
  • -
Raku129 - zdjęcie Raku129 12.11.2013

Nie wiem czy koniecznie o takie coś Ci chodziło, ale działa :P

    new HEAD = format(formats,charsmax(formats),"\yPosiadasz \r[%d] \yPunktow", g_points[id]) 
    menu_setprop(menu, MPROP_TITLE, HEAD)

 

Teraz mam kolejne pytanie.

Na każdą postać z wyboru [T/CT] chce przypisać zmienne, coś w tym stylu:

 

Zapis na NICK, tylko na każdej z tych postaci zapisuje się inny poziom.

To muszę utworzyć pełno zmiennych i zrobić to za pomocą warunku, czy mogę jakoś to ogarnąć za pomocą tablic?

Odpowiedz

GT Team - zdjęcie GT Team 13.11.2013

nie rozumiem xD możesz skorzystać również z enumów :
enum playerInfo {
       PLAYER_CLASS,
       PLAYER_POINTS,
       PLAYER_NAME[33]
}

new g_playerInfo[33][ playerInfo ]
a jeśli chcesz zapisać dla kazdej z postaci to jesli korzsystarz z nvault o jako klucz ustawiasz :
new key[64];
formatex(key, 63, "%s-%s", nick_gracza, g_playerInfo[id][ PLAYER_CLASS ])

// no i klucz jest, aby wczytac potem dane to uzywasz tego samego
nvault_set(plik_nvault, key, jakies_dane);
// jak ci o to chodzi. xD ( i jak się nie mylę )
Odpowiedz

  • +
  • -
Raku129 - zdjęcie Raku129 13.11.2013

Kurcze coś nie mogę zczaić cały czas tego :/

Mam tak:

 

new const CLASSES[MAX_CLASSES][] = {
    "Brak",
    "Arctic Avengers",
    "Guerilla Warfare",
    "Phoenix Connection",
    "L337 Crew",
    "French GIGN",
    "German GSG9",
    "UK SAS",
    "Seal Team 6"
}

 

W ewencie przy wyborze teamu chce zrobić tak:

if(cs_get_user_team(id, CS_TEAM_T, CS_T_ARCTIC) {

// Tutaj chce nadać graczowi że jest CLASSES[Arctic Avengers] ? Jak to zrobić, w ogóle tutaj nie wiem co i jak. Pewnie dalej dużo rzecz nie ogarniam ;]

}

 

A potem jak w zapisie i wczytywaniu to? Tak?

public Load_BF3(id)
{
    new authid[64], vaultkey[64], vaultdata[32];
    get_user_name(id, authid, 63);
    format(vaultkey,63,"%s-%s", authid, CLASSES);
    nvault_get(g_Save, vaultkey, vaultdata,511);
    replace_all(vaultdata, 511, "#", " ");
    
    new one[33], two[33], three[33], four[33], five[33], six[33], seven[33], eight[33], nine[33];
    parse(vaultdata, one, 32, two, 32, three, 32, four, 32, five, 32, six, 32, seven, 32, eight, 32, nine, 32);
    g_frag[id] = str_to_num(one);
    g_dead[id] = str_to_num(two);
    g_hs[id] = str_to_num(three);
    g_points[id] = str_to_num(four);
    g_health[id] = str_to_num(five);
    g_gravity[id] = str_to_num(six);
    g_speedrun[id] = str_to_num(seven);
    g_invisble[id] = str_to_num(eight);
    g_autobh[id] = str_to_num(nine);
    while(ranganum[id] < 52)
    {
        if(g_frag[id] >= rangaxp[ranganum[id]] && sizeof(ranga) > ranganum[id])
        {
            ranganum[id]++;
        }
        else
        {
            break;
        }
    }

}

public Save_BF3(id)
{
    new authid[64], vaultkey[64], vaultdata[512];
    get_user_name(id, authid, 63);
    format(vaultkey, 63, "%s-%s", authid, CLASSES);
    format(vaultdata, 511,"%d#%d#%d#%d#%d#%d#%d#%d#%d", g_frag[id], g_dead[id], g_hs[id], g_points[id], g_health[id], g_gravity[id], g_speedrun[id], g_invisble[id], g_autobh[id]);
    nvault_set(g_Save, vaultkey, vaultdata);
}


Użytkownik Raku129 edytował ten post 13.11.2013 22:10
Odpowiedz

GT Team - zdjęcie GT Team 14.11.2013

jak tak patrzę to zapis wygląda i wczytanie wygląda dobrze. p.s :
one[33], two[33], three[33]
tam będą cyfry, nie aż tak duże więc możesz zmniejszyć do np 6. Co do tego
new const CLASSES[MAX_CLASSES][] = {
    "Brak",
    "Arctic Avengers",
    "Guerilla Warfare",
    "Phoenix Connection",
    "L337 Crew",
    "French GIGN",
    "German GSG9",
    "UK SAS",
    "Seal Team 6"
}
tak jak mówiłem, enumy ;)
enum eClass { 
    NONE,
    ARCTIC_AVENGERS,
    GUERILLA_WARFARE,
    ...
    UK_SAS,
    SEAL_TEAM
}
i potem :
if(cs_get_user_team(id, CS_TEAM_T, CS_T_ARCTIC) {
       // co tam miales dac ...nwm model, nazwa czy co.
       
      CLASSES[ARCTIC_AVENGERS]
}
jak sie nie mylę .. pozdrawiam
Odpowiedz

  • +
  • -
Raku129 - zdjęcie Raku129 14.11.2013

Czyli w zmiennych od zliczania fragów, deada mogę ustawić mniejsze zużywanie?

Czym się różni enum, const itd.?

 

Odpowiedz

GT Team - zdjęcie GT Team 14.11.2013

enum
http://amxx.pl/topic/1699-troche-o-enum/
a dalej, o typach zmiennych, choc są to "tagi" w PAWN
http://amxx.pl/topic/6614-zmienne-co-i-jak/

GwynBleidD (16.11.2013 20:21):
A czemu te linki jako kod? Chciałbym w nie kliknąć, a nie kopiować do paska adresu...
Odpowiedz

GT Team - zdjęcie GT Team 16.11.2013

@GwynBleidD U mnie nie do końca działa tak jak u ciebie formatowanie :D Jak daję akapit to go nie daje a jak dam kod to idze nowa linijka więc dlatego. ^^
GwynBleidD (17.11.2013 00:20):
To co Ty z tym edytorem robisz? Wyłącz sobie 1 przyciskiem tryb WYSIWYG i pisz czystym bbcode.
Odpowiedz