Plugin Info
DeathMatch V.I.P
v1.1
by DecaK
Thanks to N3u[T]r4L z'bot
---------------------------------------
DeathMatch V.I.P
v1.1
by DecaK
Thanks to N3u[T]r4L z'bot
---------------------------------------
Zbog cega je ovaj plugin poseban?
Ovo je jedan VIP Plugin koji ima nesto sto drugi nemaju, kao sto znate igraci se mnogo 'pale' na VIPa, ovo im omogucava da kada skupe odredjeni broj fragova(default 250), dobiju VIPa sve dok ne izadju sa servera.Plugin je napravljen na ovu foru jer mislim da ce igraci visiti tu po ceo dan samo da dobiju VIPa i da im ostane.Plugin nije prenatrpan, VIP sadrzi veci speed, veci gravity, bonus hp na svakom spawnu(default +15) i vip tag u scoreboardu.Dok igraci ne dobiju VIPa, tu je hud koji broji jos koliko im ubistva fali da dobiju VIPa.Sto je jako bitno, ta ubistva se mere fragovima.Bukvalno, kada igrac skupi 250 fragova u skoru, dobija VIPa.Nisam slikao, ali text izgleda ovako:
Code:
Kills for VIP: [I]<broj>[/I]
Cim ubiju nekog ili restartuju skor, <broj> se menja.Plugin pravi folder koji se nalazi u configs/ folderu, i zove se DM_Vip.Postoje i logovi koji loguju koji igrac je dobio VIPa, njegove informacije i vreme.U tom istom folderu postoji i fajl motd.txt u kom pisete opis VIP Plugina.VIP je stavljen na flag T(ADMIN_LEVEL_H).
Komande u chatu i u konzoli
say /vip - Otvara motd prozor sa vip infom.Podesavanja motd prozora u configs/DM_Vip/motd.txt
amx_givevip - Daje VIPa nekom igracu, dok ne izadje sa servera.Komandu mogu koristiti samo HEAD ADMINI.
Cvarovi
say /vip - Otvara motd prozor sa vip infom.Podesavanja motd prozora u configs/DM_Vip/motd.txt
amx_givevip - Daje VIPa nekom igracu, dok ne izadje sa servera.Komandu mogu koristiti samo HEAD ADMINI.
Cvarovi
Cvarove menjate u fajlu amxx.cfg ! Na kraju fajla su ispisani default cvarovi, samo ih promenite.Cvarovi:
dmvip_gravity 1/0 - VIP gravity upaljeno/ugaseno
dmvip_speed 1/0 - VIP speed upaljeno/ugaseno
dmvip_hp 1/0 - VIP bonus hp upaljeno/ugaseno
dmvip_bonushp <broj> - VIP bonus hp kolicina
dmvip_get_for_frags 1/0 - Igrac dobija VIPa za fragove upaljeno/ugaseno
dmvip_frags need 250 - Koliko je potrebno fragova za VIPa
dmvip_hud_brojac 1/0 - Hud Brojac jos koliko killova za vipa upaljen/ugasen
dmvip_viptag 1/0 - VIP Tag u scoreboardu upaljen/ugasen
dmvip_speed 1/0 - VIP speed upaljeno/ugaseno
dmvip_hp 1/0 - VIP bonus hp upaljeno/ugaseno
dmvip_bonushp <broj> - VIP bonus hp kolicina
dmvip_get_for_frags 1/0 - Igrac dobija VIPa za fragove upaljeno/ugaseno
dmvip_frags need 250 - Koliko je potrebno fragova za VIPa
dmvip_hud_brojac 1/0 - Hud Brojac jos koliko killova za vipa upaljen/ugasen
dmvip_viptag 1/0 - VIP Tag u scoreboardu upaljen/ugasen
PLUGIN JE TESTIRAN I RADI PROVERENO BEZ PROBLEME I NE OBARA SERVER!!!
U sledecoj verziji koja ce biti odradjena za par nedelja, ce biti puno dodataka i apsolutna kontrola nad svim.Uskoro izlazi i moj Special VIP ima daleko veci i jaci sistem od ovog.Sve bugove koje pronadjete, molim vas da ostavite u temi ili posaljite meni u inbox.Hvala![/code]
SMA:
Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#include <engine>
#include <colorchat>
new const VIPFolder[] = "addons/amxmodx/configs/DM_Vip/"
new const Cvarovi[] = "addons/amxmodx/configs/DM_Vip/cvarovi.cfg"
new const Logovi[] = "addons/amxmodx/configs/DM_Vip/logovi.ini"
new const Motd[] = "addons/amxmodx/configs/DM_Vip/motd.txt"
enum
{
SCOREATTRIB_ARG_PLAYERID = 1,
SCOREATTRIB_ARG_FLAGS
};
enum ( <<= 1 )
{
SCOREATTRIB_FLAG_NONE = 0,
SCOREATTRIB_FLAG_DEAD = 1,
SCOREATTRIB_FLAG_BOMB,
SCOREATTRIB_FLAG_VIP
};
new cvar_gravity, cvar_hp, cvar_bonushp, cvar_speed, cvar_getvip, cvar_getvip_frags, cvar_hud, cvar_viptag;
new bool:ivip[33];
new SyncHudObj;
public plugin_init() {
register_plugin("DeathMatch VIP", "1.0", "DecaK")
register_clcmd("say /vip", "OpisVIP")
RegisterHam(Ham_Spawn, "player", "spawnam")
register_event("CurWeapon", "kur", "be", "1=1")
register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
register_concmd("amx_givevip", "DajVipa", ADMIN_RCON, "<nick> - Daje igracu FreeVIPa dok se ne diskonektuje." )
cvar_gravity = register_cvar("dmvip_gravity", "1")
cvar_speed = register_cvar("dmvip_speed", "1")
cvar_hp = register_cvar("dmvip_hp", "1")
cvar_bonushp = register_cvar("dmvip_bonushp", "15")
cvar_getvip = register_cvar("dmvip_get_for_frags", "1")
cvar_getvip_frags = register_cvar("dmvip_frags_need", "250")
cvar_hud = register_cvar("dmvip_hud_brojac", "1")
cvar_viptag = register_cvar("dmvip_viptag", "1")
SyncHudObj = CreateHudSyncObj();
set_task(0.5, "ProveriBre")
}
public ProveriBre(id) {
server_cmd("exec %s", Cvarovi)
server_exec
}
public DajVipa(id) {
if(!get_user_flags(id) & ADMIN_RCON) {
return PLUGIN_HANDLED;
}
new nik[33];
read_argv(1, nik, charsmax(nik))
new player = cmd_target(id, nik, CMDTARGET_ALLOW_SELF | CMDTARGET_NO_BOTS)
if(!is_user_connected(player)) {
client_print(id, print_console, "[DM-Vip] Nepostojaca komanda.")
}
ivip[player] = true;
new headnick[33];
new playernick[33];
get_user_name(id, headnick, 33);
get_user_name(player, playernick, 33);
ColorChat(0, RED, "^4[^3DM-Vip^4]^3 Head %s^1 je dao igracu ^3 %s^1 DM Vipa, do sledeceg izlaska sa servera.", headnick, playernick)
ColorChat(player, RED, "^4[^3DM-Vip^4]^3 Head %s^1 ti je dao DM Vipa, do sledeceg izlaska sa servera.", headnick)
return PLUGIN_HANDLED
}
public plugin_precache() {
if(!dir_exists(VIPFolder)) {
mkdir(VIPFolder)
}
if(!file_exists(Cvarovi)) {
write_file(Cvarovi, " ")
write_file(Cvarovi, ";************************************************")
write_file(Cvarovi, "*********; DM Vip 1.0 by DecaK")
write_file(Cvarovi, "dmvip_gravity ^"1^" //Da li je upaljen VIP Gravity")
write_file(Cvarovi, "dmvip_speed ^"1^" // Da li je upaljen VIP Speed")
write_file(Cvarovi, "dmvip_hp ^"1^" // Da li upaljen VIP Spawn Bonus HP")
write_file(Cvarovi, "dmvip_bonushp ^"15^" // Koliki je VIP Spawn Bonus HP")
write_file(Cvarovi, "dmvip_getvip ^"1^" // Da li radi sistem za dobijanje vipa za fragove")
write_file(Cvarovi, "dmvip_getvip_frags ^"250^" // Koliko mora fragova igrac da ima da bi dobio VIP-a")
write_file(Cvarovi, "dmvip_hud_brojac ^"1^" // Da li je upaljen hud koji broji koliko je jos ostalo ubistva za vipa")
write_file(Cvarovi, "dmvip_viptag ^"1^" // Da li pise VIP u scoreboardu?")
write_file(Cvarovi, ";************************************************")
}
if(!file_exists(Logovi)) {
write_file(Logovi, ";Ovde ce se nalaziti logovi - koji igrac je dobio VIPa i kada")
}
if(!file_exists(Motd)) {
write_file(Motd, ";Ovde pisete opis vip plugina kada igrac otkuca /vip")
}
server_cmd("exec %s", Cvarovi)
server_exec()
return PLUGIN_CONTINUE;
}
public OpisVIP(id) {
show_motd(id, Motd, "Opis VIPA")
}
public kur(id) {
if(ivip[id]) {
set_user_maxspeed(id, get_user_maxspeed(id)+450.0)
}
return PLUGIN_CONTINUE;
}
public spawnam(id) {
if(get_user_frags(id) > get_pcvar_num(cvar_getvip_frags)) {
if(get_pcvar_num(cvar_getvip) > 0) {
new steam[32]
new nik[32]
new vreme[33]
get_time("%d.%m - %H:%M", vreme, 33)
get_user_authid(id, steam, 31)
get_user_name(id, nik, 31)
new tekst[128]
formatex(tekst, 128, "Igrac %s je dobio Free Frag VIPa, %s, njegov SteamID je %s",nik,vreme,steam) // pisemo sta znaci string text
write_file(Logovi, tekst)
ivip[id] = true;
}
return PLUGIN_CONTINUE;
}
if(ivip[id]) {
if(get_pcvar_num(cvar_gravity) > 0) {
set_user_gravity(id, get_user_gravity(id)-0.4)
}
if(get_pcvar_num(cvar_speed) > 0) {
set_user_maxspeed(id, get_user_maxspeed(id)+550.0)
}
if(get_pcvar_num(cvar_hp) > 0) {
set_user_health(id, get_user_health(id)+get_pcvar_num(cvar_bonushp))
}
}
return PLUGIN_CONTINUE;
}
public MessageScoreAttrib( iMsgId, iDest, iReceiver )
{
if( get_pcvar_num( cvar_viptag ) > 0 )
{
new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
if( ivip[iPlayer] )
{
set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
}
}
}
public client_connect(id) {
ivip[id] = false;
if(get_user_flags(id) & ADMIN_LEVEL_H) {
ivip[id] = true;
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public client_putinserver(id) {
set_task(3.0, "HudBrojac", id)
}
public HudBrojac(id) {
if(get_user_frags(id) > get_pcvar_num(cvar_getvip_frags)) {
return PLUGIN_HANDLED;
}
if(get_user_frags(id) == get_pcvar_num(cvar_getvip_frags)) {
return PLUGIN_HANDLED;
}
if(get_pcvar_num(cvar_hud) > 0) {
new ostalo = get_pcvar_num(cvar_getvip_frags)-get_user_frags(id);
set_task(0.1, "HudBrojac", id);
set_hudmessage(255, 0, 0, 0.23, 0.5, 0, 2.0, 3.0)
ShowSyncHudMsg(id, SyncHudObj, "Kills for VIP: %i", ostalo)
}
return PLUGIN_CONTINUE;
}
Attachments
Last edited: