hlmod.hu
https://hlmod.hu/

Rang rendszer
https://hlmod.hu/viewtopic.php?f=9&t=4171
Oldal: 1 / 2

Szerző:  fear_ezmegmi [2012.04.23. 18:07 ]
Hozzászólás témája:  Rang rendszer

Hogyan lehetne megoldani ,hogy ha egy játékos megöl mondjuk 10 embert akkor Kezdő lesz a rangja ha pedig 20 -at akkor Haladó ha pedig 30 -at akkor profi......
Ezt ,hogyan lehetne plugin formájában megoldani?

Ha valaki tud segíteni akkor Thanx xd

Szerző:  Silent [2012.04.23. 18:28 ]
Hozzászólás témája:  Re: Rang rendszer

Nvaultal. Fogod magad, lehookolod death eventet. Minden egyes alkalommal ha nem öngyilkosság és nem tk volt, hozzáadsz egyet az öléseihez. Csatlakozásnál betöltöd nvaultból, lecsatlakozásnál lemented nvaultba. Példaként veheted az XP- mód tutoriált, abban van nvault. Utána chatet lehookolos és a rangja szerint kiírod.

Szerző:  fear_ezmegmi [2012.04.23. 18:56 ]
Hozzászólás témája:  Re: Rang rendszer

Hát megpróbáltam valamit xd De nem hiszem ,hogy működik. Kijavítanád nekem? :D
Kód:
#include <amxmodx> 
#include <amxmisc>
#include <nvault>

new PlayerXP[33],PlayerLevel[33]
new XP_Kill,XP_Knife,XP_Hs,SaveXP
new g_vault

new const LEVELS[7] = {
0,
10,
30,
50,
70,
160,
500
}

public plugin_init()
{
    register_plugin("Pontok xd", "1.0", "Te")
 
    register_event("DeathMsg", "eDeath", "a")

    SaveXP = register_cvar("SaveXP","1") 

    XP_Kill=register_cvar("XP_per_kill", "20")

    XP_Hs=register_cvar("XP_hs_bonus","20")

    XP_Knife=register_cvar("XP_knife_bonus","20")

    g_vault = nvault_open("pontok")
    register_clcmd("say /pontjaim", "ShowHud")
    register_clcmd("say_team /pontjaim", "ShowHud")
}

public eDeath( )
{

    new attacker = read_data( 1 )

    new iVictim = read_data( 2 )

    new headshot = read_data( 3 )

    new clip, ammo, weapon = get_user_weapon(attacker,clip,ammo); 

    PlayerXP[attacker] += get_pcvar_num(XP_Kill)

   
    if(headshot)
        PlayerXP[attacker] += get_pcvar_num(XP_Hs)

    if(weapon == CSW_KNIFE)
        PlayerXP[attacker] += get_pcvar_num(XP_Knife)

 
     while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
    { 
        client_print(attacker, print_chat, "[Rang rendszer] Grat! Te egy szintet leptel! Uj rangod: %i", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])
     
        PlayerLevel[attacker] += 1 
    }

    ShowHud(attacker)
 
}

public ShowHud(id)
{
    set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0)
    show_hudmessage(id, "Rangod: %i :)",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]])
}

public client_connect(id)
{
    if(get_pcvar_num(SaveXP) == 1)
    {
        LoadData(id)
    }
}

public client_disconnect(id)
{
     if(get_pcvar_num(SaveXP) == 1)
     {
          SaveData(id)
     }
}

public SaveData(id)
{
    new name[32]
    get_user_name(id, name, 31)
 
    new vaultkey[64],vaultdata[256] .
    format(vaultkey,63,"%sRANGOK", name)
    format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])

    nvault_set(g_vault,vaultkey,vaultdata)
    return PLUGIN_CONTINUE
}

public LoadData(id)
{
    new name[32]
    get_user_name(id, name, 31)
    new vaultkey[64],vaultdata[256]

    format(vaultkey,63,"%sRANGOK", name)
    format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
    nvault_get(g_vault,vaultkey,vaultdata,255)
    replace_all(vaultdata, 255, "#", " ")
    new playerxp[32], playerlevel[32]
    parse(vaultdata, playerxp, 31, playerlevel, 31)
    PlayerXP[id] = str_to_num(playerxp)
    PlayerLevel[id] = str_to_num(playerlevel)
    return PLUGIN_CONTINUE
}

Szerző:  IrOn [2012.04.23. 19:04 ]
Hozzászólás témája:  Re: Rang rendszer

mindjárt megírom, csak sz*rok

Szerző:  kiki [2012.04.23. 19:06 ]
Hozzászólás témája:  Re: Rang rendszer

Jézus istenem, ez micsoda?

Szerző:  fear_ezmegmi [2012.04.23. 19:07 ]
Hozzászólás témája:  Re: Rang rendszer

Szólítottál? xD
Egyébként nem tom xd
Unatkoztam aztán össze tákoltam az XP -s tutorial-ból ( kivettem a fajokat xd )
:lol:

Szerző:  IrOn [2012.04.23. 19:25 ]
Hozzászólás témája:  Re: Rang rendszer

pámpárám!

ez nem fogja menteni/se beolvasni az eddigi öléseket, tehát ha reconnectel újrakezdi a számolást
Kód:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new message[192]
new 
alive[11]
new 
strName[191]
new 
strText[191]
new 
maxPlayers
new sayText
new teamInfo

new kills[32];

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("say""HookSayCommands")
    
register_clcmd("say_team""HookTeamSayCommands")
    
    
sayText get_user_msgid ("SayText")
    
teamInfo get_user_msgid ("TeamInfo")
    
maxPlayers get_maxplayers()
    
