Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Perk

Dodanie losową wartość perku

perk

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 I3ombel

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:29
  • Imię:Rafał
Offline

Napisano 09.02.2016 21:46

Witam.

Jak przerobić owy kod aby wartość była losowa:

public TakeDamagePost(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_alive(idattacker))
return HAM_IGNORED;


if(!ma_klase[idattacker])
return HAM_IGNORED;


new Float:maksymalne_zdrowie = 100.0 + cod_get_user_health(idattacker);
new Float:nowe_zdrowie = damage * (10/100) + pev(idattacker, pev_health);


set_pev(idattacker, pev_health, (nowe_zdrowie < maksymalne_zdrowie)? nowe_zdrowie: maksymalne_zdrowie);


return HAM_IGNORED;
}

Przykładowy perk na losową wartość dmg

 

/* Plugin generated by AMXX-Studio */


#include <amxmodx>
#include <hamsandwich>
#include <codmod>


#define DMG_BULLET (1<<1)


new const perk_name[] = "Srebny Wzmacniacz";
new const perk_desc[] = "Zadaje LW dodatkowych obrazen";


new wartosc_perku[33];
new bool:ma_perk[33];


public plugin_init() 
{
register_plugin(perk_name, "1.0", "xXx");


cod_register_perk(perk_name, perk_desc, 3, 6)


RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}


public cod_perk_enabled(id, wartosc)
{
wartosc_perku[id] = wartosc;
ma_perk[id] = true;
}


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[idattacker])
SetHamParamFloat(4, damage+float(wartosc_perku[idattacker]))


return HAM_IGNORED;
}

 


  • +
  • -
  • 0

#2 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 10.02.2016 14:05

Wylosuj losową wartość za pomocą funkcji

random_num


  • +
  • -
  • 1

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#3 I3ombel

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:29
  • Imię:Rafał
Offline

Napisano 11.02.2016 10:56

/* Plugin generated by AMXX-Studio */


#include <amxmodx>
#include <codmod>
#include <fun>
#include <engine>
#include <fakemeta>
#include <hamsandwich>


new const perk_name[] = "Berlo Wampira";
new const perk_desc[] = "Wysysasz LP hp przeciwnika";


new bool:ma_perk[33];


public plugin_init()
{
register_plugin(perk_name, "1.0", "I3ombel");


cod_register_perk(perk_name, perk_desc)


RegisterHam(Ham_TakeDamage, "player", "TakeDamagePost", 1);
}


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


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


public TakeDamagePost(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_alive(idattacker))
return HAM_IGNORED;


if(!ma_perk[idattacker])
return HAM_IGNORED;


new rand = random_num(1, 3);


if(rand == 1)
{
new Float:maksymalne_zdrowie = 100.0 + cod_get_user_health(idattacker);
new Float:nowe_zdrowie = damage * (1/100) + pev(idattacker, pev_health);


set_pev(idattacker, pev_health, (nowe_zdrowie < maksymalne_zdrowie)? nowe_zdrowie: maksymalne_zdrowie);
}


else if(rand == 2)
{
new Float:maksymalne_zdrowie = 100.0 + cod_get_user_health(idattacker);
new Float:nowe_zdrowie = damage * (2/100) + pev(idattacker, pev_health);


set_pev(idattacker, pev_health, (nowe_zdrowie < maksymalne_zdrowie)? nowe_zdrowie: maksymalne_zdrowie);
}


else if(rand == 3)
{
new Float:maksymalne_zdrowie = 100.0 + cod_get_user_health(idattacker);
new Float:nowe_zdrowie = damage * (3/100) + pev(idattacker, pev_health);


set_pev(idattacker, pev_health, (nowe_zdrowie < maksymalne_zdrowie)? nowe_zdrowie: maksymalne_zdrowie);
}


else if(rand == 4)
{
new Float:maksymalne_zdrowie = 100.0 + cod_get_user_health(idattacker);
new Float:nowe_zdrowie = damage * (4/100) + pev(idattacker, pev_health);


set_pev(idattacker, pev_health, (nowe_zdrowie < maksymalne_zdrowie)? nowe_zdrowie: maksymalne_zdrowie);
}


return HAM_IGNORED;
}

 


  • +
  • -
  • 0

