←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Wieksze obrazenia dla 1 gracza

Zablokowany

  • +
  • -
skowron97 - zdjęcie skowron97 28.04.2011

Witam
Pisze XpModa przeznaczonego na DeathRuna i chciałbym zrobic skill/umiejetnosc "Wieksze Obrazenia z Noza". Udało mi się to, ale obrażenia zmieniają się wszystkim graczom, a chciłbym że zmieniało się graczowi, który ma dodane punkty w tą umiejetność. Daje kod. sma
public DmgKosa(id, victim, entity, Float:damage, damagebits)
{
if(is_user_connected(id) && is_user_connected(victim))
{
if(get_user_weapon(id) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
return HAM_IGNORED;
}
Odpowiedz

  • +
  • -
diablix - zdjęcie diablix 28.04.2011

Wystarczy zmienna typu bool lub normalna przyjmująca warunek 1 po kupnie umiejętności. Potem tylko sprawdzasz czy attacker posiada ową.

PS. fDamage * 9.5 = przy hicie za 100 zada 950 :D
Odpowiedz

  • +
  • -
skowron97 - zdjęcie skowron97 28.04.2011

Wiem to tylko przykład, a jakbyś mogł mi to przerobić, bo jescze tak średnio rozumiem pisanie pluginów.
Odpowiedz

  • +
  • -
diablix - zdjęcie diablix 28.04.2011

No przerobić nie przerobie bo bym musiał cały xp mod napisać
Odpowiedz

  • +
  • -
skowron97 - zdjęcie skowron97 28.04.2011

Chyba mniejwiecej rozumiem tylko daj mi sie upewnic.
Musze zrobic
new bool: dmg

i potem przy umiejetnosci
dmg == 1

i
public DmgKosa(id, attacker, entity, Float:damage, damagebits)
{
if(attacker(dmg == 1) {
if(is_user_connected(id) && is_user_connected(victim))
{
if(get_user_weapon(id) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
return HAM_IGNORED;
}

tylko niewiem co tam musi byc dokladnie napisane xD
Odpowiedz

FreZZy - zdjęcie FreZZy 28.04.2011

nie, jeżeli już to

public DmgKosa(attacker, victim, entity, Float:damage, damagebits)
{
if(attacker(dmg == 1) {
if(is_user_connected(attacker) && is_user_connected(victim))
{
if(get_user_weapon(attacker) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
return HAM_IGNORED;
}
Odpowiedz

  • +
  • -
diablix - zdjęcie diablix 28.04.2011

new gUserSkill[33];


Przy kupnie

gUserSkill[id] ++;


public DmgKosa(this, attacker, entity, Float:damage, damagebits){
if(gUserSkill[attacker]) {
if(is_user_connected(attacker) && is_user_connected(victim))
{
if(get_user_weapon(attacker) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}

Użytkownik diablix edytował ten post 28.04.2011 15:30
Odpowiedz

  • +
  • -
skowron97 - zdjęcie skowron97 29.04.2011

new gUserSkill[33];



Przy kupnie

gUserSkill[id] ++;


public DmgKosa(this, attacker, entity, Float:damage, damagebits){
if(gUserSkill[attacker]) {
        if(is_user_connected(attacker) && is_user_connected(victim))
        {
                if(get_user_weapon(attacker) == CSW_KNIFE)
                {
                        SetHamParamFloat(4, damage * 9.5);
                }
                return HAM_OVERRIDE;
        }
}
return HAM_IGNORED;
}


Użytkownik diablix edytował ten post wczoraj, 15:30


To niestety nie działa, wtedy wcale nie zadaje obrazen z noza ;(
Użytkownik skowron97 edytował ten post 29.04.2011 17:44
Odpowiedz

  • +
  • -
Goliath - zdjęcie Goliath 29.04.2011

public DmgKosa(this, entity, attacker, Float:damage, damagebits)
{
if(gUserSkill[attacker])
{
if(is_user_connected(attacker) && is_user_connected(this))
{
if(get_user_weapon(attacker) == CSW_KNIFE && damagebits & (1<<1))
{
SetHamParamFloat(4, damage * 9.5);
}
}
}
return HAM_IGNORED;
}

Użytkownik Goliath edytował ten post 29.04.2011 18:15
Odpowiedz

  • +
  • -
skowron97 - zdjęcie skowron97 29.04.2011

Niestety nadal jest to samo. Nie zadaje zadnych obrazen ;/
Odpowiedz

Optymalny193 - zdjęcie Optymalny193 29.04.2011

przyłączam się do prośby.
Odpowiedz

  • +
  • -
diablix - zdjęcie diablix 29.04.2011

Mój kod działa na 100% poprostu warunku nie spełniasz z tą zmienną zapewne.
Odpowiedz

  • +
  • -
skowron97 - zdjęcie skowron97 30.04.2011

Nie rozumiem powinno byc dobrze ;/. Teraz znowu nie zmienia sie dmg.
RegisterHam(Ham_TakeDamage, "player", "DmgKosa");

 new gUserSkill[33]; 




public exp_wybierz_3(id, menu_exp_3 , item)
{
new data[6], iName[64]
new acces, callback
menu_item_getinfo(menu_exp_3, item, acces, data,5, iName, 63, callback)

new klawisz = str_to_num(data)

switch(klawisz)
{
case 1 : {
//if(PlayerLevel[id] <= 24) {
//ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Nie masz^x03 25^x01 levela!");
//}
//else
if(punkty[id] == 0) {
ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Nie masz wystarczajacej ilosci punktow!");
}
else
{
if(punktykosa[id] >= 2) {
ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Przepraszam, masz juz^x03 %i^x04 /^x03 2^x01!", punktykosa[id]);
}
else
{
punkty[id] -= 1;
punktykosa[id] += 1;
gUserSkill[id] ++;
ColorChat(id, GREEN, "[DeathRun XpMod] Dodanie punkta do Wieksze DMG z Kosy zakonczone sukcesem!");
}
}
menu_destroy(menu_exp_3);
menu_xp_3(id);
SaveData(id);
return PLUGIN_HANDLED;
}
case 2 : {
if(PlayerLevel[id] <= 26) {
ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Nie masz^x03 27^x01 levela!");
}
else if(punkty[id] == 0) {
ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Nie masz wystarczajacej ilosci punktow!");
}
else
{
if(punktyhe[id] >= 2) {
ColorChat(id, GREEN, "[DeathRun XpMod]^x01 Przepraszam, masz juz^x03 %i^x04 /^x03 2^x01!", punktyhe[id]);
}
else
{
punkty[id] -= 1;
punktyhe[id] += 1;
ColorChat(id, GREEN, "[DeathRun XpMod] Dodanie punkta do Wieksze DMG z HE zakonczone sukcesem!");
}
}
menu_destroy(menu_exp_3);
menu_xp_3(id);
SaveData(id);
return PLUGIN_HANDLED;
}

case 8: {
menu_xp_2(id);
menu_destroy(menu_exp_3);
}

}
}



public DmgKosa(Victim, Useless, Attacker, Float:damage, damagebits){
if(gUserSkill[Attacker]) {
if(is_user_connected(Attacker) && is_user_connected(Victim))
{
if(get_user_weapon(Attacker) == CSW_KNIFE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}
Odpowiedz

Optymalny193 - zdjęcie Optymalny193 30.04.2011

Jak chcesz tez do HE to wez to:


public DmgKosa(Victim, Useless, Attacker, Float:damage, damagebits){
if(gUserSkill[Attacker]) {
if(is_user_connected(Attacker) && is_user_connected(Victim))
{
if(get_user_weapon(Attacker) == CSW_KNIFE && CSW_HEGRENADE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}
Odpowiedz

  • +
  • -
skowron97 - zdjęcie skowron97 30.04.2011

Jak chcesz tez do HE to wez to:

public DmgKosa(Victim, Useless, Attacker, Float:damage, damagebits){
if(gUserSkill[Attacker]) {
        if(is_user_connected(Attacker) && is_user_connected(Victim))
        {
                if(get_user_weapon(Attacker) == CSW_KNIFE && CSW_HEGRENADE)
                {
                        SetHamParamFloat(4, damage * 9.5);
                }
                return HAM_OVERRIDE;
        }
}
return HAM_IGNORED;
}


Ja to wiem tylko, że mi to w ogóle nie działa ;/
Odpowiedz

  • +
  • -
diablix - zdjęcie diablix 30.04.2011

Jak chcesz tez do HE to wez to:


public DmgKosa(Victim, Useless, Attacker, Float:damage, damagebits){
if(gUserSkill[Attacker]) {
if(is_user_connected(Attacker) && is_user_connected(Victim))
{
if(get_user_weapon(Attacker) == CSW_KNIFE && CSW_HEGRENADE)
{
SetHamParamFloat(4, damage * 9.5);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}


Sprawdz chociaż to co piszesz, ok?

#define DMG_GRENADE (1 << 24)

public DmgKosa(Victim, Useless, Attacker, Float:damage, damagebits){
if(gUserSkill[Attacker]) {
if(is_user_connected(Attacker) && is_user_connected(Victim))
{
if(damagebits & DMG_GRENADE)
{
SetHamParamFloat(4, damage * 2.0);
}
return HAM_OVERRIDE;
}
}
return HAM_IGNORED;
}

Użytkownik diablix edytował ten post 30.04.2011 12:29
Odpowiedz

  • +
  • -
skowron97 - zdjęcie skowron97 30.04.2011

diablix thx ;). Wszystko dziala poprostu pomylily mi sie FTP xD. Wielkie dzięki masz "+".
Mozna Close
Odpowiedz
Zablokowany