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

[ROZWIĄZANE] Tablice/Zmienne - problem


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

#1 MarcineN

    Pomocny

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:40
  • GG:
  • Imię:Marcin
  • Lokalizacja:pruszków
Offline

Napisano 05.11.2012 16:06

Siemka,
Mam taki plugin na wyświetlanie HUD'a
#include <amxmodx>
#include <amxmisc>
#include <csx>

#define PLUGIN	"HUD"
#define AUTHOR	" glut // edit Marcin"
#define VERSION	"1.0"

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
}
public pokaz_hud(id)
{		

	new stats[8],bodyhits[8],rankpos,rankmax;
	rankpos = get_user_stats(id, stats, bodyhits)
		rankmax = get_statsnum()

	new izStats[ 8 ], izBody[ 8 ];
	new szData[10];
	get_time( "%X", szData, 9 );
	new hp = get_user_health(id)
	new ar = get_user_armor(id)
	new rank = get_user_stats( id, izStats, izBody )
	new fragi = get_user_frags(id)
	new dedy = get_user_deaths(id)
	new czas_mapy = get_timeleft()
	new name[32]
	get_user_name(id, name, 31)  
	if(is_user_connected(id))
	{
		set_hudmessage(255, 255, 0, 0.02, 0.15, 0, 0.0, 0.3, 0.0, 0.0);
		show_hudmessage(id, "[Nick: %s]^n[Zycie: %i | Armor: %i]^n[Fragi: %i | Zginiecia: %i]^n[Rank: %d/%d]^n[Forum: www-cs-SopliCa.com]",name,hp, ar, fragi, dedy, rankpos, rankmax)
	}
	else
	{
		remove_task(id)
	}
	
	return PLUGIN_HANDLED
}
public client_putinserver(id)
{
	set_task(0.04, "pokaz_hud", id,_,_,"b");
}


I w tym pluginie widzimy że jest dużo zmiennych tzn. (nie wiem czy dobrze mówie) ->
new fragi = get_user_frags(id)
 new dedy = get_user_deaths(id)
itp.
I jeśli bym chciał zrobić np. ten sam kod tylko żeby HUd był po prawej i lewej stronie to w nowym public np. pokaz_hudprawa musialbym znow dac to to co podalem wyżej..
I teraz chciałbym zrobić zmienne czy też tablice bo zbytno się w tym jezcze nie orientuje, i mógłbym ich używać w różnych public'ach.

Prosiłbym aby ktoś najlepiej zrobił już całość tego w zmiennych globalnych czy coś w podobie abym widział jak to robić na przyszłość ew dobrze wytłumaczyć bo, wiem że przez plugin_init trzeba dać np. new name[33] itp. tylko że próbowałem i nie działa :/
Daje ++ za każdą pomoc.

Użytkownik MarcineN edytował ten post 05.11.2012 16:07

  • +
  • -
  • 0




1. Menu Wiadomosci HUD [ | | | | | | | | | | ] - 100%
2. HUD Advertisements [ _ _ _ _ _ _ _ _ _ _ ] - 1%


#2 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 05.11.2012 16:32

A może wyświetlaj dwa HUD'y w jednym public'u? (takie szybkie odświeżanie HUD'a nie jest raczej wymagane :P )
  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#3 MarcineN

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:40
  • GG:
  • Imię:Marcin
  • Lokalizacja:pruszków
Offline

Napisano 05.11.2012 16:37

Ale w późniejszym czasie chce zrobić takie menu Huda np.

1) Hud po lewej stronie
2) Hud po prawej
3) Hud po srodku

I jak wybiore 1 opcje to poprzednia się wyłącza więc potrzeba 3 public I w kazdym inna pozycja..

// Właściwie podstawe menu już mam ale z tym utknąłem :/

Użytkownik MarcineN edytował ten post 05.11.2012 16:37

  • +
  • -
  • 0




1. Menu Wiadomosci HUD [ | | | | | | | | | | ] - 100%
2. HUD Advertisements [ _ _ _ _ _ _ _ _ _ _ ] - 1%


#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 05.11.2012 17:27

Ale w późniejszym czasie chce zrobić takie menu Huda np.

1) Hud po lewej stronie
2) Hud po prawej
3) Hud po srodku

I jak wybiore 1 opcje to poprzednia się wyłącza więc potrzeba 3 public I w kazdym inna pozycja..

// Właściwie podstawe menu już mam ale z tym utknąłem :/

Do tego nie potrzeba 3 funkcji (public).
  • +
  • -
  • 0

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


