Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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

Poprawieni kodu hud


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

#1 Flk

    Czempion

  • Zbanowany

Reputacja: 307
Wszechpomocny

  • Postów:894
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Białystok
Offline

Napisano 12.08.2012 20:55

chcial bym zeby to co wpisze w messagemode pokazywalo w hud ale cos zle zrobilem i mi to nie dziala

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>


#define ZADANIE_POKAZ_INFORMACJE 672

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

new mymenu, klasa[33];
new SyncHudObj;

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

register_clcmd("NazwaKlasy","pobierz");


SyncHudObj = CreateHudSyncObj();
}

public pokaz_menu(id)
{
mymenu = menu_create("Menu","handle_mymenu")
menu_additem(mymenu, "Klasa Gracza");

menu_display(id,mymenu,0)
}
public handle_mymenu(id,menu,item)
{
switch(item)
{
case 0:
{
client_cmd(id,"messagemode NazwaKlasy");
}
}
}
public pobierz(id)
{
new said[31];
new cmd[16];
new target[32];


read_args(said, 30);
replace(said, 30, "^"", "");
parse(said, cmd,15, target,31);

if (equal(cmd, "NazwaKlasy", 4))
{
klasa[id] = cmd_target(id,target,31);
}
}


public client_connect(id)
{

set_task(3.0, "Info", id+ZADANIE_POKAZ_INFORMACJE);

}

public Info(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;

set_task(0.1, "Info", id+ZADANIE_POKAZ_INFORMACJE);

if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
if(!target)
return PLUGIN_CONTINUE;


set_hudmessage(255, 255, 255, 0.6, 0.46, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, SyncHudObj, "Klasa: %s", klasa[id]);
return PLUGIN_CONTINUE;
}

set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa: %s]", klasa[id]);

return PLUGIN_CONTINUE;
}

Najlepsza instalka Counter Strike 1.6 w sieci!!!

http://counter-strike.ct8.pl/


#2 fgsfds

    Pomocny

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:65
Offline

Napisano 13.08.2012 00:42

Może się nie znam ale jakoś tak dziwnie to wygląda.
Przy połączeniu gracza z serwerem ustawiasz task co 3 sekundy o identyfikatorze id+ZADANIE_POKAZ_INFORMACJE który uruchamia funkcję Info, po czym w tej funkcji ustawiasz task o tym samym identyfikatorze, który wywołuję funkcje, która znowu ustawia ten task i tak w nieskończoność.
Są jakieś błędy w konsoli? W kompilatorze? Cokolwiek?
  • +
  • -
  • 0

#3 Flk

    Czempion

  • Autor tematu
  • Zbanowany

Reputacja: 307
Wszechpomocny

  • Postów:894
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Białystok
Offline

Napisano 13.08.2012 00:45

nie hud działa dobrze mam problem z oczytaniem nazwy klasy z zmiennej

Najlepsza instalka Counter Strike 1.6 w sieci!!!

http://counter-strike.ct8.pl/


#4 fgsfds

    Pomocny

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:65
Offline

Napisano 13.08.2012 00:57

O którą linijkę dokładnie chodzi?

if (equal(cmd, "NazwaKlasy", 4))
{
klasa[id] = cmd_target(id,target,31);
}


Tą?

Użytkownik Maxorq edytował ten post 13.08.2012 00:58

  • +
  • -
  • 0

#5 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 13.08.2012 05:52

Na pierwszy rzut oka, po wyjściu gracza z serwera, dalej wysyłasz do niego wiadomości.
Doraźnie
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define ZADANIE_POKAZ_INFORMACJE 672

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

new mymenu, klasa[33];
new SyncHudObj;

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("NazwaKlasy","pobierz");
SyncHudObj = CreateHudSyncObj();
}

public pokaz_menu(id)
{
mymenu = menu_create("Menu","handle_mymenu");
menu_additem(mymenu, "Klasa Gracza");

menu_display(id,mymenu,0);
}
public handle_mymenu(id,menu,item)
{
switch(item)
{
case 0:
{
client_cmd(id,"messagemode NazwaKlasy");
}
}
}
public pobierz(id)
{
new said[31];
new cmd[16];
new target[32];


read_args(said, 30);
replace(said, 30, "^"", "");
parse(said, cmd,15, target,31);

if (equal(cmd, "NazwaKlasy", 4))
{
klasa[id] = cmd_target(id,target,31);
}
}


public client_connect(id)
{
set_task(3.0, "Info", id+ZADANIE_POKAZ_INFORMACJE);
}

public Info(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;

if(is_user_connected(id))
set_task(0.1, "Info", id+ZADANIE_POKAZ_INFORMACJE);

if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
if(!target)
return PLUGIN_CONTINUE;


set_hudmessage(255, 255, 255, 0.6, 0.46, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, SyncHudObj, "Klasa: %s", klasa[id]);
return PLUGIN_CONTINUE;
}

set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa: %s]", klasa[id]);

return PLUGIN_CONTINUE;
}


#6 Flk

    Czempion

  • Autor tematu
  • Zbanowany

Reputacja: 307
Wszechpomocny

  • Postów:894
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Białystok
Offline

Napisano 13.08.2012 15:22

niby działa ale nie pokazuje się tekst wpisany i zapisany do klasa[id]

Najlepsza instalka Counter Strike 1.6 w sieci!!!

http://counter-strike.ct8.pl/


#7 fgsfds

    Pomocny

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:65
Offline

Napisano 13.08.2012 18:00

niby działa ale nie pokazuje się tekst wpisany i zapisany do klasa[id]


klasa[33] to tablica typu Integer.
Usiłujesz wstawić do wiadomości %s czyli String. Zamień "Klasa: %s" na "Klasa: %i" i wtedy będziesz miał wartość liczbową typu "Klasa: 1"
Żadnych deklaracji nazw klas nie widzę, więc to musisz zrobić na początku.
  • +
  • -
  • 0

#8 Flk

    Czempion

  • Autor tematu
  • Zbanowany

Reputacja: 307
Wszechpomocny

  • Postów:894
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Białystok
Offline

Napisano 13.08.2012 18:01

akurat chce tam wstawić tekst jak to zrobić dopiero zaczynam wiec proszę o pomoc

Najlepsza instalka Counter Strike 1.6 w sieci!!!

http://counter-strike.ct8.pl/


#9 fgsfds

    Pomocny

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:65
Offline

Napisano 13.08.2012 18:06

Dobra, chcesz wstawić tekst ale jaki? Skąd go bierzesz? Co w ogóle usiłujesz zrobić?
  • +
  • -
  • 0

#10 Flk

    Czempion

  • Autor tematu
  • Zbanowany

Reputacja: 307
Wszechpomocny

  • Postów:894
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Białystok
Offline

Napisano 13.08.2012 18:09

Tutaj w tem menu wpisujesz np. Kapitan
i chce to wyświetlić w hud z zapisem nvault

public pokaz_menu(id)
{
mymenu = menu_create("Menu","handle_mymenu");
menu_additem(mymenu, "Klasa Gracza");

menu_display(id,mymenu,0);
}
public handle_mymenu(id,menu,item)
{
switch(item)
{
case 0:
{
client_cmd(id,"messagemode NazwaKlasy");
}
}


Najlepsza instalka Counter Strike 1.6 w sieci!!!

http://counter-strike.ct8.pl/


#11 fgsfds

    Pomocny

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:65
Offline

Napisano 13.08.2012 18:13

Dziwnie mi to wygląda, ale w każdym razie, najlepiej gdybyś na początku walnął jakąś definicję wszystkich nazw klas typu:

new const NazwyKlas[3][] = { "Kapitan", "Inna klasa", "Jeszcze inna" }


Później w HUD'zie możesz się do tego odwołać podając NazwyKlas[klasa[id]] (tym razem z parametrem %s)
  • +
  • -
  • 0

#12 Flk

    Czempion

  • Autor tematu
  • Zbanowany

Reputacja: 307
Wszechpomocny

  • Postów:894
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Białystok
Offline

Napisano 13.08.2012 18:17

wiem ale właśnie chciałem zrobić że każdy se może swoją nazwę wpisać szkoda że się nie da

Najlepsza instalka Counter Strike 1.6 w sieci!!!

http://counter-strike.ct8.pl/


#13 fgsfds

    Pomocny

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:65
Offline

Napisano 13.08.2012 18:22

Nie no, dałoby się zrobić wpisywanie własnej, ale musiałbyś wtedy zrobić zmienną która może to przetrzymywać, np.

new NazwyKlas[33][32]


Dałoby to 32 znaki do wykorzystania dla każdego gracza, mógłbyś to pętlą zapisywać do nVault'a.
Trochę pokomplikowany ten kod, więc wstrzymam się z dalszymi pomysłami do czasu, aż ktoś inny na to popatrzy.
  • +
  • -
  • 0

#14 Flk

    Czempion

  • Autor tematu
  • Zbanowany

Reputacja: 307
Wszechpomocny

  • Postów:894
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Białystok
Offline

Napisano 13.08.2012 19:02

zrobiłem to inaczej ale mam problem bo nie wiem jak zapisać wpisany tekst na jedną osobę

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <nvault>


#define ZADANIE_POKAZ_INFORMACJE 672

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

new szText1[33][64];
new SyncHudObj;

new d_bron

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

register_clcmd("say /test","test")
register_clcmd("NazwaKlasy", "Manual1")
d_bron = nvault_open("klasa")


SyncHudObj = CreateHudSyncObj();
}

public test(id) {
new menu = menu_create("MenuX", "wieczyste")
menu_additem(menu, "Nazwa Klasy")
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu, 0)
}
public wieczyste(id, menu, item) {
switch(item){
case 0: {
client_cmd(id, "messagemode NazwaKlasy");
}
}
return PLUGIN_HANDLED
}
public Manual1(id) {
read_argv(1, szText1[id], charsmax(szText1))
remove_quotes(szText1[id])

return PLUGIN_HANDLED
}


public client_connect(id)
{
Wczytajexp(id)

set_task(3.0, "Info", id+ZADANIE_POKAZ_INFORMACJE);

}

public client_disconnect(id)
{
Zapiszexp(id);

}

public Info(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;

set_task(0.1, "Info", id+ZADANIE_POKAZ_INFORMACJE);

if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
if(!target)
return PLUGIN_CONTINUE;


set_hudmessage(255, 255, 255, 0.6, 0.46, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, SyncHudObj, "Klasa: %s", szText1[id]);
return PLUGIN_CONTINUE;
}

set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa: %s]", szText1[id]);

return PLUGIN_CONTINUE;
}

public Zapiszexp(id)
{
new name[31];
get_user_name(id, name, 31);

new vaultkey[64], vaultdata[256];
format(vaultkey, 63, "%s-exp", name);
format(vaultdata, 255, "%s#", szText1[id]);
nvault_set(d_bron, vaultkey, vaultdata);
return PLUGIN_CONTINUE;
}
public Wczytajexp(id)
{
new name[31];
get_user_name(id,name,31);

new vaultkey[64], vaultdata[256];
format(vaultkey, 63, "%s-exp", name);
format(vaultdata, 255, "%s#", szText1[id]);
nvault_get(d_bron, vaultkey, vaultdata,255);

replace_all(vaultdata, 255, "#", " ");

new danegracza[1][32];
parse(vaultdata, danegracza[0]);

copy(szText1[id], 63, danegracza[0]);




return PLUGIN_CONTINUE;
}

Najlepsza instalka Counter Strike 1.6 w sieci!!!

http://counter-strike.ct8.pl/


#15 fgsfds

    Pomocny

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:65
Offline

Napisano 13.08.2012 19:07

Spróbuj zamiast:

read_argv(1, szText1[id], charsmax(szText1))


użyć:

read_argv(1, szText1[id], charsmax(szText1[id]))

  • +
  • -
  • 0

#16 Flk

    Czempion

  • Autor tematu
  • Zbanowany

Reputacja: 307
Wszechpomocny

  • Postów:894
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Białystok
Offline

Napisano 13.08.2012 19:09

Próbowałem i errory wywala

Najlepsza instalka Counter Strike 1.6 w sieci!!!

http://counter-strike.ct8.pl/


#17 fgsfds

    Pomocny

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:65
Offline

Napisano 13.08.2012 19:11

A mógłbyś je podać może...
  • +
  • -
  • 2

#18 Flk

    Czempion

  • Autor tematu
  • Zbanowany

Reputacja: 307
Wszechpomocny

  • Postów:894
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Białystok
Offline

Napisano 13.08.2012 19:15

Welcome to the AMX Mod X 1.76-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Expected token: "]", but found "-identifier-" on line 47
Error: Invalid expression, assumed zero on line 47
Error: Invalid expression, assumed zero on line 47
Error: Too many error messages on one line on line 47

Compilation aborted.
4 Errors.
Could not locate output file D:\amxx\Untitled.amx (compile failed).

Najlepsza instalka Counter Strike 1.6 w sieci!!!

http://counter-strike.ct8.pl/


#19 Flk

    Czempion

  • Autor tematu
  • Zbanowany

Reputacja: 307
Wszechpomocny

  • Postów:894
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Białystok
Offline

Napisano 13.08.2012 20:26

Poradziłem sobie można zamknąć

Najlepsza instalka Counter Strike 1.6 w sieci!!!

http://counter-strike.ct8.pl/


#20 Kawon

    Godlike

  • Przyjaciel

Reputacja: 884
Czempion

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

Napisano 13.08.2012 21:14

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Temat zamknięty na prośbę użytkownika.


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