←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Modyfikacja
Vipek przeróbka

  • +
  • -
Mat! - zdjęcie Mat! 14.10.2012

Witam posiadam plugin vip'a i chciał bym do niego dodać 2 rzeczy które będą się wyświetlały na say'u

1.Dołączona grafika
2.Dołączona grafika


Kod Vip'a:

/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#include <amxmisc>
#include <cstrike>
#include <colorchat>
#include <fakemeta_util>
#define PLUGIN "Paintball VIP"
#define VERSION "1.0.1"
#define AUTHOR "peku33, dodatek by Kaster"
#define VIP_LEVEL ADMIN_LEVEL_H
static const COLOR[] = "^x04";
new gListaViP, gMaxPlayers, gMSGSayText;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
set_task(0.0, "dodaj_hp", _, _, _, "b");
RegisterHam(Ham_Spawn, "player", "event_spawn", 1);
register_event("ResetHUD", "resetModel", "b");
register_clcmd("say /vips","ViPLista");
register_clcmd("say_team /vips","ViPLista");
gListaViP = register_cvar("vip_lista", "1");
gMaxPlayers = get_maxplayers();
gMSGSayText = get_user_msgid("SayText");
  return PLUGIN_CONTINUE;
}
public event_spawn(id)
{
if(is_user_connected(id) && get_user_flags(id) & VIP_LEVEL)
{
  give_item(id, "weapon_hegrenade");
  give_item(id, "weapon_flashbang");
  give_item(id, "weapon_smokegrenade");
  give_item(id, "weapon_smokegrenade");
    give_item(id, "item_thighpack")
  set_user_health(id, 100);
  set_user_gravity(id, 0.7);
}
}
public dodaj_hp()
{
for(new id = 1; id <= 32; id++)
{
  if(is_user_connected(id) && get_user_flags(id) & VIP_LEVEL)
  {
   set_user_health(id, min(200, get_user_health(id) + 0))
  }
}
}

public plugin_precache() {
	    precache_model("models/player/cw1vip_ct/cw1vip_ct.mdl");
	    precache_model("models/player/cw1vip_tt/cw1vip_tt.mdl");
	    precache_model("models/player/vipek_ct/vipek_ct.mdl");
	    precache_model("models/player/vipek_tt/vipek_tt.mdl");
	   
	    return PLUGIN_CONTINUE;
}
public resetModel(id, level, cid) {
  new steamid[32];  /* dopisane */
  get_user_authid(id,steamid,31);  /* dopisane */
	    if (get_user_flags(id) & VIP_LEVEL) {
			    new CsTeams:userTeam = cs_get_user_team(id);
			    if (userTeam == CS_TEAM_T) {
							 
					    cs_set_user_model(id, "cw1vip_tt");
					
			    }
			    else if(userTeam == CS_TEAM_CT) {
					  
					    cs_set_user_model(id, "cw1vip_ct");
					   
			    }
			    else {
					    cs_reset_user_model(id);
			    }
	    }
	    return PLUGIN_CONTINUE;
}
public ViPLista(id)
{
if ( !get_pcvar_num(gListaViP) )
  return PLUGIN_CONTINUE;

new nazwy_vip[33][32];
new message[256];
new count, x, len;

for(new i = 1 ; i <= gMaxPlayers ; i++)
{
  if(is_user_connected(i))
  {
   if(get_user_flags(i) & VIP_LEVEL)
   {
    get_user_name(i, nazwy_vip[count++], 31);
   }
  }
}

len = format(message, 255, "%s ViP'y ONLINE: ",COLOR);
if(count > 0)
{
  for(x = 0 ; x < count ; x++)
  {
   len += format(message[len], 255-len, "%s%s%s ", COLOR, nazwy_vip[x], x < (count-1) ? "^x01, ":"");
   if(len > 96 )
   {
    print_message(id, message);
    len = format(message, 255, "%s ",COLOR);
   }
  }
  print_message(id, message);
}
else
{
  len += format(message[len], 255-len, "Brak ViP'ow Online");
  print_message(id, message);
}
return PLUGIN_HANDLED;
}
print_message(id, msg[])
{
message_begin(MSG_ONE, gMSGSayText, {0,0,0}, id);
write_byte(id);
write_string(msg);
message_end();
}
/* 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 }
*/
Odpowiedz

Gość_21977_* 14.10.2012

set_task(0.0, "dodaj_hp", _, _, _, "b");
:giggle:

if(is_user_connected(id) && get_user_flags(id) & VIP_LEVEL)
Dalej nawet nie sprawdzam błędów, widząc ten pierwszy.

btw.

Dopisz


public client_disconnect(id){
if(get_user_flags(id) & VIP_LEVEL){
new name[32];
get_user_name(id, name, 31);
ColorChat(0, GREEN, "Vipek %s wyszedl.^x03 Dziekujemy za gre na naszym serwerze!", name);
}
}


A odnośnie tego drugiego problemu, napisz, gdzie chcesz to dopisać, oby nie w set_task(0.0,.Flags="b");
Do tego Bardzo ważnych ludzi może być określona liczba, a nie ilość.
Odpowiedz

  • +
  • -
Mat! - zdjęcie Mat! 14.10.2012

Tak żeby działało ;P ty się lepiej znasz więc zdecyduj ;P

I gdzie mam dopisać to co mi zapodałeś ?
Odpowiedz

Gość_21977_* 14.10.2012

Jako funkcję globalną, choćby na samym końcu pluginu

BTW. Czemu to ma służyć i czy nie crashuje / mocno spowalnia Ci serwera?
set_task(0.0, "dodaj_hp", _, _, _, "b");


Ad. 2. Ale to ma być jako spam co np. 120 sekund, na określoną komendę, czy np. po wejściu kogoś na serwer?
Odpowiedz

  • +
  • -
Mat! - zdjęcie Mat! 14.10.2012

Nie na razie żadne crashe nie występują.

2. Po wejściu kogoś na serwer.

Jak możesz to zapodaj mi dokładny kod do kompilacji bo jak ja dodaje to skompilować nie można ;P
Odpowiedz