#5 MarcineN

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:40
  • GG:
  • Imię:Marcin
  • Lokalizacja:pruszków
Offline

Napisano 05.11.2012 17:32

To wytłumaczcie jak to zrobić.
  • +
  • -
  • 0




1. Menu Wiadomosci HUD [ | | | | | | | | | | ] - 100%
2. HUD Advertisements [ _ _ _ _ _ _ _ _ _ _ ] - 1%


#6 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 05.11.2012 17:39

To wytłumaczcie jak to zrobić.

Musisz mieć dwie zmienne, w których będziesz przypisywał wartość x oraz y, bo jak wiemy wyświetlanie wiadomości na hudzie jest zależne od pozycji x i y. Gdy ktoś wybierze hud po lewej stronie, to ustaw pozycje x oraz y aby odpowiadała lewej stronie. Mam nadzieję, że o to chodziło sebulowi :D
  • +
  • -
  • 0

If you can dream it, you can do it.


#7 MarcineN

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:40
  • GG:
  • Imię:Marcin
  • Lokalizacja:pruszków
Offline

Napisano 05.11.2012 17:44

No tylko ja potrzebuje jakiś przykład bo tak to ni cholere nie wiem jak zapisać te wartości..
FAjnie by było gdybyście pokazali jak tą zmienną itp.
Tak w miarę dokładnie.


/// Ale wolałbym tym moim sposobem ze zmiennymi wtedy łatwiej bedzie mi robić dalesze części związane z tym menu..

Użytkownik MarcineN edytował ten post 05.11.2012 17:48

  • +
  • -
  • 0




1. Menu Wiadomosci HUD [ | | | | | | | | | | ] - 100%
2. HUD Advertisements [ _ _ _ _ _ _ _ _ _ _ ] - 1%


#8 Filip1512

    Wszechmogący

  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 05.11.2012 23:49

Ogólnie to przykład jest źle, ale mam nadzieję, że myśl dobra. Coś tam próbowałem zrobić, ale standardowo masa (zapewnie głupich) błędów :P
Stworzyłem menu, w którym po wejściu na serwer będzie możliwośc wybrania pozycji menu, coś mi się też zdaje, że w złych miejscach te floaty wprowadziłem, ale mniejsza. Nie mam pojęcia, jaką funkcją odwołać się do (akurat tutaj) coordx lub coordy, ja próbowałem floatstr ale coś nie wyszło... może już Ci bardziej obeznani pomogą :P


#include <amxmodx>
#include <amxmisc>
#include <csx>

#define PLUGIN "HUD"
#define AUTHOR " glut // edit Marcin"
#define VERSION "1.0"

new gVotemenu;
new float:coordx;
new float:coordy;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /hudmenu", "hudmenu")

gVotemenu=menu_create ("Z ktorej strony chcesz miec HUD?", "cVotemenu");
menu_additem(gVotemenu,"Lewej");
menu_additem(gVotemenu,"Po srodku");
menu_additem(gVotemenu,"Prawej");

}

public client_putinserver(id)
{
set_task(0.1, "pokaz_hud", id,_,_,"b");
menu_display(id, gVotemenu, 0);
}

public hudmenu(id)
menu_display(id, gVotemenu, 0);

public cVotemenu(id, menu, item){
switch(item){
case 0:{
coordx = 0.2
coordy = 0.3
}
case 1:{
coordx = -1.0
coordy = 0.05
}
case 2:{
coordx = 0.8
coordy = 0.3
}
}
}



public pokaz_hud(id)
{

new stats[8],bodyhits[8],rankpos,rankmax;
rankpos = get_user_stats(id, stats, bodyhits)
rankmax = get_statsnum()

new izStats[ 8 ], izBody[ 8 ];
new szData[10];
get_time( "%X", szData, 9 );
new hp = get_user_health(id)
new ar = get_user_armor(id)
new rank = get_user_stats( id, izStats, izBody )
new fragi = get_user_frags(id)
new dedy = get_user_deaths(id)
new czas_mapy = get_timeleft()
new name[32]
get_user_name(id, name, 31)
if(is_user_connected(id))
{
set_hudmessage(255, 255, 0, floatstr(coordx), floatstr(coordy), 0, 0.0, 0.3, 0.0, 0.0);
show_hudmessage(id, "[Nick: %s]^n[Zycie: %i | Armor: %i]^n[Fragi: %i | Zginiecia: %i]^n[Rank: %d/%d]^n[Forum: www-cs-SopliCa.com]",name,hp, ar, fragi, dedy, rankpos, rankmax)
}
else
{
remove_task(id)
}

return PLUGIN_HANDLED
}



Ale myślę, że można by spróbować innym sposobem, czyli zamiast deklarować floaty na początku to tylko 1 zmienną, później dane opcje w menu by miały swój "id" (np po srodku = 3), a później zabawa z ifami.

///edit

Jak już zacząłem to już skończe :P To mi już normalnie skompilowało (nie licząc już tych Twoich powiadomień, które były)

#include <amxmodx>
#include <amxmisc>
#include <csx>

#define PLUGIN "HUD"
#define AUTHOR " glut // edit Marcin"
#define VERSION "1.0"

new gVotemenu;
new coord;

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /hudmenu", "hudmenu")

gVotemenu=menu_create ("Z ktorej strony chcesz miec HUD?", "cVotemenu");
menu_additem(gVotemenu,"Lewej");
menu_additem(gVotemenu,"Po srodku");
menu_additem(gVotemenu,"Prawej");

}

public client_putinserver(id)
{
set_task(0.1, "pokaz_hud", id,_,_,"b");
menu_display(id, gVotemenu, 0);
}

public hudmenu(id)
menu_display(id, gVotemenu, 0);

public cVotemenu(id, menu, item){
switch(item){
case 0:{
coord = 1
}
case 1:{
coord = 2
}
case 2:{
coord = 3
}
}
}



public pokaz_hud(id)
{

new stats[8],bodyhits[8],rankpos,rankmax;
rankpos = get_user_stats(id, stats, bodyhits)
rankmax = get_statsnum()

new izStats[ 8 ], izBody[ 8 ];
new szData[10];
get_time( "%X", szData, 9 );
new hp = get_user_health(id)
new ar = get_user_armor(id)
new rank = get_user_stats( id, izStats, izBody )
new fragi = get_user_frags(id)
new dedy = get_user_deaths(id)
new czas_mapy = get_timeleft()
new name[32]
get_user_name(id, name, 31)
if(is_user_connected(id)){
if(coord == 1){
set_hudmessage(255, 255, 0, 0.2, 0.3, 0, 0.0, 0.3, 0.0, 0.0);
show_hudmessage(id, "[Nick: %s]^n[Zycie: %i | Armor: %i]^n[Fragi: %i | Zginiecia: %i]^n[Rank: %d/%d]^n[Forum: www-cs-SopliCa.com]",name,hp, ar, fragi, dedy, rankpos, rankmax)
}
if(coord == 2){
set_hudmessage(255, 255, 0, -1.0, 0.05, 0, 0.0, 0.3, 0.0, 0.0);
show_hudmessage(id, "[Nick: %s]^n[Zycie: %i | Armor: %i]^n[Fragi: %i | Zginiecia: %i]^n[Rank: %d/%d]^n[Forum: www-cs-SopliCa.com]",name,hp, ar, fragi, dedy, rankpos, rankmax)
}
if(coord == 3){
set_hudmessage(255, 255, 0, 0.8, 0.3, 0, 0.0, 0.3, 0.0, 0.0);
show_hudmessage(id, "[Nick: %s]^n[Zycie: %i | Armor: %i]^n[Fragi: %i | Zginiecia: %i]^n[Rank: %d/%d]^n[Forum: www-cs-SopliCa.com]",name,hp, ar, fragi, dedy, rankpos, rankmax)
}
}
else
{
remove_task(id)
}

return PLUGIN_HANDLED
}

Użytkownik `NN edytował ten post 06.11.2012 00:00

  • +
  • -
  • 1
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#9 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 06.11.2012 00:50

Dla każdego musisz pozycję przechowywać osobno, czyli potrzebna jest Ci tablica 33 elementowa.

Użytkownik GwynBleidD edytował ten post 06.11.2012 00:51

  • +
  • -
  • 1

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


#10 MarcineN

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:40
  • GG:
  • Imię:Marcin
  • Lokalizacja:pruszków
Offline

Napisano 06.11.2012 13:50

`NN bardzo dziękuję za pomoc!
Można zamknąć.
+ dodany.
  • +
  • -
  • 0




1. Menu Wiadomosci HUD [ | | | | | | | | | | ] - 100%
2. HUD Advertisements [ _ _ _ _ _ _ _ _ _ _ ] - 1%


#11 Kawon

    Godlike

  • Przyjaciel

Reputacja: 887
Czempion

  • Postów:5 165
  • Steam:steam
  • Imię:Paweł
  • Lokalizacja:Dzierzgoń
Offline

Napisano 06.11.2012 14:25

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


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

DarkGL to mój autorytet.





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

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