Chcę każdemu przedstawić dobrą pomoc w przerabianiu klas ręcznie.
Więc let's go
Jak chcemy dodać 1/x z broni to tak :
Spoiler
Pod:
dodajemy:
Szukamy:
Dodajemy:
I na samym końcu dodajemy:
#include <hamsandwich>
dodajemy:
#define DMG_BULLET (1<<1)
Szukamy:
public plugin_init()
Dodajemy:
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
I na samym końcu dodajemy:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_klase[idattacker])
return HAM_IGNORED;
if(!(damagebits & DMG_BULLET))
return HAM_IGNORED;
if(get_user_weapon(idattacker) == CSW_DEAGLE && random_num(1,7) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/Edycja:
Spoiler
Szukamy:
i zamieniamy z jakiej broni ma być 1/x na zabicie natychmiastowe
Szukamy:
I tutaj ustawiamy ile ma być 1/x na zabicie
CSW_DEAGLE
i zamieniamy z jakiej broni ma być 1/x na zabicie natychmiastowe
Szukamy:
random_num(1,7
I tutaj ustawiamy ile ma być 1/x na zabicie
NIEWIDZIALNOSC
Spoiler
Szukamy:
Dodajemy:
Oraz Szukamy:
Dodajemy:
public cod_class_enabled(id)
Dodajemy:
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 200);
Oraz Szukamy:
public cod_class_disabled(id)
Dodajemy:
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
Edycja:
Spoiler
Normalna Niewidzialność jest 255 a żeby była niższa to zmieniamy:
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 200);
MULTIJUMPERY
Spoiler
Szukamy:
Dodajemy:
Na samym dole w:
Dodajemy:
Oraz na samym dole dodajemy:
new const wytrzymalosc = 0;
Dodajemy:
new skoki[33];
Na samym dole w:
public plugin_init()
Dodajemy:
register_forward(FM_CmdStart, "fwCmdStart_MultiJump");
Oraz na samym dole dodajemy:
public fwCmdStart_MultiJump(id, uc_handle)
{
if(!is_user_alive(id) || !ma_klase[id])
return FMRES_IGNORED;
new flags = pev(id, pev_flags);
if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id])
{
skoki[id]--;
new Float:velocity[3];
pev(id, pev_velocity,velocity);
velocity[2] = random_float(265.0,285.0);
set_pev(id, pev_velocity,velocity);
}
else if(flags & FL_ONGROUND)
skoki[id] = 2;
return FMRES_IGNORED;
}Edycja:
Spoiler
Żeby zmniejszyć lub powiększyć skoki to musimy zmienić tutaj
skoki[id] = 2;
Wyrzucenie Broni 1/x
Spoiler
Szukamy:
na dole dodajemy:
Oraz na samym dole klasy dodajemy:
public plugin_init()
na dole dodajemy:
RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");
Oraz na samym dole klasy dodajemy:
public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){
if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 4) != 1 )
return HAM_IGNORED;
cs_set_user_armor(this, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(this) + 1));
return HAM_HANDLED;
}Edycja:
Spoiler
Zeby zmienić 1/x na wyrzucenie broni zmieniamy tutaj
random_num(1, 4)
Natychmiastowe Zabicie z noza
Spoiler
Szukamy:
na dole dodajemy:
Oraz na samym dole klasy dodajemy:
public plugin_init()
na dole dodajemy:
RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenCios");
Oraz na samym dole klasy dodajemy:
public fwTakeDamage_JedenCios(id, ent, attacker)
{
if(is_user_alive(attacker) && ma_klase[attacker] && get_user_weapon(attacker) == CSW_KNIFE)
{
cs_set_user_armor(id, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(id) + 1));
return HAM_HANDLED;
}
return HAM_IGNORED;
}

Dodatki SourceMod














