Jaki jest KOD na 1/1 z scouta ?
NoSleep
03.08.2014
Pierw trzeba mieć klasę do Cod moda A nie ściągam cudzych tylko robię swoje no znaczy próbuje jak bym znał kod to bym robił
Split
03.08.2014
po includach dodajesz
#define DMG_BULLET (1<<1)
w plugin init dodajesz:
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
na koniec pluginu:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!(damagebits & DMG_BULLET)) return HAM_IGNORED; new weapon = get_user_weapon(idattacker); if((weapon == CSW_SCOUT && !random(1))) damage = get_user_health(this)-damage+1.0; cod_inflict_damage(idattacker, this, damage, 0.0, idinflictor, damagebits); return HAM_IGNORED; }
Edited by e-Skill, 03.08.2014 00:49.
kakus002 03.08.2014
ten będzie lepszy : ]
Do includów dodajesz:
#include <hamsandwich> #include <fakemeta>
Do plugin_init:
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
i na koniec sma:
Edited by kakus002, 03.08.2014 01:02.
NoSleep
03.08.2014
ten będzie lepszy : ]
Do includów dodajesz:
#include <hamsandwich> #include <fakemeta>Do plugin_init:
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");i na koniec sma:
Spoiler
const GrenadeWeapon = 1<<CSW_HEGRENADE | 1<<CSW_C4 | 1<<CSW_SMOKEGRENADE | 1<<CSW_FLASHBANG
a po co mi granaty, smoki i flashe chce tylko scout
kakus002 03.08.2014
ten będzie lepszy : ]
Do includów dodajesz:
#include <hamsandwich> #include <fakemeta>Do plugin_init:
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");i na koniec sma:
Spoilerconst GrenadeWeapon = 1<<CSW_HEGRENADE | 1<<CSW_C4 | 1<<CSW_SMOKEGRENADE | 1<<CSW_FLASHBANGa po co mi granaty, smoki i flashe chce tylko scout
Jest scout ...
if(damagebits & DMG_BULLET && ent == attacker && get_user_weapon(attacker) == CSW_SCOUT) { KillPlayer(id,ent,attacker,CSW_SCOUT,HIT_GENERIC,0,damagebits)
NoSleep
03.08.2014
ale przy okazji granaty
Ja bym chciał czysty kod bez dodatków
Edited by NoSleep, 03.08.2014 08:47.
Alelluja
03.08.2014
Proszę
1.W includach dodaj:
#include
<hamsandwich>
*Jeśli już masz, to nie musisz dodawać
2.Pod wszystkimi include:
#define
DMG_BULLET (1<<1)
3.Zmienna:
new
ma_klase[33];
4. W plugin_init rejestrujemy:
RegisterHam
(Ham_TakeDamage, "player", "TakeDamage");
*Jeśli nie mamy, to dodajemy:
public
cod_class_enabled(id)
{
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
5. A następnie dodajemy public:
public
TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_klase[idattacker])
return HAM_IGNORED;
if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_SCOUT && damagebits & DMG_BULLET && random_num(1, 1) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}
Edited by Alelluja, 03.08.2014 10:18.
xenos
03.08.2014
&& random_num(1, 1) == 1Ten warunek jest zbędny gdyż po co losować z zakresu od 1 do 1?
Niepotrzebna operacja która zawsze da 1.
kakus002 03.08.2014
ale przy okazji granaty
Ja bym chciał czysty kod bez dodatków
To nie są żadne dodatki ... Zajrzyj tutaj : http://amxx.pl/topic...zanie-broniami/
Do obu:
• Funkcja cod_inflict_damage nie służy do zabijania!!! Ta funkcja służy do zadawania indywidualnego dmg np. miny/kuszy itd
• Jakiś inny plugin może złapać dmg z cod_inflict_damage i je zmniejszyć tak by już nie było śmiertelne przez co z 1/2 może się zrobić 1/ a tego chyba nie chcemy
Edited by kakus002, 03.08.2014 12:12.
kakus002 04.08.2014
Mi chodzi o radom .
Random? Przy funkcji którą podałem zmieniasz
if(damagebits & DMG_BULLET && ent == attacker && get_user_weapon(attacker) == CSW_SCOUT)
Na
if(damagebits & DMG_BULLET && ent == attacker && get_user_weapon(attacker) == CSW_SCOUT && !random(X))
za X wstawiasz swoją liczbe
Tylko po co ci random ? Skoro chcesz 1/1 : ] Bez niego się obejdzie.
Edited by kakus002, 04.08.2014 22:45.
NoSleep
16.08.2014
Proszę
1.W includach dodaj:
#include <hamsandwich>
*Jeśli już masz, to nie musisz dodawać
2.Pod wszystkimi include:
#define DMG_BULLET (1<<1)
3.Zmienna:
new ma_klase[33];
4. W plugin_init rejestrujemy:
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
*Jeśli nie mamy, to dodajemy:
public cod_class_enabled(id)
{
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
5. A następnie dodajemy public:
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;
if(!ma_klase[idattacker])
return HAM_IGNORED;
if(get_user_team(this) != get_user_team(idattacker) && get_user_weapon(idattacker) == CSW_SCOUT && damagebits & DMG_BULLET && random_num(1, 1) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
return HAM_IGNORED;
}
ten kod nie dziala ze scouta zabijam normalnie nie na 1 ustawilem koledze 500hp masz bralo 100.
^Technik^ 16.08.2014
do include dodaj
#include <hamsandwich>
do tablic dodaj(pierwszą tablice możesz mieć):
new ma_klase[33]
new oneonone[33][31]
do plugin_init
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
TakeDamage powinien wyglądać tak:
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 & (1<<1)))
return HAM_IGNORED;
new hp_ofiary = get_user_health(this)
new bron_atakujacego = get_user_weapon(idattacker)
if (oneonone[idattacker][bron_atakujacego] > 0)
{
if (random_num(1,oneonone[idattacker][bron_atakujacego]) == 1) cod_inflict_damage(idattacker, this, float(hp_ofiary), 0.0, idinflictor, damagebits);
}
return HAM_IGNORED;
}
ustawiam 1/1 z SCOUT i (możesz wpisać inne bronie)
public cod_class_enabled(id)
{
oneonone[id][CSW_SCOUT] = 1
ma_klase[id] = 1;
return COD_CONTINUE;
}
public cod_class_disabled(id)
{
ma_klase[id] = 0;
oneonone[id][CSW_SCOUT] = 0
}
Edited by ^Technik^, 16.08.2014 15:47.