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.
|
Pytanie do return PLUGIN_
#21
Napisano 08.12.2012 10:20
If you can dream it, you can do it.
#22
Napisano 08.12.2012 13:51
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team
Error: Undefined symbol "id" on line 21
Warning: Redundant code: constant expression is zero on line 21
Error: Undefined symbol "id" on line 21
Warning: Expression has no effect on line 21
Error: Expected token: ")", but found ";" on line 21
Error: Too many error messages on one line on line 21
Compilation aborted.
4 Errors.
#include <amxmodx>
#include <hamsandwich>
#include <ColorChat>
#define PLUGIN "Rate'y + HUDMSG"
#define VERSION "2.0"
#define AUTHOR "Filip / `NN"
new const komendy[][] = {"rate", "cl_cmdbackup", "cl_cmdrate", "cl_updaterate", "ex_interp"}
new hudmsg1;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "raty", 1)
set_task(120.0, "hudmsg", _, _, _, "b")
register_cvar("rate_block", "1")
for(id=0 ; id < sizeof komendy ; id++)
register_clcmd(komendy[id], "BlockCmd")
hudmsg1 = CreateHudSyncObj();
}
public raty (id)
{
client_cmd( id , "rate 25000" )
client_cmd( id , "cl_cmdbackup 2" )
client_cmd( id , "cl_cmdrate 101" )
client_cmd( id , "cl_updaterate 101" )
client_cmd( id , "ex_interp 0.01" )
}
public hudmsg()
{
set_hudmessage(255, 100, 10, 0.1, 0.7, 0, 6.0, 9.0, 0.0, 0.0, 2)
ShowSyncHudMsg(0, hudmsg1, "Twoj interp zostal ustawiony na 0.01")
}
public BlockCmd(id){
if(get_cvar_num("rate_block") == 1){
ColorChat(id, BLUE, "[rate] ^x01Zmiana ustawien RATE jest ZABLOKOWANA!")
console_print(id, "[rate] Zmiana ustawien RATE jest ZABLOKOWANA!")
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
Po dopisaniu zmiennej new id; już się kompilowało normalnie, lecz po użyciu którejkolwiek komendy z tablicy nie wypisuje nic na czacie ani w konsoli, a ustawienia można zmienić.
Użytkownik `NN edytował ten post 08.12.2012 13:52
#23
Napisano 08.12.2012 13:57
for(id=0 ; id < sizeof komendy ; id++)->
for(new id=0 ; id < sizeof komendy ; id++)
If you can dream it, you can do it.
#24
Napisano 08.12.2012 14:03
#25
Napisano 08.12.2012 14:07
IP: 31.186.83.208:27043
#26
Napisano 08.12.2012 14:09
Widziałem, lecz nie widzę u Ciebie nigdzie zmiany tych ustawień na poprawne. To nie jest plugin tylko do samej blokady zmiany ustawień, ale również do wymuszania ich.
#27
Napisano 08.12.2012 14:16
Kiepsko patrzysz, plugin wymusza ustawienia komend i jak gracz zmieni to ustawi spowrotem na te co są w zmiennej.Widziałem, lecz nie widzę u Ciebie nigdzie zmiany tych ustawień na poprawne. To nie jest plugin tylko do samej blokady zmiany ustawień, ale również do wymuszania ich.
IP: 31.186.83.208:27043
#28
Napisano 08.12.2012 14:29
Kiepsko patrzysz, plugin wymusza ustawienia komend i jak gracz zmieni to ustawi spowrotem na te co są w zmiennej.Widziałem, lecz nie widzę u Ciebie nigdzie zmiany tych ustawień na poprawne. To nie jest plugin tylko do samej blokady zmiany ustawień, ale również do wymuszania ich.
Specjalnie dla Ciebie skompilowałem Twój plugin i sprawdziłem.
Rezultat? Paręnaście razy na sekunde plugin wpisuje powyższe komendy graczowi, powodując mega flood w konsoli, nie ustawia żadnych komend, bo po ich zmianie poprostu była wartość ta, którą wpisałem. Poprostu plugin wymuszał wpisywanie u gracza tych 5 komend, bez zmieniania(sama komenda rate, cl_updaterate itd - bez wartości).
Jak plugin może zmienić ustawienia nie podając żadnych wartości? Nie chcę floodować graczom kompy, tylko wymusić raz co spawna komendy i wprowadzić blokadę ich zmian.
#29
Napisano 08.12.2012 17:01
Ja bym zamiast Ham_Spawn użył CmdStart
#include <amxmodx>
#include <fakemeta>
#define PLUGIN "Rate'y + HUDMSG"
#define VERSION "2.0"
#define AUTHOR "Filip / `NN" // + AztekHQS
new static komendy[][] = { "rate", "cl_cmdbackup", "cl_cmdrate", "cl_updaterate", "ex_interp" }
new hud
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_CmdStart, "RealStartCMD")
set_task(120.0, "hudmsg", .flags="b")
hud = CreateHudSyncObj()
}
public RealStartCMD(id, uc_handle) {
if(is_user_connected(id)) client_cmd(id, "%s; %s; %s; %s; %s", komendy[0], komendy[1], komendy[2], komendy[3], komendy[4])
return 2
}
public hudmsg() {
set_hudmessage(255, 100, 10, 0.1, 0.7, 0, 6.0, 9.0, 0.0, 0.0, 2)
ShowSyncHudMsg(0, hud, "Twoj interp zostal ustawiony na 0.01")
}
Komendy ze zmiennej ustawione są cały czas u klienta, jeśli klient zmieni wartość tych komend to i tak nic nie da
Więc blokada komend jest już zbędna
To nie zadziała, wpisujesz same komendy bez wartości
DarkGL to mój autorytet.
skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować
#30
Napisano 08.12.2012 17:30
IP: 31.186.83.208:27043
#31
Napisano 09.12.2012 01:40
#32
Napisano 09.12.2012 10:37
public client_infochanged(id) // wywołuje się jak gracz zmienia nick, team, wartości w configu.
+ funkcja
get_user_info (do pobierania wartości)
(http://forums.allied...ead.php?t=25658)
Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!
Na zlecenie i bez zlecenia zresztą też!
#33
Napisano 09.12.2012 12:24
public client_infochanged(id)
{
new komenda[]
get_user_info(id, komendy[], komenda)
}
Dalej już tego nawet nie próbowałem kończyć, bo wiem, że źle robię..
#34
Napisano 09.12.2012 12:40
public client_infochanged(id){ new updaterate[32] // możliwe, że 5 wystarczy <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/biggrin.png' class='bbc_emoticon' alt=':D' /> new rate[32] // to samo zamiast 32 ;D get_user_info(id, "cl_updaterate", updaterate, 31); get_user_info(id, "rate", rate, 31); client_print(0, print_chat, "Updaterate: %s Rate: %s", updaterate, rate); }Masz już pobrane wartości, niestety chyba tylko to da się pobrać przez get info
Jeżeli rate i updaterate to liczba rzeczywista (całkowita np. 2000) możesz użyć chyba str_to_num, aby porównywać wyniki.
Jeszcze jest:
http://amxx.pl/dokum...ery_client_cvar
Ale nie znam działania, nigdy tego nie używałem, ale podobno można pobrać więcej rzeczy.
Użytkownik HubertTM edytował ten post 09.12.2012 12:41
Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!
Na zlecenie i bez zlecenia zresztą też!
#35
Napisano 09.12.2012 13:24
DarkGL to mój autorytet.
skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować
#36
Napisano 11.12.2012 22:10
#37
Napisano 11.12.2012 23:40
#include <amxmodx>
public plugin_init()
{
register_plugin("spr", "0.1", "K!113r")
register_clcmd("say /spr", "cmd_spr")
}
public cmd_spr(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE;
query_client_cvar(id,"ex_interp","interp");
return PLUGIN_CONTINUE;
}
public interp(id,const cvar[],const value[])
{
client_print(id, print_chat, "Twoj interp: %s", value)
}
Kiedyś patrzyłem co to jest, może ten uproszczony kod Ci pomoże (podstaw swój cvar i zobacz czy pobiera ) (przydać się też może str_to_float() )
DarkGL to mój autorytet.
skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować
#38
Napisano 12.12.2012 09:42
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ę.
#39
Napisano 18.12.2012 17:48
Używając poprostu register_clcmd (póki co bez wersji z tabelą wymienioną wyżej), przy takim kodzie
#include <amxmodx>
#include <hamsandwich>
#include <ColorChat>
#define PLUGIN "Rate'y + HUDMSG"
#define VERSION "2.0"
#define AUTHOR "Filip / `NN"
new hudmsg1;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Spawn, "player", "raty", 1)
set_task(120.0, "hudmsg", _, _, _, "b")
register_cvar("rate_block", "1")
register_clcmd("rate", "BlockCmd")
register_clcmd("cl_cmdbackup", "BlockCmd")
register_clcmd("cl_cmdrate", "BlockCmd")
register_clcmd("cl_updaterate", "BlockCmd")
register_clcmd("ex_interp", "BlockCmd")
hudmsg1 = CreateHudSyncObj();
}
public raty (id)
{
client_cmd( id , "rate 25000" )
client_cmd( id , "cl_cmdbackup 2" )
client_cmd( id , "cl_cmdrate 101" )
client_cmd( id , "cl_updaterate 101" )
client_cmd( id , "ex_interp 0.01" )
}
public hudmsg()
{
set_hudmessage(255, 100, 10, 0.1, 0.7, 0, 6.0, 9.0, 0.0, 0.0, 2)
ShowSyncHudMsg(0, hudmsg1, "Twoj interp zostal ustawiony na 0.01")
}
public BlockCmd(id){
if(get_cvar_num("rate_block") == 1){
ColorChat(id, BLUE, "[rate] ^x01Zmiana ustawien RATE jest ZABLOKOWANA!")
console_print(id, "[rate] Zmiana ustawien RATE jest ZABLOKOWANA!")
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
Nadal można zmienić ustawienia.
Dzięki za query_client_cvar, lecz nie chcę go używać ze względu na to, że ma być on optymalny zarówno dla graczy ns jak i steam.
Użytkownik `NN edytował ten post 18.12.2012 17:50
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych