←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Migający ekran przy niskim Hp

Zablokowany

  • +
  • -
Lelek - zdjęcie Lelek 08.06.2008

Cześć mam taki problem z tym pluginem ze nie zawsze się wyłaczy tak jak by zapomniał jest to zjawisko bardzo czeste i czy pomożecie i przrobicie plugin tak żeby wylaczal sie przy każdej nowej rundzie?
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Low HP fade"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

#define TASK 666

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_event("DeathMsg","eDeathMsg","a")
    register_event("Damage", "Event_Damage", "be", "2!0")
    register_event("HLTV", "NewRound", "a", "1=0", "2=0")
}


public NewRound()
{
    new players[32],count
    get_players(players,count)
    for (new i = 1; i <= count ; i++)
        if(task_exists(TASK + i))
            remove_task(TASK + i)   
}

public Event_Damage(id)
{
    if(!is_user_alive(id) || !is_user_connected(id))
        return PLUGIN_CONTINUE
   
    new HP = get_user_health(id)   
   
    new param[1]
    param[0] = id
   
    if(HP <= 15 && HP >= 10)       
        set_task(1.0,"fade",TASK + id,param,1,"b")
   
    if(HP <= 9 && HP >= 1)
    {
        remove_task(TASK + id)
        set_task(0.8,"fade",TASK + id,param,1,"b")
       
    }   
    return PLUGIN_CONTINUE
}

public fade(param[])
{
    message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},param[0]);
    write_short(1<<10) // duration
    write_short(1<<10) // hold time
    write_short(0x0000) // flags
    write_byte(180) // red
    write_byte(0) // green
    write_byte(0) // blue
    write_byte(110) // alpha
    message_end()   
}
Odpowiedz

  • +
  • -
ChaoS - zdjęcie ChaoS 08.06.2008

nie ten dział.
Odpowiedz

  • +
  • -
Lelek - zdjęcie Lelek 08.06.2008

dobrze przepraszam niech admin przeniesie i mnie poinformuje gdzie sie znajduje.
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 09.06.2008

Opisz lepiej pluga co robi i problem...
Odpowiedz

  • +
  • -
Lelek - zdjęcie Lelek 09.06.2008

Hm jak najlepiej to wyjśnic moze tak.. Wgrywam ten plugin wolam kolege na serwer gramy sobie on do mnie strzela zostaje mi np. 20hp ekran zaczyna migać na czerwono (wszystko bardzo ładnie) ja mam szczescie i go zabijam czyli jest nastepna runda a mi ekran nadal miga mimo że mam 100hp to tak jak by się nie wyłaczał.

P.S. Może Ci pomoże ten plugin "bicie serca przy niskim hp" on też miał buga ale go naprawili i sie wyłacza w nastepnej rundzie....
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 09.06.2008

Aha czyli mowisz ze zle jest napisany kod ktory odpowiada za wylaczenie wstrzasow po rundzie? Trzeba bylo tak od razu... przetestuj po skompilowaniu:

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Low HP fade"
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"

#define TASK 666

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_event("DeathMsg","eDeathMsg","a")
    register_event("Damage", "Event_Damage", "be", "2!0")
    register_event("HLTV", "NewRound", "a", "1=0", "2=0")
}


public NewRound()
{
    new players[32],count
    get_players(players,count)
    for (new i = 0; i < count ; i++)
        if(task_exists(TASK + players[i]))
            remove_task(TASK + players[i])   
}

public Event_Damage(id)
{
    if(!is_user_alive(id) || !is_user_connected(id))
        return PLUGIN_CONTINUE
   
    new HP = get_user_health(id)   
   
    new param[1]
    param[0] = id
   
    if(HP <= 15 && HP >= 10)       
        set_task(1.0,"fade",TASK + id,param,1,"b")
   
    if(HP <= 9 && HP >= 1)
    {
        remove_task(TASK + id)
        set_task(0.8,"fade",TASK + id,param,1,"b")
       
    }   
    return PLUGIN_CONTINUE
}

public fade(param[])
{
    message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},param[0]);
    write_short(1<<10) // duration
    write_short(1<<10) // hold time
    write_short(0x0000) // flags
    write_byte(180) // red
    write_byte(0) // green
    write_byte(0) // blue
    write_byte(110) // alpha
    message_end()   
}

PS. nie zdziwilbym sie gdybys mowil o poprawionym plugu ktory sam pisalem od nowa bo Seba nie chcial sie publicznie podzielic plugiem o podobnym (ale zbugowanym) dzialaniu ;>
Odpowiedz

  • +
  • -
Lelek - zdjęcie Lelek 09.06.2008

TO sprawa teraz wyglada tak mam jeszcze wgrany plugin na bicie serca i zostawianie śladów przy niskim hp wgrałem ten plugin co napisałes. i ekran nie zaczał migać ale zaczeło głośniej bić serce i wiecej sladów(z tym nie do konca pewnien jestem) ale co do serca to na 100% głosniej a ekran nie migał wcale
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 10.06.2008

Ja tylko poprawilem funkcje od wylanczasnie 'mrugania' na starcie rundy.

Jedyne co mozesz sprobowac to zmienic liczbe na dowolna(polecam na duza i nie przewidywalna)
#define TASK 666

Innych plugow ci nie zmienialem to chyba juz twoj problem/wina ze cos zle ci dzialaja :lol:
Odpowiedz

  • +
  • -
Lelek - zdjęcie Lelek 10.06.2008

Ok możesz mi podać sma

tamte pluginy już działają poprawnie coś było nie tak ale to zapewne ze byle sam
Odpowiedz
Zablokowany