Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <cstrike>
- #include <fun>
- #include <hamsandwich>
- #include <cs_player_models_api>
- new Array:g_Array, bool:g_Vip[33], g_Hudmsg;
- new const g_Langcmd[][]={"say /vips","say_team /vips","say /vipy","say_team /vipy"};
- new const gModelVipCT[] = "vipctsail";
- new const gModelVipCTPobieranie[] = "models/player/vipctsail/vipctsail.mdl";
- new const gModelVipTT[] = "vipttsail";
- new const gModelVipTTPobieranie[] = "models/player/vipttsail/vipttsail.mdl";
- new const gModelVipTTPobieranieTxt[] = "models/player/vipttsail/vipttsailT.mdl";
- public plugin_init(){
- register_plugin("VIP Ultimate", "12.3.0.2", "benio101 & speedkill");
- RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
- register_event("DeathMsg", "DeathMsg", "a");
- register_event("ResetHUD", "fwSpawnvip", "b")
- register_message(get_user_msgid("ScoreAttrib"), "VipStatus");
- g_Array=ArrayCreate(64,32);
- for(new i;i<sizeof g_Langcmd;i++){
- register_clcmd(g_Langcmd[i], "ShowVips");
- }
- register_clcmd("say /vip", "ShowMotd");
- register_message(get_user_msgid("SayText"),"handleSayText");
- g_Hudmsg=CreateHudSyncObj();
- }
- public plugin_precache()
- {
- precache_model(gModelVipCTPobieranie);
- precache_model(gModelVipTTPobieranie);
- precache_model(gModelVipTTPobieranieTxt);
- }
- public client_authorized(id){
- if(get_user_flags(id) & 262144 == 262144){
- client_authorized_vip(id);
- }
- }
- public client_authorized_vip(id){
- g_Vip[id]=true;
- new g_Name[64];
- get_user_name(id,g_Name,charsmax(g_Name));
- new g_Size = ArraySize(g_Array);
- new szName[64];
- for(new i = 0; i < g_Size; i++){
- ArrayGetString(g_Array, i, szName, charsmax(szName));
- if(equal(g_Name, szName)){
- return 0;
- }
- }
- ArrayPushString(g_Array,g_Name);
- set_hudmessage(24, 190, 220, 0.25, 0.2, 0, 6.0, 6.0);
- ShowSyncHudMsg(0, g_Hudmsg, "Vip %s wbija na serwer !",g_Name);
- return PLUGIN_CONTINUE;
- }
- public client_disconnect(id){
- if(g_Vip[id]){
- client_disconnect_vip(id);
- }
- }
- public client_disconnect_vip(id){
- g_Vip[id]=false;
- new Name[64];
- get_user_name(id,Name,charsmax(Name));
- new g_Size = ArraySize(g_Array);
- new g_Name[64];
- for(new i = 0; i < g_Size; i++){
- ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
- if(equal(g_Name,Name)){
- ArrayDeleteItem(g_Array,i);
- break;
- }
- }
- }
- public fwSpawnvip(id)
- {
- if ( !is_user_alive(id) )
- return HAM_IGNORED;
- new CsTeams:userTeam = cs_get_user_team(id);
- if(get_user_flags(id) & ADMIN_LEVEL_G)
- {
- if (userTeam == CS_TEAM_T)
- {
- cs_set_player_model(id, gModelVipTT);
- }
- else if(userTeam == CS_TEAM_CT)
- {
- cs_set_player_model(id, gModelVipCT);
- }
- else
- cs_reset_player_model(id)
- }
- return HAM_IGNORED;
- }
- public SpawnedEventPre(id){
- if(g_Vip[id]){
- if(is_user_alive(id)){
- SpawnedEventPreVip(id);
- }
- }
- }
- public SpawnedEventPreVip(id){
- set_user_health(id,110);
- }
- public DeathMsg(){
- new killer=read_data(1);
- new victim=read_data(2);
- if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){
- DeathMsgVip(killer,victim,read_data(3));
- }
- }
- public DeathMsgVip(kid,vid,hs){
- set_user_health(kid, min(get_user_health(kid)+(hs?15:10),120));
- }
- public VipStatus(){
- new id=get_msg_arg_int(1);
- if(is_user_alive(id) && g_Vip[id]){
- set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2)|4);
- }
- }
- public ShowVips(id){
- return PLUGIN_CONTINUE;
- }
- public client_infochanged(id){
- if(g_Vip[id]){
- new szName[64];
- get_user_info(id,"name",szName,charsmax(szName));
- new Name[64];
- get_user_name(id,Name,charsmax(Name));
- if(!equal(szName,Name)){
- ArrayPushString(g_Array,szName);
- new g_Size=ArraySize(g_Array);
- new g_Name[64];
- for(new i = 0; i < g_Size; i++){
- ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
- if(equal(g_Name,Name)){
- ArrayDeleteItem(g_Array,i);
- break;
- }
- }
- }
- }
- }
- public plugin_end(){
- ArrayDestroy(g_Array);
- }
- public ShowMotd(id){
- show_motd(id, "vip.txt", "Informacje o vipie");
- }
- public handleSayText(msgId,msgDest,msgEnt){
- new id = get_msg_arg_int(1);
- if(is_user_connected(id) && g_Vip[id]){
- new szTmp[192], szTmp2[192];
- get_msg_arg_string(2, szTmp, charsmax(szTmp));
- new szPrefix[64] = "^x04[VIP]";
- if(!equal(szTmp,"#Cstrike_Chat_All")){
- add(szTmp2, charsmax(szTmp2), "^x01");
- add(szTmp2, charsmax(szTmp2), szPrefix);
- add(szTmp2, charsmax(szTmp2), " ");
- add(szTmp2, charsmax(szTmp2), szTmp);
- }
- else{
- new szPlayerName[64];
- get_user_name(id, szPlayerName, charsmax(szPlayerName));
- get_msg_arg_string(4, szTmp, charsmax(szTmp)); //4. argument zawiera tre�� wys�anej wiadomo�ci
- set_msg_arg_string(4, ""); //Musimy go wyzerowa�, gdy� gra wykorzysta wiadomo�� podw�jnie co mo�e skutkowa� crash'em 191+ znak�w.
- add(szTmp2, charsmax(szTmp2), "^x01");
- add(szTmp2, charsmax(szTmp2), szPrefix);
- add(szTmp2, charsmax(szTmp2), "^x03 ");
- add(szTmp2, charsmax(szTmp2), szPlayerName);
- add(szTmp2, charsmax(szTmp2), "^x01 : ");
- add(szTmp2, charsmax(szTmp2), szTmp)
- }
- set_msg_arg_string(2, szTmp2);
- }
- return PLUGIN_CONTINUE;
- }
- /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
- *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement