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
 

emeryt0131 - zdjęcie

emeryt0131

Rejestracja: 22.12.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 15.10.2014 17:18
-----

#423037 [ROZWIĄZANE COD NOWY] regeneracja

Napisane przez dasiek w 22.06.2012 10:14

tak.
  • +
  • -
  • 2


#387097 Smart Vip

Napisane przez dasiek w 27.03.2012 17:19

Vip na Flage ADMIN_LEVEL_H.



Posiada na start

*He

*Flash

*Smoke

*Dodatkowe 30 HP na start


*Menu a w nim Do Wyboru Deagle, Podwójny skok, Ciche Bieganie, Mniejszą grawitacje, Większą Stałą szybkość i Prefix w Nicku.


*Tylko Vip może podnosić i korzystać z awp.


Dodatkowo gdy na serwerze nie ma pliku vip.txt Plugin generuje go według Cvarów ;)


cvary


vip_hpstart - Dodatkowe hp na start

vip_hestart - 0/1 Włącza wyłącza he na start

vip_flstart - 0/1 Włącza wyłącza flasha na start

vip_smstart - 0/1 Włącza wyłącza smoka na start

vip_awp - 0/1 Włącza wyłącza korzystanie z awp dla VIPA

vip_prefix - Prefix przed nickiem.


Zmiana Flagi VIP ? 16 linijka


#define VIP_FLAG ADMIN_LEVEL_H

Załączone pliki


  • +
  • -
  • 7


#337692 KillStreak 1.3.4a, 1.4c ; Wyzwania

Napisane przez Cypis' w 21.12.2011 19:45

Witam, przedstawiam wam plugin mojego autorstwa, który jak się zabije przeciwnika to dostajemy nagrodę czyli 'KillStreak'. Nagrody za zabicia są następujące:
- 3 zabicia - UAV
- 4 zabicia - Care Package lub Counter-UAV
- 5 zabicia - Predator
- 6 zabicia - Airstreak (nalot)
- 8 zabicia - Sentry Gun
- 15 zabicia - EMP
- 20 zabicia - NUKE

Jak użyć Kill Streaka:
say /ks
say /killstreak

Cvary:
ks_hpsentry "2500.0" // ile ma miec hp sentry gun
ks_sentry_remove "1" // jesli 1 usuwa sentry w nowej rundzie, jak 0 to nie

Screenshot:
Dołączona grafika

Dołączona grafika

Instalacja:
Standardowa

UWAGA! Wymagany jest Amx Mod X 1.8.1 lub wyższy do działania pluginu

Changelog:

1.0:
- pierwsza wersja

1.0.1:
- poprawka spadającej paczki

1.1:
- Dodano nowe dźwięki,
- Dodano poprawki do Predatora, Care Package, Emp i Nuke,
- Dodano menu wyboru nagród,
- Zmniejszono trochę kod

1.1.1:
- dodana poprawka dotyku entów (były rlogi)

1.1.2:
- usunięcie native menu_addtext (przez to niektórym nie działał killstreak)

1.2:
- wersja niepublikowana (dodanie sentry guna)

1.3:
- naprawienie bugów w Sentry gunie,
- naprawienie bugów z EMP,
- dodanie paska jak wejdziemy w Care Package (pasek jak przy brojeniu bomby),
- dodanie nowych dźwięków

1.3.1:
- dodanie cvaru "ks_hpsentry",
- dodanie informacji w chat kto użył killstreaka

1.3.2:
- naprawienie Sentry Guna (jak kucaliśmy to nie strzelał),
- Jak zabijemy kogoś z Sentry Guna lub z Nalotu lub z innej rzeczy to liczy te zabicie do rankingu,
- Dodanie UAV dla całej drużyny i po 60s od użycia UAV znika (tak jak w COD MW2 tylko że tam jest 30s)

1.3.3:
- 1.3.2 była zła wersja nie ta wgrałem,
- dodanie cvara na usunięcie sentry guna

1.3.4:
- dodano do sentry guna materiał, żeby były odgłosy gdy strzelamy w niego
- dodano że jak mamy tarcze założną to sentry nie strzela
- poprawiono UAV (teraz podlicza cały czas z uav)

1.3.4a:
- naprawiono wszystkie bugi, które zrobiłem wczoraj

Plany:
- Dodanie Emergency AriDrop (jest w wersji BETA 1.4)

