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
Tutorial

Frakcje do Diablo Moda!

Tutorial

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

#1 MaDaFaKa

    Zaawansowany

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:96
  • Imię:Damian
  • Lokalizacja:Warszawa
Offline

Napisano 28.09.2010 18:02

*
Popularny

Witam.
W dzisiejszym poradniku opiszę Wam jak zrobić menu z podziałem na frakcje. Dobrym przykładem tego jest menu potwory - ludzie, o które padało tyle pytań na amxx.pl! Więc zaczynajmy!
Na początek rejestujemy menu w plugin_init(). W tym celu szukamy:

register_menucmd(register_menuid("Nowe Itemy"), 1023, "nowe_itemy")

I pod tym dodajemy:


register_menucmd(register_menuid("Klasy"), 1023, "PressedKlasy")
register_menucmd(register_menuid("Lok"), 1023, "PokazMeni")

Następnie szukamy public'a select_class(id,lx[]) i select_class_menu(id, key) oraz następnie zamieniamy go na ten kodzik poniżej:

public select_class(id,lx[])
{
new text4[512]
format(text4, 511,"\yWybierz Rodzaj Klas: ^n\r1. \wBohaterowie^n\r2. \wPotwory")

new keysczwarta
keysczwarta = (1<<0)|(1<<1)
show_menu(id, keysczwarta,text4, -1, "Wybierz Klase")
}

public select_class_menu(id, key)
{
new lx[17] // <-- w nawiasie wpisz liczbę swoich klas + 1(none)
g_haskit[id] = 0
switch(key)
{
case 0:
{
PokazKlasy(id,lx)
}
case 1:
{
ShowKlasy(id,lx)
}
}
LoadXP(id, player_class[id])

CurWeapon(id)

give_knife(id)

return PLUGIN_HANDLED
}

Następnie pod tym dodajemy publiki, które odpowiadają za te dwie strony.
W tym celu pod kodem dodanym wyżej wklejamy:

public PokazKlasy(id,lx[])
{
new flags[17]
get_cvar_string("diablo_classes",flags,16) //<--- tu, gdzie jest 16 wpisz liczbę swoich klas
new text3[512]
asked_klass[id]=0
for(new i=0;i<8;i++) //Tego masz nigdy nie zmieniać!!!!
{
format(text3, 512,"\yBohaterowie: ^n\w1. \yMag^t\wLevel: \r%i^n\w2. \yMnich^t\wLevel: \r%i^n\w3. \yPaladyn^t\wLevel: \r%i^n\w4. \yZabojca^t\wLevel: \r%i^n\w5. \yNekromanta^t\wLevel: \r%i^n\w6. \yBarbarzynca^t\wLevel: \r%i^n\w7. \yNinja^t\wLevel: \r%i^n\w8. \yLowca^t\wLevel: \r%i^n^n\r9. \wWstecz",player_class_lvl[id][1],player_class_lvl[id][2],player_class_lvl[id][3],player_class_lvl[id][4],player_class_lvl[id][5],player_class_lvl[id][6],player_class_lvl[id][7],player_class_lvl[id][8])
}

new keyspiata
keyspiata = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)
show_menu(id, keyspiata, text3, -1, "Lok")
}

public PokazMeni(id, key)
{
/* Menu:
* Wybierz klase:
* 1:Mag
* 2:Mnich
* 3:Paladyn
* 4:Zabojca
* 5:Nekromanta
* 6:Barbarzynca
* 7:Ninja
* 8:Lowca
* 9:Wstecz
*/
new lx[17] // <-- tutaj wpisz liczbę swoich klas + 1(none)
g_haskit[id] = 0

switch(key)
{
case 0:
{
player_class[id] = Mag
LoadXP(id, player_class[id])
}
case 1:
{
player_class[id] = Mnich
LoadXP(id, player_class[id])
}
case 2:
{
player_class[id] = Paladyn
LoadXP(id, player_class[id])
}
case 3:
{
player_class[id] = Zabojca
LoadXP(id, player_class[id])
}
case 4:
{
player_class[id] = Nekromanta
g_haskit[id] = 1
LoadXP(id, player_class[id])
}
case 5:
{
player_class[id] = Barbarzynca
LoadXP(id, player_class[id])
}
case 6:
{
player_class[id] = Ninja
LoadXP(id, player_class[id])
}
case 7:
{
player_class[id] = Hunter
g_GrenadeTrap[id] = 1
LoadXP(id, player_class[id])
}
case 8:
{
select_class(id,lx)
}
}
CurWeapon(id)
give_knife(id)

return PLUGIN_HANDLED
}

public ShowKlasy(id,lx[]) {
new text2[512]
asked_klass[id]=0
format(text2, 511,"\yPotwory: ^n\w1. \yklasa1^t\wLevel: \r%i^n\w2. \yklasa2^t\wLevel: \r%i^n\w3. \yklasa3^t\wLevel: \r%i^n\w4. \yklasa4^t\wLevel: \r%i^n\w5. \yklasa5^t\wLevel: \r%i^n\w6. \yklasa6^t\wLevel: \r%i^n\w7. \yklasa7^t\wLevel: \r%i^n\w8. \yklasa8^t\wLevel: \r%i^n^n\r9. \wWstecz",player_class_lvl[id][9],player_class_lvl[id][10],player_class_lvl[id][11],player_class_lvl[id][12],player_class_lvl[id][13],player_class_lvl[id][14],player_class_lvl[id][15],player_class_lvl[id][16])

new szosta
szosta = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)
show_menu(id, szosta,text2, -1, "Klasy")

}
public PressedKlasy(id, key) {
/* Menu:
* Wybierz klase:
* 1:klasa1
* 2:klasa2
* 3:klasa3
* 4:klasa4
* 5:klasa5
* 6:klasa6
* 7:klasa7
* 8:klasa8
* 9:Wstecz
*/
new lx[17] // <-- tutaj wpisz liczbę swoich klas + 1(none)
g_haskit[id] = 0

switch (key) {
case 0:
{
///Tu daj kod do klasy!
}
case 1:
{
///Tu daj kod do klasy!
}
case 2:
{
///Tu daj kod do klasy!
}
case 3:
{
///Tu daj kod do klasy!
}
case 4:
{
///Tu daj kod do klasy!
}
case 5:
{
///Tu daj kod do klasy!
}
case 6:
{
///Tu daj kod do klasy!
}
case 7:
{
///Tu daj kod do klasy!
}
case 8:
{
select_class(id,lx)
}
}
CurWeapon(id)
give_knife(id)

return PLUGIN_HANDLED
}

Wszelkie problemy i pytania związane z tym pytaniem proszę zamieszcząć tutaj.
To mój pierwszy poradnik, więc proszę nie być zbytnio surowym.
Z podrowieniami, MaDaFaKa

Użytkownik MaDaFaKa edytował ten post 03.10.2010 14:10


#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 28.09.2010 18:18

Następnie szukamy public'a select_class(id,lx[]) i zamieniamy go na ten kodzik poniżej:

Powinno być chyba tak:

Następnie szukamy public'a select_class(id,lx[]) i public select_class_menu(id, key), następnie zamieniamy go na ten kodzik poniżej:

;]

Użytkownik sebul edytował ten post 28.09.2010 18:18

  • +
  • -
  • 2

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#3 MaDaFaKa

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:96
  • Imię:Damian
  • Lokalizacja:Warszawa
Offline

Napisano 28.09.2010 18:23

To nie robi różnicy ;P Kto ma to ogarnąć to i tak ogarnie, ale dzięki za przypomnienie.

Dodano 28 wrzesień 2010 - 18:25:
EDIT:
Proszę admina o poprawienie treści tematu na to, co napisał Sebul, bo ja nie mogę(aczkolwiek nie wiem dlaczego) edytować tematu.

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

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

Napisano 28.09.2010 18:26

traga traga traga ! żadnej dynamiczności dodawanie frakcji powinno się ograniczać tylko do dodawania nazwy frakcji enum i ustalanie jakie klasy są w niej także mi ten kod się niepodoba
  • +
  • -
  • 0

#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 28.09.2010 18:32

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

Error: Array index out of bounds (variable "player_class_lvl") on line 4709

1 Error.
Could not locate output file C:\Documents and Settings\user\Pulpit\dbmod_5.9l.amx (compile failed).
Ehhh... coś nie tak jest jeszcze w dodatku ;/

A nie... już wiem ocb, mój błąd ;]

Użytkownik sebul edytował ten post 28.09.2010 18:33

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 MaDaFaKa

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:96
  • Imię:Damian
  • Lokalizacja:Warszawa
Offline

Napisano 28.09.2010 18:36

Kod działa bez problemów. Wiem, bo sam z niego korzystam.

#7 Weed

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:108
  • Imię:Ganjor
  • Lokalizacja:Holandia
Offline

Napisano 29.09.2010 14:32

Sebul sprobuj:

new player_class_lvl[33][20]

A ten kod dziala na pewno? a define keys jakie dodales?;>

Użytkownik Weed edytował ten post 29.09.2010 14:33

  • +
  • -
  • 1

Dołączona grafika


#8 MaDaFaKa

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:96
  • Imię:Damian
  • Lokalizacja:Warszawa
Offline

Napisano 29.09.2010 15:06

Sebul już napisał, że mu działa i to była Jego pomyłka. Co do kodu, to nie ma w nim błędów i działa bez problemów.

W kodzie nie ma definiów, ponieważ keys'y tworze w samym public'u.

Użytkownik MaDaFaKa edytował ten post 29.09.2010 16:02


#9 Weed

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:108
  • Imię:Ganjor
  • Lokalizacja:Holandia
Offline

Napisano 29.09.2010 18:51

wpiewrw napisalem zanim zobaczylem, sorki;p
  • +
  • -
  • 0

Dołączona grafika


#10 PlaCCek

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:14
  • Lokalizacja:Bydgoszcz
Offline

Napisano 01.10.2010 19:17

Error: Array index out of bounds (variable "player_class_lvl") on line 4733

1 Error.
Could not locate output file C:\Documents and Settings\user\Pulpit\dbmod_5.9l.amx (compile failed).

Mi również wyskoczył ten błąd, lecz nie wiem jak to poprawić.

O to ta linijka w której coś nie gra.
format(text2, 511,"\yPotwory: ^n\w1. \yklasa1^t\wLevel: \r%i^n\w2. \yklasa2^t\wLevel: \r%i^n\w3. \yklasa3^t\wLevel: \r%i^n\w4. \yklasa4^t\wLevel: \r%i^n\w5. \yklasa5^t\wLevel: \r%i^n\w6. \yklasa6^t\wLevel: \r%i^n\w7. \yklasa7^t\wLevel: \r%i^n\w8. \yklasa8^t\wLevel: \r%i^n^n\r9. \wWstecz",player_class_lvl[id][9],player_class_lvl[id][10],player_class_lvl[id][11],player_class_lvl[id][12],player_class_lvl[id][13],player_class_lvl[id][14],player_class_lvl[id][15],player_class_lvl[id][16])

  • +
  • -
  • 0

#11 dRewNoo

    Pomocny

  • Zbanowany

Reputacja: -3
Nowy

  • Postów:57
  • GG:
  • Imię:Jakub
  • Lokalizacja:Tarnobrzeg
Offline

Napisano 02.10.2010 21:28

Mam ten sam błąd co placek... MaDaFaKa możesz mi to wyjaśnić w co w tym źle??

#12 Weed

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:108
  • Imię:Ganjor
  • Lokalizacja:Holandia
Offline

Napisano 02.10.2010 22:02

jak nie rozumiecie najprostrzych rzeczy to to zostawcie...;] nowosc, nowosc... zaraz all bd to miec i nowosc bedzi estare menu;P
  • +
  • -
  • 0

Dołączona grafika


#13 MaDaFaKa

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:96
  • Imię:Damian
  • Lokalizacja:Warszawa
Offline

Napisano 02.10.2010 22:04

Zadeklarowana zmienna ma zbyt mały rozmiar lub błędnie próbujesz się odwołać do zbyt dużego elementu.
Zamień w swoim .sma:

new player_class_lvl[33][9]

Na:

new player_class_lvl[33][17]


Ta linijka znajduje się prosto pod tabelką exp'a i nad:

new player_class_lvl_save[33]


#14 dRewNoo

    Pomocny

  • Zbanowany

Reputacja: -3
Nowy

  • Postów:57
  • GG:
  • Imię:Jakub
  • Lokalizacja:Tarnobrzeg
Offline

Napisano 02.10.2010 22:05

aha dzięki

Użytkownik dRewNoo edytował ten post 02.10.2010 22:06


#15 zbyszeq

    Zaawansowany

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:81
  • Imię:zbyszeq
  • Lokalizacja:Zamek lochnes
Offline

Napisano 04.10.2010 11:23

Madafaka - jak będziesz mieć czas bardzo Cię proszę abyś zrobił poradnik na 3 rodzaje klas. Ponieważ gdy ja zrobiłem 3 rodzaje klas to na 3 było wszystko dobrze lecz gdy się dawało np 1: to klasa się wybierała jak w 2 rodzaju klas.

Ale oczywiscie reput dla Cb.

Pozdrawiam i czekam. :D
  • +
  • -
  • 0

#16 Weed

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:108
  • Imię:Ganjor
  • Lokalizacja:Holandia
Offline

Napisano 04.10.2010 19:35

przeciez to jest proste-.- kopiuj wklej... i zmien tylko niektore nazwy... omg;| nie rozumiesz nie rob...
  • +
  • -
  • 0

Dołączona grafika


#17 Pawex

    Wszechpomocny

  • Użytkownik

Reputacja: 94
Zaawansowany

  • Postów:381
  • Lokalizacja:Polska
Offline

Napisano 04.10.2010 21:02

Weed nie badz taki kozaczek... Moze oni sa nowi i tego jeszcze nie ogarniaja?
Spoiler

I zrobcie cos takiego:
Spoiler

I tam nizej:
Spoiler

Cos takiego :}




EDIT: Nie dzialaly mi spoilery.

Użytkownik Pawex edytował ten post 08.10.2010 20:50

  • +
  • -
  • 0

#18 Death_Player

    Wszechpomocny

  • Użytkownik

Reputacja: 25
Życzliwy

  • Postów:325
  • Lokalizacja:Warszawa
Offline

Napisano 05.10.2010 09:33

Czy moglibyście mi pomóc podczas kompilacji
Error: Array index out of bounds (variable "player_class_lvl") on line 4758
wszystko jest ustawione na 10 i 9 z klasami
Pilnie proszę o pomoc !

Dodano 05 październik 2010 - 16:39:
no ludzie zlitujcie się i pomóżcie!

Dodano 05 październik 2010 - 17:17:
dbra sam se dalem rade <gosh>

Załączone pliki


Użytkownik Death_Player edytował ten post 05.10.2010 09:35

  • +
  • -
  • 0

#19 Nenczoks

    Banned

  • Zbanowany

Reputacja: 50
Pomocny

  • Postów:358
  • Lokalizacja:Warszawa
Offline

Napisano 09.10.2010 18:51

    case 1:      {             ///Tu daj kod do klasy!     }    case 2:      {             ///Tu daj kod do klasy!     }    case 3:      {             ///Tu daj kod do klasy!     }    case 4:      {             ///Tu daj kod do klasy!     }    case 5:      {             ///Tu daj kod do klasy!     }    case 6:      {             ///Tu daj kod do klasy!     }    case 7:      {             ///Tu daj kod do klasy!     }    case 8: 


Bo żeś tutaj klas nie dodał...

#20 szczepaneto

    Zaawansowany

  • Zbanowany

Reputacja: 10
Początkujący

  • Postów:122
  • Lokalizacja:KrK
Offline

Napisano 10.10.2010 18:51

all sweet gdy by nie to że po pewnym czasie nie pojawia się menu pograliśmy z 4 min potem jak ktoś wbił to po wpisaniu klasy reconectach różnych sposobach menu się nie pojawia o co kaman ?
Edit : Sory już all działa dzięki Ci bardzo :*:*

Dodano 11 październik 2010 - 18:04:
niestety pojawił się problem
L 10/11/2010 - 19:01:33: [AMXX] Run time error 10: native error (native "get_user_attacker") L 10/11/2010 - 19:01:33: [AMXX]    [0] text3p1Uqk.sma::on_damage (line 27) L 10/11/2010 - 19:01:48: Invalid player id 0 L 10/11/2010 - 19:01:48: [AMXX] Displaying debug trace (plugin "bulletdamage.amxx") L 10/11/2010 - 19:01:48: [AMXX] Run time error 10: native error (native "get_user_attacker") L 10/11/2010 - 19:01:48: [AMXX]    [0] text3p1Uqk.sma::on_damage (line 27) L 10/11/2010 - 19:03:13: [MySQL] Thread worker was unable to start. L 10/11/2010 - 19:03:13: [AMXX] Displaying debug trace (plugin "dbmod_5.9l.amxx") L 10/11/2010 - 19:03:13: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 10/11/2010 - 19:03:13: [AMXX]    [0] dbmod_5.9l.sma::create_klass (line 719) L 10/11/2010 - 19:03:13: [AMXX]    [1] dbmod_5.9l.sma::SelectHandle (line 817) L 10/11/2010 - 19:03:13: [MySQL] Thread worker was unable to start. L 10/11/2010 - 19:03:13: [AMXX] Displaying debug trace (plugin "dbmod_5.9l.amxx") L 10/11/2010 - 19:03:13: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 10/11/2010 - 19:03:13: [AMXX]    [0] dbmod_5.9l.sma::create_klass (line 719) L 10/11/2010 - 19:03:13: [AMXX]    [1] dbmod_5.9l.sma::SelectHandle (line 817) L 10/11/2010 - 19:08:52: Start of error session. L 10/11/2010 - 19:08:52: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20101011.log") L 10/11/2010 - 19:08:52: Invalid player id 0 L 10/11/2010 - 19:08:52: [AMXX] Displaying debug trace (plugin "bulletdamage.amxx") L 10/11/2010 - 19:08:52: [AMXX] Run time error 10: native error (native "get_user_attacker") L 10/11/2010 - 19:08:52: [AMXX]    [0] text3p1Uqk.sma::on_damage (line 27) L 10/11/2010 - 19:20:00: [MySQL] Thread worker was unable to start. L 10/11/2010 - 19:20:00: [AMXX] Displaying debug trace (plugin "dbmod_5.9l.amxx") L 10/11/2010 - 19:20:00: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery") L 10/11/2010 - 19:20:00: [AMXX]    [0] dbmod_5.9l.sma::create_klass (line 719) L 10/11/2010 - 19:20:00: [AMXX]    [1] dbmod_5.9l.sma::SelectHandle (line 817) 
proszę o pomoc ;/

Użytkownik szczepaneto edytował ten post 10.10.2010 19:12






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

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

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