←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

BattleField2
Jak wyłączyć odznakę z broni szturmowych n...

  • +
  • -
Buu071 - zdjęcie Buu071 23.08.2012

cześć
Jak w tytule . Jak wyłączyć odznake z broni szturmowych na 35_hp.
Żeby nie dawalo graczom 100 hp czy więcej w zależności od odznaki jaką mają ze szturmówek.
Alee chce żeby można było nabijać sobie odznake np z noża więc wyłączenie bf2 nie gra roli ...
proszę o szybkie odpowiedzi .
Odpowiedz

Gość_21977_* 24.08.2012

Automatyczna wiadomość


Ten temat został przeniesiony z forum

AMX Mod XPytania

do

ModyInne modyPytania
Odpowiedz

  • +
  • -
Misiaczek ;c - zdjęcie Misiaczek ;c 24.08.2012

która wersja bf2?
Odpowiedz

Gość_21977_* 24.08.2012

W funkcji
give_userweapon(id)
w pliku scripting/bf2/badgepowers.inl pobierz nazwę mapy
new szMapName[32];
get_mapname(szMapName, 31);
a następnie w warunku assaultlevel sprawdzającym, czy gracz ma odznakę z broni szturmowej sprawdź, czy prefix mapy to 35hp poprzez dodanie warunku
!containi(szMapName,"35hp_")
łącząc go z już istniejącym koniunkcją.

Przykładowo zamiast
public give_userweapon(id)
{
if ( !get_pcvar_num(gPcvarBadgesActive) || !get_pcvar_num(gPcvarBadgePowers) ) return;
if ( !is_user_alive(id) ) return;

new bool:givenitem = false;

new assaultlevel = g_PlayerBadges[id][BADGE_ASSAULT];
if ( assaultlevel )
{
new hp;
hp = 100 + (assaultlevel*10);

if ( get_user_health(id) < hp )
{
set_user_health(id, hp);

if ( pev(id, pev_max_health) < float(hp) )
{
set_pev(id, pev_max_health, float(hp));
}

givenitem = true;
}
}

// (...)
po edycji kod będzie wyglądał następująco:
public give_userweapon(id)
{
if ( !get_pcvar_num(gPcvarBadgesActive) || !get_pcvar_num(gPcvarBadgePowers) ) return;
if ( !is_user_alive(id) ) return;

new bool:givenitem = false;

new szMapName[32];
get_mapname(szMapName, 31);

new assaultlevel = g_PlayerBadges[id][BADGE_ASSAULT];
if ( assaultlevel && !containi(szMapName,"35hp_") )
{
new hp;
hp = 100 + (assaultlevel*10);

if ( get_user_health(id) < hp )
{
set_user_health(id, hp);

if ( pev(id, pev_max_health) < float(hp) )
{
set_pev(id, pev_max_health, float(hp));
}

givenitem = true;
}
}

//(...)
Oczywiście na końcu zapisz zmiany, rekompiluj plik, i wstrzyknij kod w pamięć (np. poprzez Orpheu, MemHack, Rage) albo zaktualizuj plik na serwerze i zmień mapę / zresetuj serwer.
Odpowiedz