#4 I3ombel

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:29
  • Imię:Rafał
Offline

Napisano 11.02.2016 22:06

PS: Dodam, że nie mogłem edytować posta wyżej.

 

Berlo Wampira:

/* Plugin generated by AMXX-Studio */


#include <amxmodx>
#include <codmod>
#include <fun>
#include <engine>
#include <fakemeta>
#include <hamsandwich>


new const perk_name[] = "Berlo Wampira";
new const perk_desc[] = "Wysysasz LW hp przeciwnika";


new wartosc_perku[33];
new bool:ma_perk[33];


public plugin_init()
{
register_plugin(perk_name, "1.0", "I3ombel");


cod_register_perk(perk_name, perk_desc, 1, 4)


RegisterHam(Ham_TakeDamage, "player", "TakeDamagePost", 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 TakeDamagePost(this, idinflictor, idattacker, Float:damage, damagebits)
{
        if(!is_user_alive(idattacker))
                return HAM_IGNORED;
                
        if(!ma_perk[idattacker])
                return HAM_IGNORED;
        
        new Float:maksymalne_zdrowie = 100.0 + cod_get_user_health(idattacker);
        new Float:nowe_zdrowie = damage * float(wartosc_perku[idattacker]) + pev(idattacker, pev_health);
        
        set_pev(idattacker, pev_health, (nowe_zdrowie < maksymalne_zdrowie)? nowe_zdrowie: maksymalne_zdrowie);
        
        return HAM_IGNORED;
}

Miecz Boga Slonca:

 

/* Plugin generated by AMXX-Studio */


#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <codmod>


new const perk_name[] = "Miecz Boga Slonca";
new const perk_desc[] = "Masz LW szansy na oslepienie wroga, gdy go trafisz";


new wartosc_perku[33];
new bool:ma_perk[33];
new g_msg_screenfade;


public plugin_init()
{
register_plugin(perk_name, "1.0", "I3ombel");


cod_register_perk(perk_name, perk_desc, 2, 5)


register_event("Damage", "Damage", "b", "2!=0");


g_msg_screenfade = get_user_msgid("ScreenFade");
}


public cod_perk_enabled(id, wartosc)
{
wartosc_perku[id] = wartosc;
ma_perk[id] = true;
}


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


public Damage(id)
{
new idattacker = get_user_attacker(id);


if(!is_user_connected(idattacker) || get_user_team(id) == get_user_team(idattacker))
return PLUGIN_CONTINUE;


if(ma_perk[idattacker] && random_num(1,float(wartosc_perku[idattacker])) == 1)
Display_Fade(id, 1<<14, 1<<14 ,1<<16, 0, 255, 0, 230);


return PLUGIN_CONTINUE;
}


stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
{
message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id );
write_short( duration );
write_short( holdtime );  
write_short( fadetype );  
write_byte ( red );    
write_byte ( green );     
write_byte ( blue );  
write_byte ( alpha );  
message_end();
}

Ognisty Amulet:

 

/* Plugin generated by AMXX-Studio */


#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>


#define DMG_BULLET (1<<1)


new const perk_name[] = "Ognisty Amulet";
new const perk_desc[] = "Masz LW szansy na natychmiastowe zabicie HE";


new wartosc_perku[33];
new bool:ma_perk[33];


public plugin_init()
{
register_plugin(perk_name, "1.0", "I3ombel");


cod_register_perk(perk_name, perk_desc, 3, 6)


RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}


public cod_perk_enabled(id, wartosc)
{
wartosc_perku[id] = wartosc;
ma_perk[id] = true;
}


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[idattacker])
return HAM_IGNORED;


if(!(damagebits & DMG_BULLET))
return HAM_IGNORED;


if(get_user_weapon(idattacker) == CSW_HEGRENADE && random_num(1,float(wartosc_perku[idattacker])) == 1)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);


return HAM_IGNORED;
}

Zwoj Iniffusa:

 

/* Plugin generated by AMXX-Studio */


#include <amxmodx>
#include <amxmisc>
#include <codmod>


new const perk_name[] = "Zwoj Iniffusa";
new const perk_desc[] = "Podnosisz wartość wszystkich swoich statystyk o LW punktow";


