/* 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;
}
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.
|
Poprawieni kodu hud
#1
Napisano 12.08.2012 20:55
Najlepsza instalka Counter Strike 1.6 w sieci!!!
#2
Napisano 13.08.2012 00:42
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?
#3
Napisano 13.08.2012 00:45
Najlepsza instalka Counter Strike 1.6 w sieci!!!
#4
Napisano 13.08.2012 00:57
if (equal(cmd, "NazwaKlasy", 4))
{
klasa[id] = cmd_target(id,target,31);
}
Tą?
Użytkownik Maxorq edytował ten post 13.08.2012 00:58
#5 Gość_21977_*
Napisano 13.08.2012 05:52
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
Napisano 13.08.2012 15:22
Najlepsza instalka Counter Strike 1.6 w sieci!!!
#7
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.
#8
Napisano 13.08.2012 18:01
Najlepsza instalka Counter Strike 1.6 w sieci!!!
#9
Napisano 13.08.2012 18:06
#10
Napisano 13.08.2012 18:09
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!!!
#11
Napisano 13.08.2012 18:13
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)
#12
Napisano 13.08.2012 18:17
Najlepsza instalka Counter Strike 1.6 w sieci!!!
#13
Napisano 13.08.2012 18:22
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.
#14
Napisano 13.08.2012 19:02
/* 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!!!
#15
Napisano 13.08.2012 19:07
read_argv(1, szText1[id], charsmax(szText1))
użyć:
read_argv(1, szText1[id], charsmax(szText1[id]))
#16
Napisano 13.08.2012 19:09
Najlepsza instalka Counter Strike 1.6 w sieci!!!
#17
Napisano 13.08.2012 19:11
#18
Napisano 13.08.2012 19:15
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!!!
#19
Napisano 13.08.2012 20:26
Najlepsza instalka Counter Strike 1.6 w sieci!!!
#20
Napisano 13.08.2012 21:14
Ten temat został zamknięty przez moderatora.
Powód: Temat zamknięty na prośbę użytkownika.
Z pozdrowieniami,
Zespół AMXX.PL
DarkGL to mój autorytet.
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych