←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Czy taki zapis jest poprawny

Locked

  • +
  • -
EufooZ's Photo EufooZ 15.03.2011

Witam, jako iż to mój pierwszy plug, chciałbym się spytać, czy taki zapis jest poprawny ?
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <ColorChat>

#define PLUGIN "Resetowanie Statystyk"
#define VERSION "1.0"
#define AUTHOR "PaCzeK"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar("amx_reset","1")
register_clcmd("say /ress", "staty")
register_clcmd("say ress", "staty")
register_clcmd("ress", "staty")
}

public staty(id)
{
if( get_user_flags(id) & ADMIN_IMMUNITY )
{
if(get_cvar_num("amx_reset") == 1){
new szName [32];
get_user_name(id, szName, 31)
client_cmd(id, "amx_cvar csstats_reset 1")
ColorChat(0, RED, "[Staty]^x01 %s^x04 - zresetowal statystyki !", szName)
}
else if(get_cvar_num("amx_reset") == 0){
ColorChat(id, GREEN, "[Staty]^x01 Opcja resetowania statystyk wylaczona !")
}
}
else
{
ColorChat(id, GREEN, "[Staty]^x01 Nie masz uprawnien do uzycia tej komendy !")
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1250\\ deff0\\ deflang1045{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/


Plugin ma na celu resetowanie statystyk tylko i wyłącznie dla osób z immu. Jak widać resztę w pluginie.

Czekam na odpowiedzi.
Quote

GoldeN's Photo GoldeN 15.03.2011

Twój jest dobry, aczkolwiek lepiej zamiast ifów, użyć switch:

#include <amxmodx>
#include <amxmisc>
#include <ColorChat>

new ress_cvar;

public plugin_init() {
register_plugin("Resetowanie Statystyk", "1.0", "PaCzeK")
ress_cvar = register_cvar("amx_reset","1")
register_clcmd("say /ress", "staty")
register_clcmd("say ress", "staty")
register_clcmd("ress", "staty")
}

public staty(id){
if( get_user_flags(id) & ADMIN_IMMUNITY ){
switch(ress_cvar){
case 0: {
ColorChat(id, GREEN, "[Staty]^x01 Opcja resetowania statystyk wylaczona !")
return PLUGIN_HANDLED;
}
case 1:{
new szName [32];
get_user_name(id, szName, 31)
client_cmd(id, "amx_cvar csstats_reset 1")
ColorChat(0, RED, "[Staty]^x01 %s^x04 - zresetowal statystyki !", szName)
return PLUGIN_HANDLED;
}
}
}
else ColorChat(id, GREEN, "[Staty]^x01 Nie masz uprawnien do uzycia tej komendy !")
return PLUGIN_CONTINUE;
}
Quote

  • +
  • -
R3X's Photo R3X 15.03.2011

no dobra zablokowałeś komendę, ale ludzie bez immunitetu w dalszym ciągu mogą zrobić:
amx_cvar csstats_reset 1
ewentualnie
amx_rcon csstats_reset 1
Quote

  • +
  • -
EufooZ's Photo EufooZ 15.03.2011

No dobra, ale jak to zrobią jak to zwykli gracze bez flag.

Mi chodzi tylko o takie coś, uczę się pisać pluginy to po prostu chciałbym spytać się czy dobrze robię :)


A da się tak jak R3X mówi w tym pluginie zrobić tak, aby ta komenda była zablokowana i działała tylko z tymi co jest w pluginie czyli only admin immu ?
Ale zdaje mi się, że to by było grzebać już gdzieś indziej, nie ?

GoldeN
Pewnie lepiej ze switch bo czytałem o tym, lecz tak mi było łatwiej :>
Edited by EufooZ, 15.03.2011 16:29.
Quote
Locked