new wartosc_perku[33];
new bool:ma_perk[33];


public plugin_init()
{
register_plugin(perk_name, "1.0", "I3ombel");


cod_register_perk(perk_name, perk_desc, 1, 3)
}


public cod_perk_enabled(id, wartosc)
{
wartosc_perku[id] = wartosc;
ma_perk[id] = true;


cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)+float(wartosc_perku[idattacker]));
cod_set_user_bonus_intelligence(id, cod_get_user_intelligence(id, 0, 0)+float(wartosc_perku[idattacker]));
cod_set_user_bonus_trim(id, cod_get_user_trim(id, 0, 0)+float(wartosc_perku[idattacker]));
cod_set_user_bonus_stamina(id, cod_get_user_stamina(id, 0, 0)+float(wartosc_perku[idattacker]));
}


public cod_perk_disabled(id)
{
ma_perk[id] = false;


cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)-float(wartosc_perku[idattacker]));
cod_set_user_bonus_intelligence(id, cod_get_user_intelligence(id, 0, 0)-float(wartosc_perku[idattacker]));
cod_set_user_bonus_trim(id, cod_get_user_trim(id, 0, 0)-float(wartosc_perku[idattacker]));
cod_set_user_bonus_stamina(id, cod_get_user_stamina(id, 0, 0)-float(wartosc_perku[idattacker]));
}

Lecz ten perk się nie kompiluje, tu błędy:

 

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team


Error: Undefined symbol "idattacker" on line 25
Error: Undefined symbol "idattacker" on line 26
Error: Undefined symbol "idattacker" on line 27
Error: Undefined symbol "idattacker" on line 28
Error: Undefined symbol "idattacker" on line 35
Error: Undefined symbol "idattacker" on line 36
Error: Undefined symbol "idattacker" on line 37
Error: Undefined symbol "idattacker" on line 38


8 Errors.
Could not locate output file C:\Users\Nostale\Desktop\cod\perki\scripting\codperk_zwojiniffusa.amx (compile failed).
 
 

 


Użytkownik I3ombel edytował ten post 11.02.2016 22:08

  • +
  • -
  • 0

#5 wonsz żeczny

    Wszechwidzący

  • Użytkownik

Reputacja: 82
Zaawansowany

  • Postów:254
  • Imię:Wonsz
  • Lokalizacja:Żeka
Offline

Napisano 11.02.2016 22:47

public cod_perk_enabled( id, wartosc )
{
wartosc_perku[ id ] = wartosc
ma_perk[ id ] = true


cod_set_user_bonus_health( id, cod_get_user_health( id, 0, 0 )+float( wartosc_perku[ id ] ) )
cod_set_user_bonus_intelligence( id, cod_get_user_intelligence( id, 0, 0 )+float( wartosc_perku[ id ] ) )
cod_set_user_bonus_trim( id, cod_get_user_trim( id, 0, 0 )+float( wartosc_perku[ id ] ) )
cod_set_user_bonus_stamina( id, cod_get_user_stamina( id, 0, 0 )+float( wartosc_perku[ id ] ) )
}


public cod_perk_disabled( id )
{
ma_perk[ id ] = false


cod_set_user_bonus_health( id, cod_get_user_health(id, 0, 0)-float( wartosc_perku[ id ] ) )
cod_set_user_bonus_intelligence( id, cod_get_user_intelligence(id, 0, 0)-float( wartosc_perku[ id ] ) )
cod_set_user_bonus_trim( id, cod_get_user_trim( id, 0, 0 )-float( wartosc_perku[ id ] ) )
cod_set_user_bonus_stamina( id, cod_get_user_stamina( id, 0, 0 )-float( wartosc_perku[ id ] ) )
}

Te 2 publiki na dole podmień na to.


Użytkownik wonsz żeczny edytował ten post 11.02.2016 22:47

  • +
  • -
  • 1

#6 I3ombel

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:29
  • Imię:Rafał
Offline

Napisano 11.02.2016 22:56

A mógłbyś mi powiedzieć co robię źle w innych perkach? Ładnie losuje ile ma zabierac hp wampir lecz gdy zadam 1 dmg od razu leczy nam całe hp
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: perk

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych