Witam wszystkich!
W tym poradniku pokaże wam jak przerobić perk na klasę bądź klasę na perk.



I. Klasa w oparciu o perk
Wykorzystam do tego perk Predator Mod (poniżej cały kod perku)

Kod:
#include <amxmodx>
#include <codmod>
#include <fun>
#include <engine>

new bool:wykorzystal[33];
new msg_bartime;
new bool:ma_perk[33];

new const perk_name[] = "Predator Mod";
new const perk_desc[] = "Masz ciche kroki oraz po uzyciu masz 6 sekund calkowitej niewidzialnosci";

public plugin_init()
{
register_plugin("Predator Mode", "1.0", "Nieustraszony");

cod_register_perk(perk_name, perk_desc);
msg_bartime = get_user_msgid("BarTime");

register_event("ResetHUD", "ResetHUD", "abe");
}

public cod_perk_enabled(id)
{
    ma_perk[id] = true;
set_user_footsteps(id, 1);
    wykorzystal[id] = false;
}

public cod_perk_disabled(id)
{
    ma_perk[id] = false;
set_user_footsteps(id, 0);
}

public cod_perk_used(id)
{
    if(!is_user_alive(id))
    return;
    
    if(wykorzystal[id])
    {
client_print(id, print_center, "[PREDATOR MODE] Wykorzystales juz perk!");
return;
    }

    wykorzystal[id] = true;
    set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0);
    set_task(6.0, "WylaczGod", id);

    message_begin(MSG_ONE, msg_bartime, _, id);
    write_short(6);
    message_end();
}

public WylaczGod(id)
{
if(!is_user_connected(id))  
return;

set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
}

public ResetHUD(id)
    wykorzystal[id] = false;



1. W kodzie perku szukamy:

Kod:
new const perk_name[] = "Predator Mod";
new const perk_desc[] = "Masz ciche kroki oraz po uzyciu masz 6 sekund calkowitej niewidzialnosci";

i zamieniamy na:

Kod:
new const nazwa[]   = "Predator";
new const opis[]    = "Przez 6 sekund jestes niewidzialny, masz ciche kroki";
new const bronie    = (1<<CSW_FAMAS)|(1<<CSW_USP);
new const zdrowie   = 0;
new const kondycja  = 30;
new const inteligencja = 20;
new const wytrzymalosc = 10;
new const obrazenia = 0;
new const regeneracja = 10;
new const armor = 0;
new const grawitacja = 0;
Oczywiście nazwę, opis, wszystkie statystyki możemy ustawić po swojemu :)

2. Następnie szukamy:

Kod:
cod_register_perk(perk_name, perk_desc);

i zamieniamy na:

Kod:
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, obrazenia, regeneracja, armor, grawitacja);

3. Później musimy znaleźć:

Kod:
public cod_perk_used(id)

i zamieniamy na:

Kod:
public cod_class_skill_used(id)
W naszym perku jest to, ale może się zdarzyć, że tego nie ma. W takiej sytuacji po prostu pomijamy ten punkt.

4. Dalej szukamy:

Kod:
cod_perk_enabled(id)
oraz
Kod:
cod_perk_disabled(id)

i zamieniamy na:

Kod:
cod_class_enabled(id)
oraz
Kod:
cod_class_disabled(id)

5. Na końcu musimy odszukać wszystkie miejsca gdzie pojawia się coś takiego jak:

Kod:
ma_perk[id]

i zamieniamy na:

Kod:
ma_klase[id]



Nasza gotowa klasa będzie wyglądała tak:

Kod:
#include <amxmodx>
#include <codmod>
#include <fun>
#include <engine>

new bool:wykorzystal[33];
new msg_bartime;
new bool:ma_klase[33];

new const nazwa[]   = "Predator";
new const opis[]    = "Przez 6 sekund jestes niewidzialny, masz ciche kroki";
new const bronie    = (1<<CSW_FAMAS)|(1<<CSW_USP);
new const zdrowie   = 0;
new const kondycja  = 30;
new const inteligencja = 20;
new const wytrzymalosc = 10;
new const obrazenia = 0;
new const regeneracja = 10;
new const armor = 0;
new const grawitacja = 0;

public plugin_init()
{
register_plugin("Predator", "1.0", "Nieustraszony");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, obrazenia, regeneracja, armor, grawitacja);
msg_bartime = get_user_msgid("BarTime");

register_event("ResetHUD", "ResetHUD", "abe");
}

public cod_class_enabled(id)
{
   ma_klase[id] = true;
set_user_footsteps(id, 1);
   wykorzystal[id] = false;
}

public cod_class_disabled(id)
{
   ma_klase[id] = false;
set_user_footsteps(id, 0);
}

public cod_class_skill_used(id)
{
   if(!is_user_alive(id))
   return;
  
   if(wykorzystal[id])
   {
client_print(id, print_center, "[PREDATOR] Wykorzystales juz perk!");
return;
   }

   wykorzystal[id] = true;
   set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0);
   set_task(6.0, "WylaczGod", id);

   message_begin(MSG_ONE, msg_bartime, _, id);
   write_short(6);
   message_end();
}

public WylaczGod(id)
{
if(!is_user_connected(id))  
return;

set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
}

public ResetHUD(id)
   wykorzystal[id] = false;



II. Perk w oparciu o klase
Wykorzystam do tego klase Shadow (poniżej cały kod klasy)

Kod:
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>

new ma_klase[33];
new CT_Skins[4][] = {"sas","gsg9","urban","gign"};
new Terro_Skins[4][] = {"arctic","leet","guerilla","terror"};

new const nazwa[]   = "Shadow";
new const opis[]    = "Gdy sie nie rusza jest niewidzialny | 40/255 |, posiada ubranie wroga, ciche kroki";
new const bronie    = (1<<CSW_M4A1)|(1<<CSW_DEAGLE);
new const zdrowie   = 10;
new const kondycja  = 20;
new const inteligencja = 0;
new const wytrzymalosc = 20;
new const obrazenia = 0;
new const regeneracja = 0;
new const armor = 10;
new const grawitacja = 0;
    
public plugin_init()
{
register_plugin("Shadow", "1.0", "Nieustraszony");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, obrazenia, regeneracja, armor, grawitacja);
register_forward(FM_CmdStart, "CmdStart");
}


public cod_class_enabled(id)
{
ma_klase[id] = true;
ZmienUbranie(id, 0);
}

public cod_class_disabled(id)
{
ma_klase[id] = false;
ZmienUbranie(id, 1);
set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
}

public CmdStart(id, uc)

{
    if(!is_user_alive(id))
        return FMRES_IGNORED;
    
    if(ma_klase[id])
    {
        new Float:fmove, Float:smove;
        get_uc(uc, UC_ForwardMove, fmove);
        get_uc(uc, UC_SideMove, smove);
        if(fmove == 0.0 && smove == 0.0)
            set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 40);
        else
            set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
    }
    return FMRES_IGNORED;
}

public ZmienUbranie(id,reset)

{
    if (!is_user_connected(id))
        return PLUGIN_CONTINUE;

    if (reset)
        cs_reset_user_model(id);
    else
    {
        new num = random_num(0,3);
        cs_set_user_model(id, (get_user_team(id) == 1)? CT_Skins[num]: Terro_Skins[num]);
    }
    return PLUGIN_CONTINUE;
}



1. W kodzie klasy szukamy:

Kod:
new const nazwa[]   = "Shadow";
new const opis[]    = "Gdy sie nie rusza jest niewidzialny | 40/255 |, posiada ubranie wroga, ciche kroki";
new const bronie    = (1<<CSW_M4A1)|(1<<CSW_DEAGLE);
new const zdrowie   = 10;
new const kondycja  = 20;
new const inteligencja = 0;
new const wytrzymalosc = 20;
new const obrazenia = 0;
new const regeneracja = 0;
new const armor = 10;
new const grawitacja = 0;

i zamieniamy na:

Kod:
new const perk_name[] = "Shadow";
new const perk_desc[] = "Gdy sie nie ruszasz jestes niewidzialny, posiadasz ubranie wroga";
Oczywiście nazwę, opis możemy ustawić po swojemu :)

2. Następnie szukamy:

Kod:
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc, obrazenia, regeneracja, armor, grawitacja);

i zamieniamy na:

Kod:
cod_register_perk(perk_name, perk_desc);

3. Później musimy znaleźć:

Kod:
public cod_class_skill_used(id)

i zamieniamy na:

Kod:
public cod_perk_used(id)
W przypadku naszej klasy tego nie ma więc pomijamy.

4. Dalej szukamy:

Kod:
cod_class_enabled(id)
oraz
Kod:
cod_class_disabled(id)

i zamieniamy na:

Kod:
cod_perk_enabled(id)
oraz
Kod:
cod_perk_disabled(id)

5. Na końcu musimy odszukać wszystkie miejsca gdzie pojawia się coś takiego jak:

Kod:
ma_klase[id]

i zamieniamy na:

Kod:
ma_perk[id]



Nasz gotowy perk będzie wyglądał tak:

Kod:
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>

new ma_perk[33];
new CT_Skins[4][] = {"sas","gsg9","urban","gign"};
new Terro_Skins[4][] = {"arctic","leet","guerilla","terror"};

new const perk_name[] = "Shadow";
new const perk_desc[]    = "Gdy sie nie ruszasz jestes niewidzialny | 40/255 |, posiadasz ubranie wroga, ciche kroki";
    
public plugin_init()
{
register_plugin("Shadow", "1.0", "Nieustraszony");

cod_register_perk(perk_name, perk_desc);
register_forward(FM_CmdStart, "CmdStart");
}


public cod_perk_enabled(id)
{
ma_perk[id] = true;
ZmienUbranie(id, 0);
}

public cod_perk_disabled(id)
{
ma_perk[id] = false;
ZmienUbranie(id, 1);
set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
}

public CmdStart(id, uc)

{
    if(!is_user_alive(id))
        return FMRES_IGNORED;
    
    if(ma_klase[id])
    {
        new Float:fmove, Float:smove;
        get_uc(uc, UC_ForwardMove, fmove);
        get_uc(uc, UC_SideMove, smove);
        if(fmove == 0.0 && smove == 0.0)
            set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 40);
        else
            set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
    }
    return FMRES_IGNORED;
}

public ZmienUbranie(id,reset)

{
    if (!is_user_connected(id))
        return PLUGIN_CONTINUE;

    if (reset)
        cs_reset_user_model(id);
    else
    {
        new num = random_num(0,3);
        cs_set_user_model(id, (get_user_team(id) == 1)? CT_Skins[num]: Terro_Skins[num]);
    }
    return PLUGIN_CONTINUE;
}



Poradnik stworzony przez Nieustraszony'ego dla NaFarcie.pl
Zakaz kopiowania i rozpowszechniania bez wiedzy autora!