Witam.
Mam problem ze zrobieniem kilku klas do CodMod'a. Nie ma co się rozpisywać dlatego napiszę czego nie potrafię zrobić.
1. Dodanie do klasy nieskończonej amunicji na deagle.
Moja praca:
Spoiler
public CurWeapon(id)
{
if(get_user_weapon(id) == CSW_DEAGLE)
return;
set_user_clip(id, 2);
}
stock set_user_clip(id, ammo)
{
new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
get_weaponname(weapon, weaponname, 31);
while ((weaponid = engfunc(EngFunc_FindEntityByString, weaponid, "classname", weaponname)) != 0)
if (pev(weaponid, pev_owner) == id)
{
set_pdata_int(weaponid, 51, ammo, 4);
return weaponid;
}
return 0;
}
2. Dodanie klasie zrespienia sie po zabiciu w szansach 1/3.
Kod z perku Morfina:
Spoiler
/* Plugin generated by AMXX -Studio */
#include <amxmodx>
#include <hamsandwich>
#include <codmod>
#define ZADANIE_WSKRZES 6240
new const perk_name[] = "Morfina";
new const perk_desc[] = "Masz 1/LW szans na odrodzenie sie po smierci";
new wartosc_perku[33];
new bool:ma_perk[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "QTM_Peyote");
cod_register_perk(perk_name, perk_desc, 2, 4);
RegisterHam(Ham_Killed, "player", "Killed", 1);
}
public cod_perk_enabled(id, wartosc)
{
wartosc_perku[id] = wartosc;
ma_perk[id] = true;
}
public cod_perk_disabled(id)
ma_perk[id] = false;
public Killed(id)
{
if(ma_perk[id] && random_num(1, wartosc_perku[id]) == 1)
set_task(0.1, "Wskrzes", id+ZADANIE_WSKRZES);
}
public Wskrzes(id)
ExecuteHamB(Ham_CS_RoundRespawn, id-ZADANIE_WSKRZES);
3. Wieksza szybkosc klasy na nozu.
W tym przypadku nie mam nic.
4. Podwojny skok dla klasy, ale mysle ze z tym sobie dam rade.
5. Odbijanie pociskow przez klase w sznasach 1/6.
Kod perku.
Spoiler
/* Plugin generated by AMXX -Studio */
#include <amxmodx>
#include <hamsandwich>
#include <codmod>
new const perk_name[] = "Pancerz Neomexowy";
new const perk_desc[] = "Masz 1/LW szans na odbicie pocisku";
new bool:ma_perk[33];
new wartosc_perku[33];
public plugin_init()
{
register_plugin(perk_name, "1.0", "QTM_Peyote");
cod_register_perk(perk_name, perk_desc, 3, 5);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}
public cod_perk_enabled(id, wartosc)
{
ma_perk[id] = true;
wartosc_perku[id] = wartosc;
}
public cod_perk_disabled(id)
ma_perk[id] = false;
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_perk[this] || random_num(1, wartosc_perku[this]) != 1)
return HAM_IGNORED;
cod_inflict_damage(this, idattacker, damage, 0.0, idinflictor, damagebits);
return HAM_SUPERCEDE;
}
/* AMXX -Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
6. Leczenie sie klasy o 10hp co 10sekund.
Za każdą pomoc bardzo dziękuję.