←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Jaki jest KOD na 1/1 z scouta ?

  • +
  • -
NoSleep - zdjęcie NoSleep 02.08.2014

Jaki jest KOD na 1/1 z scouta ? 

Odpowiedz

  • +
  • -
Split - zdjęcie Split 03.08.2014

bierzesz z jakieś klasy cod moda i dodajesz do pluginu :)

Odpowiedz

  • +
  • -
NoSleep - zdjęcie NoSleep 03.08.2014

Pierw trzeba mieć klasę do Cod moda :P A nie ściągam cudzych tylko robię swoje :P no znaczy próbuje :P jak bym znał kod to bym robił :P 

Odpowiedz

  • +
  • -
Split - zdjęcie 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;
}

Użytkownik e-Skill edytował ten post 03.08.2014 00:49
Odpowiedz

kakus002 - zdjęcie 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:

Spoiler

Użytkownik kakus002 edytował ten post 03.08.2014 01:02
Odpowiedz

  • +
  • -
NoSleep - zdjęcie 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 :P 

Odpowiedz

kakus002 - zdjęcie 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:

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 :P

 

Jest scout ...

if(damagebits & DMG_BULLET && ent == attacker && get_user_weapon(attacker) == CSW_SCOUT)
    {
        KillPlayer(id,ent,attacker,CSW_SCOUT,HIT_GENERIC,0,damagebits)
Odpowiedz

  • +
  • -
NoSleep - zdjęcie NoSleep 03.08.2014

ale przy okazji granaty :P

 

Ja bym chciał czysty kod bez dodatków ;P 


Użytkownik NoSleep edytował ten post 03.08.2014 08:47
Odpowiedz

  • +
  • -
Alelluja - zdjęcie 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;
}


Użytkownik Alelluja edytował ten post 03.08.2014 10:18
Odpowiedz

  • +
  • -
xenos - zdjęcie xenos 03.08.2014

&& random_num(1, 1) == 1
Ten warunek jest zbędny gdyż po co losować z zakresu od 1 do 1?
Niepotrzebna operacja która zawsze da 1.
Odpowiedz

  • +
  • -
NoSleep - zdjęcie NoSleep 03.08.2014

A zzawsze.można zmienić 1,3 wedle.mojego uznania xD ta linijka nie przeszkadz
Odpowiedz

kakus002 - zdjęcie kakus002 03.08.2014

ale przy okazji granaty :P

 

Ja bym chciał czysty kod bez dodatków ;P

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/d245777abca64ece2d5d7ca0d19fddb6.png a tego chyba nie chcemy

Użytkownik kakus002 edytował ten post 03.08.2014 12:12
Odpowiedz

  • +
  • -
NoSleep - zdjęcie NoSleep 04.08.2014

Mi chodzi o radom .
Odpowiedz

kakus002 - zdjęcie 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.


Użytkownik kakus002 edytował ten post 04.08.2014 22:45
Odpowiedz

  • +
  • -
NoSleep - zdjęcie NoSleep 05.08.2014

Ok
Odpowiedz

  • +
  • -
NoSleep - zdjęcie 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.

Odpowiedz

^Technik^ - zdjęcie ^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

}


Użytkownik ^Technik^ edytował ten post 16.08.2014 15:47
Odpowiedz