register_message (sayText"avoid_duplicated")
    
    
register_event"DeathMsg""hahahahalalhahaha""a" );
}

public 
avoid_duplicated (msgIdmsgDestreceiver)
{
    return 
PLUGIN_HANDLED
}

public 
client_connect(id)
    
kills[id] = 0;

public 
hahahahalalhahaha()
{
    new 
killer read_data);
    new 
victim read_data);
    
    if(
killer == victim)
    {
        return 
PLUGIN_HANDLED;
    }

    
kills[killer]++

    
    return 
PLUGIN_CONTINUE;
}

public 
HookSayCommands(id)
{
    
read_args(message191)
    
remove_quotes(message)
    if (
message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message""))
        return 
PLUGIN_CONTINUE

        
    
new name[32]
    
get_user_name (idname31)    
    
    new 
isAlive
    
    
if (is_user_alive (id))
        {
            
isAlive 1
            alive 
"^x01"
        
}
    else
        {
            
isAlive 0
            alive 
"^x01*HALOTT* "
        
}
    
    static 
color[10]
    
    new 
rang[32];
    if(
kills[id] < 10)
        
rang "Rangtalan"
    
else if(kills[id] >= 10 && kills[id] < 20)
        
rang "Kezdo"
    
else if(kills[id] >= 20 && kills[id] < 30)
        
rang "Halado"
    
else if(kills[id] >= 30)
        
rang "Profi"
    
    
//Rang+Name
    
get_user_team (idcolor9)
    
format (strName191"%s^x04[%s]^x03%s"aliverangname)
    
format (strText191"%s"message)
    
format (message191"%s^x01 :  %s"strNamestrText)
    
sendMessage (colorisAlive)
    
    return 
PLUGIN_CONTINUE
}

public 
HookTeamSayCommands(id)
{
    new 
playerTeam get_user_team(id)
    new 
playerTeamName[19]
    
    switch (
playerTeam)
        {
            case 
1:
                
copy (playerTeamName11"Terrorista")
                
            case 
2:
                
copy (playerTeamName18"Zsaru")
                
            default:
                
copy (playerTeamName9"Nezo")
        }
    
    
read_args(message191)
    
remove_quotes(message)
    if (
message[0] == '@' || message[0] == '/' || message[0] == '!' || equal (message""))
        return 
PLUGIN_CONTINUE

        
    
new name[32]
    
get_user_name (idname31)    
    
    new 
isAlive
    
    
if (is_user_alive (id))
        {
            
isAlive 1
            alive 
"^x01"
        
}
    else
        {
            
isAlive 0
            alive 
"^x01*HALOTT* "
        
}
    
    static 
color[10]
    
    new 
rang[32];
    if(
kills[id] < 10)
        
rang "Rangtalan"
    
else if(kills[id] >= 10 && kills[id] < 20)
        
rang "Kezdo"
    
else if(kills[id] >= 20 && kills[id] < 30)
        
rang "Halado"
    
else if(kills[id] >= 30)
        
rang "Profi"
    
    
//Rang+Name
    
get_user_team (idcolor9)
    
format (strName191"%s(%s) ^x04[%s]^x03%s"aliveplayerTeamNamerangname)
    
format (strText191"%s"message)
    
format (message191"%s^x01 :  %s"strNamestrText)
    
sendTeamMessage (colorisAliveplayerTeam)
    
    return 
PLUGIN_CONTINUE
}

public 
sendMessage (color[], alive)
{
    new 
teamName[10]
    
    for (new 
player 1player maxPlayersplayer++)
        {
            if (!
is_user_connected(player))
                continue

            if (
alive && is_user_alive(player) || !alive && !is_user_alive(player))
                {
                    
get_user_team (playerteamName9)    
                    
                    
changeTeamInfo (playercolor)        
                    
                    
writeMessage (playermessage)        
                    
                    
changeTeamInfo (playerteamName)    
                }
        }
}


public 
sendTeamMessage (color[], aliveplayerTeam)
{
    new 
teamName[10]
    
    for (new 
player 1player maxPlayersplayer++)
        {
            if (!
is_user_connected(player))
                continue

            if (
get_user_team(player) == playerTeam)
                {
                    if (
alive && is_user_alive(player) || !alive && !is_user_alive(player))
                        {
                            
get_user_team (playerteamName9)    
                            
                            
changeTeamInfo (playercolor)        
                            
                            
writeMessage (playermessage)        
                            
                            
changeTeamInfo (playerteamName)    
                        }
                }
        }
}


public 
changeTeamInfo (playerteam[])
{
    
message_begin (MSG_ONEteamInfo_player)    
    
write_byte (player)                
    
write_string (team)                
    
message_end()                    
}


public 
writeMessage (playermessage[])
{
    
message_begin (MSG_ONEsayText, {000}, player)    
    
write_byte (player)                    
    
write_string (message)                    
    
message_end ()                        
}
 

Szerző:  fear_ezmegmi [2012.04.23. 19:28 ]
Hozzászólás témája:  Re: Rang rendszer

Köszönöm IrON! :)
Csak még 1 dolgot és békén hagylak: Meg tudnád csinálni ,hogy mentse is? :D

Szerző:  IrOn [2012.04.23. 19:35 ]
Hozzászólás témája:  Re: Rang rendszer

fear_ezmegmi írta:
Köszönöm IrON! :)
Csak még 1 dolgot és békén hagylak: Meg tudnád csinálni ,hogy mentse is? :D

Meg.

Szerző:  fear_ezmegmi [2012.04.23. 19:36 ]
Hozzászólás témája:  Re: Rang rendszer

Akkor megcsinálod nekem? :D
Ha nem vagy igen akkor csináld meg pls xd fontos lenne :P

Oldal: 1 / 2 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/