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

Nazwa postaci


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

#1 Blondyneczka ;*

    Profesjonalista

  • Zbanowany

Reputacja: -2
Nowy

  • Postów:177
  • Lokalizacja:Wrocławek
Offline

Napisano 17.06.2012 11:29

Witam. Jak zrobić aby po wejściu na serwer wyświetlało się menu (menu wiem jak zrobić) a w tym menu :
1. Stwórz bohatera
2. Stwórz bohaterke

Po wybraniu opcji wyświetla się nam :

Wpisz_Nazwe:

Jak wpiszemy nazwę to ona się zapisuje i cały czas gdy wejdziemy na serwer mamy już stworzoną postać. Także wyświetla ona się w hud.(Hud mam już gotowy)

#2 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.06.2012 16:10

Jest wiele momentów, w których możesz po wejściu na serwer przechwycać takie rzeczy. Mozesz tuż po pierwszym zrespieniu się, tuż po wyborze drużyny (różni się od zrespienia tym, że możesz być jeszcze przez chwilę martwy, jeśli runda trwa), albo przed wyborem drużyny (da się "powstrzymać" menu wyboru i wyświetlić najpierw swoje własne). Napisz która opcja jest najlepsza dla Ciebie. Oczywiście do każdej z nich można dodać opóźnienie (w przypadku trzeciej chyba ono nie ma sensu ;) ).
  • +
  • -
  • 2

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#3 Blondyneczka ;*

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: -2
Nowy

  • Postów:177
  • Lokalizacja:Wrocławek
Offline

Napisano 17.06.2012 16:20

Interesuje mnie ,żeby przy pierwszym respie otwierało się menu.

#4 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.06.2012 17:37

W takim razie najprościej użyć szynki. Tworzymy tablicę globalną przechowującą info, czy to pierwszy spawn gracza:
new bool:firstSpawn[33];

Rejestrujemy w plugin init handler:
RegisterHam( Ham_Spawn, "player", "handle_clientSpawn", 1 );

Dodajemy "jedynkowanie" tablicy:
public client_connect(id) {
firstSpawn[id] = true;
}

I wyświetlamy menu przy pierwszym spawnie:
public handle_clientSpawn(id) {
if(!firstSpawn[id])
return HAM_IGNORE;

new menu=menu_create(.....)
.....
return HAM_IGNORE;
}


Menu mam nadzieję sam sobie skonstruujesz, posilając się tym:
http://amxx.pl/topic...tworzenie-menu/
i tym:
http://amxx.pl/topic...tworzenia-menu/
  • +
  • -
  • 2

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#5 Blondyneczka ;*

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: -2
Nowy

  • Postów:177
  • Lokalizacja:Wrocławek
Offline

Napisano 17.06.2012 19:10

Extra ! pomogłeś.

Teraz plugin wygląda tak :

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new bool:firstSpawn[33];

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("mymenu","mymenu");  
	
	RegisterHam( Ham_Spawn, "player", "handle_clientSpawn", 1 );
}

public client_connect(id)
{
		firstSpawn[id] = true;
}

public handle_clientSpawn(id)
{
		if(!firstSpawn[id])
				return HAM_IGNORE;

		new menu=menu_create(.....)
		.....
		return HAM_IGNORE;
}

public mymenu(id)
{
		new MyMenu=menu_create("Jak sie przywitasz?","cbMyMenu");
		
		menu_additem(MyMenu,"\dStworz \rBohatera");//item=0
		menu_additem(MyMenu,"\dStworz \rBohaterke");//item=1
		
		menu_display(id, MyMenu,0);
		return PLUGIN_HANDLED;
}

public cbMyMenu(id, menu, item)
{
		switch(item){
				case 0:{
						ColorChat(id, RED, "^x04[B-Mod]^x01 Gratuluje! Stworzyles swego ^x04Bohatera!");
				}
				case 1:{
						ColorChat(id, RED, "^x04[B-Mod]^x01 Gratuluje!! Stworzyles swa ^x04Bohaterke!");
	  
				}
		}
		menu_destroy(menu);
		return PLUGIN_HANDLED;
}

Użytkownik WiWa edytował ten post 17.06.2012 19:14


#6 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 17.06.2012 20:24

Zapomniałem jeszcze o jednym. handle_clientSpawn powinien wyglądać tak:
public handle_clientSpawn(id)
{
if(!firstSpawn[id])
return HAM_IGNORE;
firstSpawn[id] = false;
mymenu(id);
return HAM_IGNORE;
}


Teraz powinno ładnie wyświetlać menu przy pierwszym spawnie.
  • +
  • -
  • 2

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#7 Blondyneczka ;*

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: -2
Nowy

  • Postów:177
  • Lokalizacja:Wrocławek
Offline

Napisano 18.06.2012 12:59

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

Error: Undefined symbol "RegisterHam" on line 19
Warning: Expression has no effect on line 19
Warning: Expression has no effect on line 19
Warning: Expression has no effect on line 19
Error: Expected token: ";", but found ")" on line 19
Error: Invalid expression, assumed zero on line 19
Error: Too many error messages on one line on line 19

Compilation aborted.
4 Errors.
Could not locate output file C:\Documents and Settings\Pyra\Pulpit\niomlp.amx (compile failed).


#8 Hiroshima

    Godlike

  • Przyjaciel