Załączony plik  killstreak.sma   30,55 KB  5078 Ilość pobrań
  killstreak.amxx
Załączony plik  modele-dzwieki.rar   3,85 MB  8055 Ilość pobrań


--------------------------------------------

Wersja BETA 1.4 :

Changelog:
1.4a:
- dodano Emergency AriDrop, jest on od 8 zabójstw
- dodano komendę say /ks2
- naprawiono wszelkie bugi
- dodano większą losowość nagród z skrzynki

1.4b
- naprawiono błąd z "[CSTRIKE] Invalid player 12"
- zamieniono kilka funkcji cs_get_user_team na get_user_team - ponieważ get_user_team nie wywala błedu po wyjsciu gracza
- naprawiono błąd że po użyciu nuke serwer creshował bo w cvar amx_nextmap posiadał nieprawidłową mape
- zmieniono kilka typów w message_begin z MSG_ONE_UNRELIABLE na MSG_BROADCAST, żeby plugin w pewnych miejscach nie używał pętli for
- w Emergency AriDrop naprawiono że w każdej paczce jest coś innego (wcześniej mogły być np. 4 sentry guny z paczek)

1.4c
- dodanie EngFunc_GetAttachment do sentryguna
- ta wersja będzie umożliwiać dodanie wyzwań, które później udostępnię

Instalacja dodatkowych dźwięków (trzeba wypakować rar):
Załączony plik  modele-dzwieki.rar   3,85 MB  8055 Ilość pobrań

po wgraniu tego wgrywamy to do sound/mw :
Załączony plik  dzwieki-emergairdrop.rar   218,89 KB  2807 Ilość pobrań


SMA - sentry gun będzie atakował gracza z tarczą:
Załączony plik  killstreak-tarcza.sma   37,6 KB  1619 Ilość pobrań
  killstreak-tarcza.amxx

SMA2 - sentry gun nie będzie atakował gracza z tarczą:
Załączony plik  killstreak-bez.sma   37,6 KB  1502 Ilość pobrań
  killstreak-bez.amxx

Wyzwania do KillStreaka 1.4c:
[cod nowy] KillStreak 1.3.4a | 1.4c - Poradniki, Łatki oraz Pluginy - AMXX.pl: Support AMX Mod X - strona 4

Jak będą jakieś bugi pisać w temacie.
--------------------------------------------

Plugin nie wymaga CodModa
Podziękowania dla Krecik'a za zmodernizowanie modelu Sentry Guna

Zakaz kopiowania i wykorzystywania innych treści bez zgody autora. Wszelkie prawa zastrzeżone. ©
  • +
  • -
  • 69


#277280 Cvar na wyłączenie Expa za Bombę

Napisane przez Misiaczek ;c w 03.08.2011 20:42

Witam Dołączona grafika

Prosty i Szybki Poradnik Dołączona grafika jak stworzyć cvar do włączania i wyłączania expa za podkładanie/rozbrajanie i wybuch paki Dołączona grafika

Zaczynamy Dołączona grafika

bf2rank.sma

Znajdź

new gPcvarFFA;


Dodaj pod

new gPcvarBomba;


Znajdź:

gPcvarFFA = register_cvar("bf2_ffa", "0");


Dodaj pod

gPcvarBomba = register_cvar("bf2_bomba", "0");


Zapisz Plik Dołączona grafika

csx.inl

Znajdź:

public bomb_planted(planter)
{
if ( get_playersnum() < get_pcvar_num(gPcvarXpMinPlayers) ) return;


Zamień na:

public bomb_planted(planter)
{
if ( get_playersnum() < get_pcvar_num(gPcvarXpMinPlayers) ) return;
if ( !get_pcvar_num(gPcvarBomba) ) return;


Znajdź:

public bomb_explode(planter, defuser)
{
if ( get_playersnum() < get_pcvar_num(gPcvarXpMinPlayers) ) return;


Zamień na:

public bomb_explode(planter, defuser)
{
if ( get_playersnum() < get_pcvar_num(gPcvarXpMinPlayers) ) return;
if ( !get_pcvar_num(gPcvarBomba) ) return;


Znajdź:

public bomb_defused(defuser)
{
if ( get_playersnum() < get_pcvar_num(gPcvarXpMinPlayers) ) return;


Zamień na:

public bomb_defused(defuser)
{
if ( get_playersnum() < get_pcvar_num(gPcvarXpMinPlayers) ) return;
if ( !get_pcvar_num(gPcvarBomba) ) return;


Zapisz Plik, ponownka kompilacja plików i gotowe Dołączona grafika

bf2_bomba 1 = Włączony exp
bf2_bomba 0 = Wyłączony exp

Pozdrawiam Dołączona grafika
  • +
  • -
  • 1


#374000 Nowy Wygląd HUD

Napisane przez Misiaczek ;c w 02.03.2012 16:35

Hejka. Moje pytanie jest w tym obrazku:
Dołączona grafika


zamień w skrypcie
0.05, 0.15

na
0.55, 0.80

  • +
  • -
  • 1


#368291 Nowy Wygląd HUD

Napisane przez Misiaczek ;c w 21.02.2012 09:39

if (!get_pcvar_num(gPcvarWymus))
Nie powinno być tak ??

if (!get_pcvar_num(gPcvarGameShadows))


nie?

1.0.5:
* Zamieniono komendy bf2_hud i bf2_shadows na bf2_wymus
* Poprawiono menu
* Poprawiono wymuszanie ustawień


  • +
  • -
  • 1


#338486 Nowy Wygląd HUD

Napisane przez Misiaczek ;c w 23.12.2011 09:44

czyli to nie działa pod wersją BF v2.0.0 ??

działa jak ktos troche ogarnia ;)
  • +
  • -
  • 1


#316948 Nowy Wygląd HUD

Napisane przez Misiaczek ;c w 02.11.2011 18:30

Mógłbyś mi to wykonać bo dla mnie to za trudne.

http://amxx.pl/forum/239-prosby-o-kompilacje-pluginow-problemy-z-kompilacja/
  • +
  • -
  • 1


#316812 Nowy Wygląd HUD

Napisane przez Misiaczek ;c w 02.11.2011 15:52

Aktualizacja instrukcji

Dodani instrukcje dla wersji 1.5.3/1.5.5, podzielono instrukcje na 2 czesci dla 1.0.7/1.1.0 i 1.5.3/1.5.5
  • +
  • -
  • 1


#313488 Nowy Wygląd HUD

Napisane przez Misiaczek ;c w 26.10.2011 12:17

Wrr..... Nie mogę sobie poradzić, siedzę już 30minutek przy tym i nic, mógłby to ktoś u siebie skompilować? ( już z przerobiona nową wersją wyglądu w HUD)


http://amxx.pl/forum...y-z-kompilacja/
  • +
  • -
  • 1


#293929 Nowy Wygląd HUD

Napisane przez Misiaczek ;c w 08.09.2011 19:24

Wersja v3 w pierwszym poście :)
  • +
  • -
  • 1


#293903 Nowy Wygląd HUD

Napisane przez Misiaczek ;c w 08.09.2011 18:30

zamiast

gNazwaPluginu


nie powinno być czasem

gPluginName


?

Tak :P z rozpędu dałem zmienna która mam w swoje własnej wersji :)

@Edit
Wersja v2 dodana :)
  • +
  • -
  • 2


#293791 Nowy Wygląd HUD

Napisane przez Misiaczek ;c w 08.09.2011 14:53

Witam :)

Jako iż mi się nudzi :D postanowiłem zmienić wygląd HUD w swoim bf2 ;](podpatrzone z coda) efekt jest fajny i miły dla oka :D

nowy HUD wygląda tak:
Dołączona grafika


Instrukcja dla 1.0.7 / 1.1.0

bf2rank.sma
Szukamy
#if defined KOLOROWY_SAY
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
#else
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
new gmsgSayText;
#endif


dodajemy pod tym to
new gHUD;
//Task
#define TASK_HUD 9897


aby wyglądało to tak
#if defined KOLOROWY_SAY
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
#else
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
new gmsgSayText;
#endif
new gHUD;
//Task
#define TASK_HUD 9897


następnie szukamy
  
#if defined KOLOROWY_SAY
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
#else
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgSayText = get_user_msgid("SayText");
#endif.


dodajemy pod tym to
gHUD = CreateHudSyncObj();

aby to wyglądało tak
  
#if defined KOLOROWY_SAY
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
#else
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgSayText = get_user_msgid("SayText");
#endif
gHUD = CreateHudSyncObj();


Szukamy dalej
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1);	// cz bots won't hook here must RegisterHamFromEntity
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre");


Zastepujemy to tym
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1);	// cz bots won't hook here must RegisterHamFromEntity
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre");
RegisterHam(Ham_Killed, "player", "Ham_Death_Player", 1);


Zapisujemy Plik ;)

ham.inl

Szukamy
  
set_task(0.1, "DisplayHUD", id);


Zastepujemy to tym

if(!task_exists(id+TASK_HUD))
{
set_task(0.1, "DisplayHUD", id+TASK_HUD, _, _, "b");
}


Szukamy
	SetHamParamFloat(4, damage);

return HAM_HANDLED;
}


Zastepujemy to tym
	SetHamParamFloat(4, damage);

return HAM_HANDLED;
}

public Ham_Death_Player(id)
{
if(!is_user_connected(id))
return HAM_IGNORED;

RemoveHUD(id)

return HAM_IGNORED;
}


Zapisujemy Plik :P

forwards.inl

Szukamy
public client_putinserver(id)
{
// Find a czero bot to register Ham_Spawn
if ( !gCZBotRegisterHam && gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) )
{
// Delay for private data to initialize
set_task(0.1, "RegisterHam_CZBot", id);
}

g_imobile[id] = false;
newplayer[id] = true;
gStatsLoaded[id] = 0;

get_save_key(id);

if (!get_pcvar_num(gPcvarWymus))
{
client_cmd(id,"hud_centerid 0");
client_cmd(id,"cl_shadows 0");
set_task(20.0, "Announcement", id);
}
else
{
set_task(20.0, "Announcement", id);
}
}


Zamieniamy na to
public client_putinserver(id)
{
// Find a czero bot to register Ham_Spawn
if ( !gCZBotRegisterHam && gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) )
{
// Delay for private data to initialize
set_task(0.1, "RegisterHam_CZBot", id);
}

g_imobile[id] = false;
newplayer[id] = true;
gStatsLoaded[id] = 0;

get_save_key(id);

if (!get_pcvar_num(gPcvarWymus))
{
client_cmd(id,"hud_centerid 0");
client_cmd(id,"cl_shadows 0");
set_task(20.0, "Announcement", id);
}
else
{
set_task(20.0, "Announcement", id);
}

RemoveHUD(id);
}


Szukamy
public client_disconnect(id)
{
save_badges(id);

if ( id == highestrankid )
{
set_task(2.0, "ranking_officer_disconnect");
}

clear_stat_globals(id);
gStatsLoaded[id] = 0;
}


Zamieniamy na to
public client_disconnect(id)
{
save_badges(id);

if ( id == highestrankid )
{
set_task(2.0, "ranking_officer_disconnect");
}

clear_stat_globals(id);
gStatsLoaded[id] = 0;
RemoveHUD(id);
}


Zapisujemy Plik :P

hud.inl

Szukamy
public DisplayHUD(id)
{
if ( !get_pcvar_num(gPcvarBF2Active) || !get_pcvar_num(gPcvarStatusText) ) return;
if ( !is_user_alive(id) || is_user_bot(id) ) return;

static HUD[64];

if ( !gStatsLoaded[id] )
{
formatex(HUD, charsmax(HUD), "[BF2] Wczytuje Dane...");
}
else
{
new rank = g_PlayerRank[id];
new nextrank;

switch(rank)
{
case 16, 19, 20, 21: nextrank = 15;
case 17: nextrank = 7;
case 18: nextrank = 8;
default: nextrank = rank;
}

++nextrank;

new nextrankxp = floatround(gRankXP[nextrank] * get_pcvar_float(gPcvarXpMultiplier));

if ( !get_pcvar_num(gPcvarBadgesActive) )
{
formatex(HUD, charsmax(HUD), "[BF2] Zabicia: %d/%d Ranga: %s", totalkills[id], nextrankxp, gRankName[rank]);
}
else
{
formatex(HUD, charsmax(HUD), "[BF2] Zabicia: %d/%d Odznaki: %d Ranga: %s", totalkills[id], nextrankxp, numofbadges[id], gRankName[rank]);
}
}

message_begin(MSG_ONE_UNRELIABLE, gmsgStatusText, _, id);
write_byte(0);
write_string(HUD);
message_end();
}


Zamieniamy na to
public DisplayHUD(id)
{
id -= TASK_HUD;

if ( !get_pcvar_num(gPcvarBF2Active) || !get_pcvar_num(gPcvarStatusText) )
return;
if ( !is_user_alive(id) || is_user_bot(id) )
return;

if(!is_user_connected(id))
{
remove_task(id+TASK_HUD);
return;
}

set_hudmessage(227, 96, 8, 0.05, 0.15, 0, 0.0, 0.3, 0.0, 0.0, 3)
if ( !gStatsLoaded[id] )
{
ShowSyncHudMsg(id, gHUD,"[%s] Wczytuje Dane...", gPluginName)
}
else
{
new rank = g_PlayerRank[id];
new nextrank;

switch(rank)
{
case 16, 19, 20, 21: nextrank = 15;
case 17: nextrank = 7;
case 18: nextrank = 8;
default: nextrank = rank;
}

++nextrank;

new nextrankxp = floatround(gRankXP[nextrank] * get_pcvar_float(gPcvarXpMultiplier));

if ( !get_pcvar_num(gPcvarBadgesActive) )
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nZabicia: %d/%d", gPluginName, gRankName[rank], totalkills[id], nextrankxp)
}
else
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nIlosc Odznak: %d^nZabicia: %d/%d", gPluginName, gRankName[rank], numofbadges[id], totalkills[id], nextrankxp)
}
}
}

public RemoveHUD(id)
{
remove_task(id+TASK_HUD);
}


Zapisujemy Plik :P

i kompilujemy teraz sma bf2 ;)

Instrukcja dla 1.5.3 / 1.5.5

bf2rank.sma
Szukamy
//Message sending variables
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
new gmsgSayText;


dodajemy pod tym to
new gHUD;
//Task
#define TASK_HUD 9897


aby wyglądało to tak
//Message sending variables
new gmsgStatusText;
new gmsgScreenFade;
new gmsgScreenShake;
new gmsgSayText;
new gHUD;
//Task
#define TASK_HUD 9897


następnie szukamy
    //Message sending.
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgSayText = get_user_msgid("SayText");


dodajemy pod tym to
gHUD = CreateHudSyncObj();

aby to wyglądało tak
    //Message sending.
gmsgStatusText = get_user_msgid("StatusText");
gmsgScreenFade = get_user_msgid("ScreenFade");
gmsgScreenShake = get_user_msgid("ScreenShake");
gmsgSayText = get_user_msgid("SayText");
gHUD = CreateHudSyncObj();


Szukamy dalej
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1);	// cz bots won't hook here must RegisterHamFromEntity
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre");


Zastepujemy to tym
	RegisterHam(Ham_Spawn, "player", "Ham_Spawn_Post", 1);	// cz bots won't hook here must RegisterHamFromEntity
RegisterHam(Ham_TakeDamage, "player", "Ham_TakeDamage_Pre");
RegisterHam(Ham_Killed, "player", "Ham_Death_Player", 1);


Zapisujemy Plik ;)

ham.inl

Szukamy
  
set_task(0.1, "DisplayHUD", id);


Zastepujemy to tym

if(!task_exists(id+TASK_HUD))
{
set_task(0.1, "DisplayHUD", id+TASK_HUD, _, _, "b");
}


Szukamy
	SetHamParamFloat(4, damage);

return HAM_HANDLED;
}


Zastepujemy to tym
	SetHamParamFloat(4, damage);

return HAM_HANDLED;
}

public Ham_Death_Player(id)
{
if(!is_user_connected(id))
return HAM_IGNORED;

RemoveHUD(id)

return HAM_IGNORED;
}


Zapisujemy Plik :P

forwards.inl

Szukamy
public client_putinserver(id)
{
// Find a czero bot to register Ham_Spawn
if ( !gCZBotRegisterHam && gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) )
{
// Delay for private data to initialize
set_task(0.1, "RegisterHam_CZBot", id);
}

g_imobile[id] = false;
newplayer[id] = true;
gStatsLoaded[id] = 0;

get_save_key(id);

set_task(20.0, "Announcement", id);
}


Zamieniamy na to
public client_putinserver(id)
{
// Find a czero bot to register Ham_Spawn
if ( !gCZBotRegisterHam && gPcvarBotQuota && get_pcvar_num(gPcvarBotQuota) > 0 && is_user_bot(id) )
{
// Delay for private data to initialize
set_task(0.1, "RegisterHam_CZBot", id);
}

g_imobile[id] = false;
newplayer[id] = true;
gStatsLoaded[id] = 0;

get_save_key(id);

set_task(20.0, "Announcement", id);
RemoveHUD(id);
}


Szukamy
public client_disconnect(id)
{
save_badges(id);

if ( id == highestrankid )
{
set_task(2.0, "ranking_officer_disconnect");
}

clear_stat_globals(id);
gStatsLoaded[id] = 0;
}


Zamieniamy na to
public client_disconnect(id)
{
save_badges(id);

if ( id == highestrankid )
{
set_task(2.0, "ranking_officer_disconnect");
}

clear_stat_globals(id);
gStatsLoaded[id] = 0;
RemoveHUD(id);
}


Zapisujemy Plik :P

hud.inl

Szukamy
public DisplayHUD(id)
{
if ( !get_pcvar_num(gPcvarBF2Active) || !get_pcvar_num(gPcvarStatusText) ) return;
if ( !is_user_alive(id) || is_user_bot(id) ) return;

static HUD[64];

if ( !gStatsLoaded[id] )
{
formatex(HUD, charsmax(HUD), "[BF2] Wczytuje Dane...");
}
else
{
new rank = g_PlayerRank[id];
new nextrank;

switch(rank)
{
case 16, 19, 20: nextrank = 15;
case 17: nextrank = 7;
case 18: nextrank = 8;
default: nextrank = rank;
}

++nextrank;

new nextrankxp = floatround(gRankXP[nextrank] * get_pcvar_float(gPcvarXpMultiplier));

if ( !get_pcvar_num(gPcvarBadgesActive) )
{
formatex(HUD, charsmax(HUD), "[BF2] Zabicia: %d/%d Ranga: %s", totalkills[id], nextrankxp, gRankName[rank]);
}
else
{
formatex(HUD, charsmax(HUD), "[BF2] Zabicia: %d/%d Odznaki: %d Ranga: %s", totalkills[id], nextrankxp, numofbadges[id], gRankName[rank]);
}
}

message_begin(MSG_ONE_UNRELIABLE, gmsgStatusText, _, id);
write_byte(0);
write_string(HUD);
message_end();
}


Zamieniamy na to
public DisplayHUD(id)
{
id -= TASK_HUD;

if ( !get_pcvar_num(gPcvarBF2Active) || !get_pcvar_num(gPcvarStatusText) )
return;
if ( !is_user_alive(id) || is_user_bot(id) )
return;

if(!is_user_connected(id))
{
remove_task(id+TASK_HUD);
return;
}

set_hudmessage(227, 96, 8, 0.05, 0.15, 0, 0.0, 0.3, 0.0, 0.0, 3)
if ( !gStatsLoaded[id] )
{
ShowSyncHudMsg(id, gHUD,"[%s] Wczytuje Dane...", gPluginName)
}
else
{
new rank = g_PlayerRank[id];
new nextrank;

switch(rank)
{
case 16, 19, 20, 21: nextrank = 15;
case 17: nextrank = 7;
case 18: nextrank = 8;
default: nextrank = rank;
}

++nextrank;

new nextrankxp = floatround(gRankXP[nextrank] * get_pcvar_float(gPcvarXpMultiplier));

if ( !get_pcvar_num(gPcvarBadgesActive) )
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nZabicia: %d/%d", gPluginName, gRankName[rank], totalkills[id], nextrankxp)
}
else
{
ShowSyncHudMsg(id, gHUD,"[%s]^nRanga: %s^nIlosc Odznak: %d^nZabicia: %d/%d", gPluginName, gRankName[rank], numofbadges[id], totalkills[id], nextrankxp)
}
}
}

public RemoveHUD(id)
{
remove_task(id+TASK_HUD);
}


Zapisujemy Plik :P

i kompilujemy teraz sma bf2 ;)
  • +
  • -
  • 31


#163670 Dynamiczny HUD

Napisane przez R3X w 24.08.2010 22:55

Dynamiczny HUD
dHUD.inc
v.1.03

Temat w budowie, stworzenie dokumentacji potrwa pewnie dłużej niż pisanie kodu :P
Tymczasem angielski opis wszystkich funkcji można znaleźć w pliku .inc

Dołączona grafikaDemonstracja

Eksperymentalna biblioteka do tworzenia różnych efektów na wiadomościach HUD. Jej głównym (lecz nie jedynym) zadaniem jest zautomatyzowanie ruchu i zmian koloru wyświetlanych komunikatów.



Plugin udostępnia szereg funkcji do pracy z efektami. Podstawowe operacje odbywają się na pojedynczych klatkach animacji, jak we flashu. Tak też wyświetlana jest wiadomość - klatka po klatce - zastąpienie napisu jego kopią w innym miejscu czy kolorze stworzy wrażenie ruchu i przekształceń kolorystycznych.

Download



Instalacja
Plik dHUD.sma należy skompilować i zainstalować na serwerze. Plugin korzystający z efektów skompiluje się wyłącznie lokalnie z dostępem do dHUD.inc.


Interfejs

Wszystkie udostępniane funkcje mają prefiks DHUD_*.

Pierwsze co trzeba zrobić to stworzyć 'obiekt' dhud. DHUD_create() zwraca uchwyt, którego używa się z pozostałymi funkcjami. Można utworzyć kopię istniejącego obiektu przez podanie jego uchwytu DHUD_create(dhud) [działa to podobnie jak konstruktor kopiujący w językach obiektowych].


Animację możemy zaprojektować manualnie przypisując właściwości każdej klatce z osobna (dHUD_test -> dhud) lub użyć filtrów (dHUD_test -> dhud3).

  • klatka po klatce
Wystarczy kilka wywołań DHUD_setFrame, każde przypisze kolor i położenie napisu tworząc animację

DHUD_setFrame(dhud, frame, iColor[3], Float:x, Float:y, iLen = 1);
dhud - uchwyt
frame - numer klatki, zaczynają się od 0, w przypadku numeru większego niż liczba dostępnych akurat klatek animacja zostaje wypełniona pustymi klatkami aż do podanego rozmiaru
iColor[3] - kolor napisu
x, y, - położenie napisu
iLen - długość klatki; w miejsce dwóch identycznych klatek z iLen=1 można dać jedną z iLen=2




  • filtry

Filtry służą do przetwarzania kilku klatek zgodnie z danym algorytmem.

DHUD_applyFilter(dhud, const szFilter[], startFrame, endFrame, Float:dx=D_LONG, Float:dy=D_ZERO, any:...)
dhud - uchwyt
szFilter[] - nazwa filtra, lista dostępnych jest drukowana po użyciu komendy "dhud info" przez admina z flagą od konfiguracji (H)
startFrame, endFrame - przedział klatek
dx, dy - przyrost wartości x i y, przydatne w funkcjach, funkcja realizująca filtr otrzymuje współrzędne x i y, z których może wyliczyć nowe położenie (przykład z sinusem w dHUD_test), każda ramka dostaje wartości x<poprzedniej ramki> + dx i y<poprzedniej ramki> + dy
any:.. dodatkowe parametry filtrów, opisane także w "dhud info"



Dwoma podstawowymi filtrami dHUD są SetPosition i SetColor. Dzięki nim, możemy ustawić kolor i położenie w wielu klatkach jednocześnie.

SetPosition ustawia podaną pozycję wszystkim klatkom z zakresu startFrame-endFrame
SetColor ustawia podany kolor wszystkim klatkom z zakresu startFrame-endFrame

Ten kod ustawi dhud długości 50 klatek w pozycji 0.5 0.5 w kolorze białym (255, 255, 255)
DHUD_setFrame(dhud, 50, {0,0,0}, 0.0, 0.0);
DHUD_applyFilter(dhud, "SetPosition", 0, 50, D_ZERO, D_ZERO, 0.5, 0.5);
DHUD_applyFilter(dhud, "SetColor", 0, 50, D_ZERO, D_ZERO, 255, 255, 255);



Jak już zbudujemy animację nadejdzie mement na wyświetlenie jej graczowi:
DHUD_display(id, dhud, Float:fInterval = 0.1, channel = 4, const szMessage[], any:...)
id - id gracza lub 0 - do wszystkich
dhud - uchwyt
fInterval - długość trwania klatki w sekundach; czas od pokazania pewnej ramki do następnej mnożony przez wartość iLen klatki
channel - kanał HUD, 1-4
szMessage[], ... - wiadomość; można użyć ciągów formatujących; %L + LANG_PLAYER z id = 0 niestety nie zadziała! może w przyszłym wydaniu


Forward
W momencie zakończenia animacji wykonywany jest forward
forward fwStopAnimation(id, dhud, bool:finished);

czyli w pluginie można dopisać publiczną funkcję, która zareaguje na to zdarzenie
public fwStopAnimation(id, dhud, bool:finished){}

parametr finished jest ustawiany na true, kiedy animacja zostanie zakończona zgodnie z planem i false jeśli zostanie zatrzymana/zastąpiona nową


Historia

1.03
- poprawione: rejestrowanie filtrów z parametrami w zewnętrznych pluginach

1.02
- poprawione: pierwsza ramka wyświetlana bez opóźnienia
- poprawione: forward wykonywany dokładnie w momencie końca animacji (a nie po puszczeniu ostatniej klatki)
- dodane: ustawienie iLen na 0 usuwa klatkę z animacji
- dodane: stock DHUD_removeFrames
- dodane: stock DHUD_removeAllFrames

1.01
- poprawa interfejsu
- dodane: czyszczenie nieużywanych tablic Array:
- dodane: forward onStopAnimation
- dodane: komenda "dhud info"

1.0
- pierwsza, nie publikowana szerzej wersja
  • +
  • -
  • 37


#223130 GmAMXBans 1.5.1 - FINAL

Napisane przez Szyfrant w 08.03.2011 19:58

GmAMXBans 1.5.1 FINAL


A więc tak

DżiEm Staff (Gm Staff) przeprasza za zbugggowaną wersję 1.5 i wydaję nową oznaczoną 1.5.1

Oto pliki, które zostały zmodyfikowane

Web
setup.php
ban_list.php
include / amxxhelper.php
include / sql.inc.php
include / config.inc.php
include / admin / admin_wm_ms.php
include / admin / admin_so_in.php
include / admin / admin_so_vs.php
include / admin / admin_so_up.php
include / admin / admin_sm_av.php
templates / *

Plugin
configs / amxbans.cfg
[+] Configs / amxbans-ssban.cfg
scripting / amxbans_core.sma
scripting / amxbans_main.sma
scripting / amxbans_ssban.sma
scripting / include / amxbans / cmdBan.inl
scripting / include / amxbans / init_functions.inl


Bugfixy:
(# 81) Dodano opóźnienie inicjacji połączenia MySQL
(# 64) Poprawiono bug ze zmianą nazwy serwera ",".
(# 74) Poprawiono edytowanie administratorów w WEB
(# 73) Poprawiono unban od strony WEB'a
(T2806) Zapisywanie konfiguracji serwera działa już poprawnie
I wiele innych ( Ychy).

Gratki dla:
@ XPaw
@ Szyfrant, @ Pavulon i generalnie dla AMXX.pl za pomoc techniczną
@ Nardamon - za coś tam. Nie no, żart. Za wyłapywanie bugów i pomoc ogólną.

------------------------------
Gratki od AMXX.PL

L0rdS^P0l4K - Za bystre oko Przycisk usuń bana bez zalogowania
Kawon - Za fix'a [GmAMXBans]Brak uprawnień

@ Gm-community.net
Pierwotny link http://gm-community.net/thread.2822 :D (Bo zawsze chcą)

---------------
Bugfixy AMXX.PL ( Załącznik)


(# 999997) Przycisk usuń bana bez zalogowania
(# 999998) Wyświetlanie podwójnych banów
(# 999999) [GmAMXBans]Brak uprawnień

ban_list.php
sql.inc.php
admin_sv.tpl (darkgold i default)
ban_list.tpl (darkgold i default)


Poprzednia ilość pobrań: 10
Załączony plik  bugfixy.zip   22,21 KB  4519 Ilość pobrań
(BUGFIXY NIE SĄ ZAWARTE W W PACZCE)

Instalacja Bugfix'ów
Pliki należy wkleić do folderu (Gm)AMXBansa

-------------------------------------------------

Załączony plik  spolszczone-configi.rar   2,63 KB  4804 Ilość pobrań


Instalacja Spolszonych config'ów
Folder configs należy wgrać do addons/amxmodx/
-------------------------------------------------
Oryginalne 1.5.1 Bez poprawek

Instalacja
Gdy robicie update to tylko zamieniacie pliki, gdy na nowo instalujecie to normalnie poprzez setup.php (Są tematy z instalacją)


Poprzednia ilość pobrań: 140
Załączony plik  (Gm) AMXBans 1.5.1(bez fixów).zip   2,36 MB  9692 Ilość pobrań


----------
Co poniektórzy zabierający się za instalację GmAMXBansa nie potrafią nawet skompilować .sma i piszą mi na PW. (Ostrzegam, zwarnuje)
Załączony plik  plugins.rar   129,26 KB  7519 Ilość pobrań

  • +
  • -
  • 48