Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

Request modify VIP Ranks


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hi guys , I have a VIP plugin on my server , when you write /beneficii it will show you VIP ranks , but it shows every rank twice instead of once.

https://imgur.com/a/eV9whAz

I want it to show every rank just once

That's the plugin

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <fun>
#include <cstrike>
#include <hamsandwich>

#define PLUGIN "VIP Benefits"
#define VERSION "0.9"

//#define USING_CREDITS - Scoateti comentariile in caz ca vreti sa primiti credite per kill

// Aici va puneti nativele cum le aveti voi
#if defined USING_CREDITS
    
native set_user_credits(idammount);
    
native get_user_credits(id);
#endif

enum eData {
    
Name[32],
    
Flags,
    
SpawnHP,
    
SpawnAP,
    
MoneyKill,
    
HpKill
    
ApKill,
    
Jumps
}

new 
g_iJumpsNum[33], g_iMaxJumps[33];
new 
bool:g_bIsJumping[33];

new 
bool:g_bHaveBenefits[33];
new 
g_iBenefitsNum 0;

new Array:
g_aBenefits;
public 
plugin_init()
{
    
register_plugin(PLUGINVERSION"FaTzZu" );
    
    
register_cvar("fr_benefits"VERSIONFCVAR_SERVER|FCVAR_SPONLY);
    
    
g_aBenefits ArrayCreate(eData);
    
    
RegisterHam(Ham_Spawn"player""HamPlayerSpawn"1);
    
RegisterHam(Ham_Player_Jump"player""hamPlayerJump"0)
    
    
register_event("DeathMsg""evDeathMsg""a");
    
    
register_clcmd("say /vips""cmdShowBenefits");
    
register_clcmd("say /beneficii""cmdShowRankBenefits");
    
    
set_task(120.0"taskShowMessage"___"b");
}
/* Plugin cfg */
public plugin_cfg()
{
    new 
szLineData[128], szName[32], szFlags[32], szSpawnHP[8], szSpawnAP[8], szMoneyPerKill[8], szHpPerKill[8], szApPerKill[8], szJumpsNum[8];
    new 
aData[eData]
    new 
szConfigsDir[128];
    
get_configsdir(szConfigsDircharsmax(szConfigsDir));
    
add(szConfigsDircharsmax(szConfigsDir), "/benefits.ini");
    
    if(!
file_exists(szConfigsDir))
    {
        
write_file(szConfigsDir";Numele flagului        Flagul            HP Spawn    AP Spawn    Money per kill        HP per Kill    Armor per Kill        Numar sarituri (1 = No multijump)");
        
write_file(szConfigsDir";Exemplu:");
        
write_file(szConfigsDir";^"VIP Diamond^"        ^"bcdefghijkt^"        ^"125^"        ^"150^"        ^"2000^"        ^"25^"        ^"50^"            ^"2^"");
    }
    
    new 
fopen(szConfigsDir"rt");
    if(!
f)
        return;
    
    while(!
feof(f))
    {
        
fgets(fszLineDatacharsmax(szLineData));
        
        if(
szLineData[0] == ';' || !szLineData[0]) 
            continue;
        
        
parse(szLineDataszNamecharsmax(szName), szFlagscharsmax(szFlags), szSpawnHPcharsmax(szSpawnHP), szSpawnAPcharsmax(szSpawnAP), szMoneyPerKillcharsmax(szMoneyPerKill), szHpPerKillcharsmax(szHpPerKill), szApPerKillcharsmax(szApPerKill), szJumpsNumcharsmax(szJumpsNum));
        
        
copy(aData[Name], charsmax(aData[Name]), szName);
        
aData[Flags] = read_flags(szFlags);
        
aData[SpawnHP] = str_to_num(szSpawnHP);
        
aData[SpawnAP] = str_to_num(szSpawnAP);
        
aData[MoneyKill] = str_to_num(szMoneyPerKill);
        
aData[HpKill] = str_to_num(szHpPerKill);
        
aData[ApKill] = str_to_num(szApPerKill);
        
        if(!
str_to_num(szJumpsNum))
            
aData[Jumps] = 1;
        else
            
aData[Jumps] = str_to_num(szJumpsNum);
        
        
ArrayPushArray(g_aBenefitsaData);
        
g_iBenefitsNum++;
    }
}
/* When client join to server */
public client_putinserver(id)
{
    new 
aData[eData];
    
    
g_bHaveBenefits[id] = false;
    
g_bIsJumping[id] = false;
    
g_iJumpsNum[id] = 0;
    
g_iMaxJumps[id] = 1
    
    for (new 
ig_iBenefitsNumi++)
    {
        
ArrayGetArray(g_aBenefitsiaData)
        
        if(
get_user_flags(id) == aData[Flags])
        {
            
g_bHaveBenefits[id] = true;
            
g_iMaxJumps[id] = aData[Jumps];
            break;
        }
    }    
}
/* Player Spawn ( Hamsandwich ) */
public HamPlayerSpawn(id)
{
    if(!
is_user_alive(id) || !g_bHaveBenefits[id])
        return;
    
    new 
aData[eData];
    
    for (new 
ig_iBenefitsNumi++)
    {
        
ArrayGetArray(g_aBenefitsiaData);
        
        if(
get_user_flags(id) == aData[Flags])
        {
            if(
aData[SpawnHP] > 0)
                
set_user_health(idaData[SpawnHP]);
            
            if(
aData[SpawnAP] > 0)
                
set_user_armor(idaData[SpawnAP]);
            
            break;
        }
    }
}
/* Event Death */
public evDeathMsg( )
{
    new 
iKiller read_data(1);
    new 
iVictim read_data(2);
    
    if(
iKiller == iVictim || !is_user_alive(iKiller) || !g_bHaveBenefits[iKiller])
        return;
    
    new 
aData[eData];
    
    for (new 
ig_iBenefitsNumi++)
    {
        
ArrayGetArray(g_aBenefitsiaData);
        
        if(
get_user_flags(iKiller) == aData[Flags])
        {
            
#if defined USING_CREDITS
                
set_user_credits(iKillerget_user_credits(iKiller) + aData[MoneyKill]);
            
#else
                
cs_set_user_money(iKillercs_get_user_money(iKiller) + aData[MoneyKill]);
            
#endif
            
            
set_user_health(iKillerget_user_health(iKiller) + aData[HpKill]);
            
set_user_armor(iKillerget_user_armor(iKiller) + aData[ApKill]);
            
            break;
        }
    }
}
/* Multijump - H.RED.ZONE Code */
public hamPlayerJump(id)
{
    if(!
is_user_alive(id)) 
    {
        return 
HAM_HANDLED;
    }
    
    if( 
pevidpev_flags ) & FL_WATERJUMP || pev(idpev_waterlevel) >= || !(get_pdata_int(id246) & IN_JUMP) )
    {
        return 
HAM_IGNORED
    
}
    
    if(
pevidpev_flags ) & FL_ONGROUND
    {
        
g_iJumpsNumid ] = 0;
        return 
HAM_IGNORED
    
}
    
    if( 
get_pdata_float(id251) < 500 && ++g_iJumpsNum[id] < g_iMaxJumps[id] ) 
    {
        new 
Float:fVelocity];
        
pevidpev_velocityfVelocity );
        
fVelocity] = 268.328157;
        
set_pevidpev_velocityfVelocity );
        
        return 
HAM_HANDLED
    
}
    
    return 
HAM_IGNORED    
}
/* Show Benefits Ranks */
public cmdShowRankBenefits(id)
{
    new 
menuszText[40], aData[eData];
    
menu menu_create("\w[ \yFurien Benefits \w] \rVIP's Ranks""benefitsMenuHandler");
    
    for (new 
ig_iBenefitsNumi++)
    {
        
ArrayGetArray(g_aBenefitsiaData);
        
        
formatex(szTextcharsmax(szText), "\y%s %s"aData[Name], get_user_flags(id) == aData[Flags] ? "\r*" "");
        
menu_additem(menuszText);
    }
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
menu_display(idmenu0);
}
public 
benefitsMenuHandler(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    
showDetailsMenu(iditem);
    
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;    
}
/* Show Benefits Ranks Details  */
public showDetailsMenu(iditem)
{
    new 
menuszText[64], aData[eData];
    
ArrayGetArray(g_aBenefitsitemaData);
    
    
formatex(szTextcharsmax(szText), "\w[ \yFurien Benefits \w] \r%s"aData[Name]);
    
menu menu_create(szText"detailsMenuHandler");
    
    
formatex(szTextcharsmax(szText), "\yHP Spawn: \r%d"aData[SpawnHP]);
    
menu_additem(menuszText);
    
    
formatex(szTextcharsmax(szText), "\yAP Spawn: \r%d"aData[SpawnAP]);
    
menu_additem(menuszText);
    
    
#if defined USING_CREDITS
        
formatex(szTextcharsmax(szText), "\yMoney per kill: \r%d \r$"aData[MoneyKill]);
        
menu_additem(menuszText);
    
#else
        
formatex(szTextcharsmax(szText), "\yCredits per kill: \r%d \r$"aData[MoneyKill]);
        
menu_additem(menuszText);    
    
#endif
    
    
formatex(szTextcharsmax(szText), "\yHP per kill: \r%d"aData[HpKill]);
    
menu_additem(menuszText);
    
    
formatex(szTextcharsmax(szText), "\yAP per kill: \r%d"aData[ApKill]);
    
menu_additem(menuszText);
    
    if(
aData[Jumps] > 1)
        
formatex(szTextcharsmax(szText), "\yMultijump: \rx%d"aData[Jumps]);
    else
        
formatex(szTextcharsmax(szText), "\yMultijump: \dNO");
    
menu_additem(menuszText);    
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
menu_display(idmenu0);
}
public 
detailsMenuHandler(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
cmdShowRankBenefits(id)
        return 
PLUGIN_HANDLED;
    }
    
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;    
}
/* Show users with benefits */
public cmdShowBenefits(id)
{
    new 
iPlayers[32], iNumszMessage[128], contor;
    
get_players(iPlayersiNum);
    
    
formatex(szMessagecharsmax(szMessage), "!nBenefits ON: ");
    for(new 
i;i<iNum;i++)
    {
        new 
iPlayers[i];
        if(
g_bHaveBenefits[x]) 
        {
            new 
szName[32], szMsg[128];
            
get_user_name(xszNamecharsmax(szName));
            
formatex(szMsgcharsmax(szMsg), "!g%s!n,"szName);
            
add(szMessagecharsmax(szMessage), szMsg);
            
contor++;
        }
    }
    if(
contor)
    {
        
szMessage[strlen(szMessage)-1] = '.';
        
ColorChat(idszMessage);
    }
    else 
ColorChat(id"Nu sunt jucatori !gON !ncu !gbeneficii !npe server.");
}
/* V-as ruga sa pastrati mesajul :) */
public taskShowMessage()
{
    
ColorChat(0"!g[BENEFITS]!nAcest server utilizeaza !g%s !nversiunea !g%s !nby !gBLACK.FURIEN.RO !n( !gGhimpe !n) ."PLUGINVERSION)
}
/* Colorchat Stock */
stock ColorChat(const id,const input[], any:...) 
{
    new 
iNum 1iPlayers[32];
    static 
szMessage[191];
    
vformat(szMessagecharsmax(szMessage),input3);
    
    
replace_all(szMessagecharsmax(szMessage), "!g""^4");
    
replace_all(szMessagecharsmax(szMessage), "!n""^1");
    
replace_all(szMessagecharsmax(szMessage), "!t""^3");
    
    if(
idiPlayers[0] = id
    
else get_players(iPlayersiNum"ch");
    
    for(new 
0iNumi++) 
    {
        if(
is_user_connected(iPlayers[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _iPlayers[i]);
            
write_byte(iPlayers[i]);
            
write_string(szMessage);
            
message_end();
        }
    }
}
/* Plugin END */
public plugin_end()
{
    
ArrayDestroy(g_aBenefits);


Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

×
×
  • Dodaj nową pozycję...