Reputacja: 1 327
Godlike

  • Postów:4 984
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Málaga
Offline

Napisano 18.06.2012 13:10

dopisz na początku
#include <hamsandwich>

  • +
  • -
  • 2

#9 Blondyneczka ;*

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: -2
Nowy

  • Postów:177
  • Lokalizacja:Wrocławek
Offline

Napisano 18.06.2012 13:12

Welcome to the AMX Mod X 1.8.1-300 Compiler.

Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team



Error: Undefined symbol "HAM_IGNORE" on line 44

Error: Undefined symbol "HAM_IGNORE" on line 47

Warning: Symbol is never used: "armor" on line 75

Warning: Symbol is never used: "dmg" on line 75

Warning: Symbol is never used: "duch" on line 75

Warning: Symbol is never used: "exp" on line 75

Warning: Symbol is never used: "grawitacja" on line 75

Warning: Symbol is never used: "niewidzialnosc" on line 75

Warning: Symbol is never used: "odrodzenie" on line 75

Warning: Symbol is never used: "regeneracja" on line 75

Warning: Symbol is never used: "skoki" on line 75

Warning: Symbol is never used: "spider" on line 75

Warning: Symbol is never used: "szczescie" on line 75

Warning: Symbol is never used: "szybkosc" on line 75



2 Errors.

Could not locate output file C:\Documents and Settings\Pyra\Pulpit\niomlp.amx (compile failed).


#10 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 18.06.2012 14:08

Wszystkie:
HAM_IGNORE
zamień na:
HAM_IGNORED

  • +
  • -
  • 2

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#11 Blondyneczka ;*

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: -2
Nowy

  • Postów:177
  • Lokalizacja:Wrocławek
Offline

Napisano 18.06.2012 15:18

Menu stworzone, teraz przejdżmy do :

Po wybraniu opcji wyświetla się nam :

Wpisz_Nazwe:

Użytkownik WiWa edytował ten post 18.06.2012 15:19


#12 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 18.06.2012 17:57

Do pobierania stringów służy funkcja messagemode wykonywana u gracza. Wywołujesz ją tak:
client_cmd(id, "messagemode nazwa_bohatera")


Spowoduje to wyświetlenie u gracza komunikatu takiego, jak przy say. Wpisuje on wtedy swoją nazwę i gdy wciśnie enter wynik jest przekazywany do serwera przez komendę:
nazwa_bohatera "Nazwa, którą ktoś sobie wpisał"

Musisz więc tą komendę przechwycić. więc:
  • Rejestrujesz komendę w plugin_init swojego pluginu
    register_clcmd("nazwa_bohatera", "nazwa_bohatera");
    
  • Tworzysz funkcję, która przechwyci tą komendę
    public nazwa_bohatera(id) {

    new nazwa[64];
    read_args(nazwa, charsmax(nazwa)); // Pobieramy nazwę bohatera
    remove_quotes(nazwa); // Usuwamy z niej cudzysłowy, gdyż w nich się ta nazwa domyślnie znajduje
    switch(menuChoice[id){
    case 0:{
    ColorChat(id, RED, "^x04[B-Mod]^x01 Gratuluje! Stworzyles swego ^x04Bohatera^x01 o nazwie ^x03%s^x01!", nazwa);
    }case 1:{
    ColorChat(id, RED, "^x04[B-Mod]^x01 Gratuluje!! Stworzyles swa ^x04Bohaterke^x01 o nazwie ^x03%s^x01!", nazwa);
    }
    }
    }
  • Aby wyświetlić odpowiedni komunikat dopiero po wpisaniu nazwy bohatera, dodajesz handler menu:
    public cbMyMenu(id, menu, item)
    {
    if(item!=MENU_EXIT) {
    menuChoice[id] = item;
    client_cmd(id, "messagemode nazwa_bohatera");
    }


    menu_destroy(menu);
    return PLUGIN_HANDLED;
    }
  • I dodajesz na końcu tablicę globalną, aby przechowywać to, co wybrał gracz, czyli zaraz za new firstSpawn[33]; dodajesz linię
    new menuChoice[33];
    

Użytkownik GwynBleidD edytował ten post 18.06.2012 17:58

  • +
  • -
  • 2

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#13 Blondyneczka ;*

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: -2
Nowy

  • Postów:177
  • Lokalizacja:Wrocławek
Offline

Napisano 18.06.2012 19:07

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

Error: Expected token: "]", but found ")" on line 67

1 Error.
Could not locate output file C:\Documents and Settings\Pyra\Pulpit\niomlp.amx (compile failed).

Dobra poradziłem sobie zrobiłeś literówkę.

Teraz ostatnia rzecz :
Gracz może stworzyć x bohaterów.
							    Bohaterzy zapisują się.


#14 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 19.06.2012 02:29

Tuuu już grubsza sprawa. Poszukaj poradników o nVault albo SQL (SQLite raczej, nie MySQL bo chyba bazy danych nie masz pod to własnej). W ostateczności zwykła obsługa plików, ale nie będzie zbyt do tego pasowała. Jeśli Cię to przerośnie dosyć mocno, weź się za coś lżejszego do nauki pisania pluginów. Jeśli będziesz miał małe w miarę wątpliwości, pisz tutaj :)
  • +
  • -
  • 2

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark





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

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