←  Pytania dotyczące pluginów

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] jak dodac xp za awans rangi bf?

Zablokowany

Rocketfuel - zdjęcie Rocketfuel 02.04.2013

witam.
jak dodac do tego pluginu to zeby jak ktos awansuje to zeby mu dodawwalo expa?

Załączone pliki

Odpowiedz

  • +
  • -
Raen - zdjęcie Raen 03.04.2013

#include <amxmodx>
#include <csx>
#include <codmod>

new ranganum[27];
new ranga[][] =
{
"Brak",
"Szeregowy",
"Starszy Szeregowy",
"Kapral",
"Starszy Kapral",
"Plutonowy",
"Starszy Plutonowy",
"Sierzant",
"Sierzant Sztabowy",
"Starszy Sierzant",
"Starszy Sierzant Sztabowy",
"Mlodszy Chorazy",
"Mlodszy Chorazy Sztabowy",
"Chorazy",
"Starszy Chorazy",
"Chorazy Sztabowy",
"Starszy Chorazy Sztabowy",
"Podporucznik",
"Porucznik",
"Kapitan",
"Major",
"Podpulkownik",
"Pulkownik",
"General Brygady",
"General Dywizji",
"General Broni",
"General"
}
new rangaxp[27] =
{
0,
20,
80,
180,
300,
450,
600,
780,
890,
1000,
1150,
1400,
1690,
1900,
2200,
2600,
3000,
4000,
4700,
6500,
8500,
11000,
15000,
25000,
35000,
50000,
99999

}

new xptoadd;

public plugin_init()
{
register_plugin("BF Ranks", "0.1", "Rivit");

register_event( "ResetHUD", "eventUpdateStatus", "be");
register_event( "StatusValue", "eventUpdateStatus", "be", "1=1" ,"2=0");

xptoadd = register_cvar("cod_xp_awans", "10")
}

public eventUpdateStatus(id)
{
if(is_user_bot(id))
return;

static stats[8], body[8]
get_user_stats(id, stats, body)

while(stats[0] >= rangaxp[ranganum[id]])
{
ranganum[id]++
cod_set_user_xp(id, cod_get_user_xp(id)+get_pcvar_num(xptoadd))
client_print(id, print_chat, "*** Wlasnie awansowales na: %s (+%i Expa) ***", ranga[ranganum[id]], get_pcvar_num(xptoadd));
}

showStatus(id, "Zabicia: %d/%d Stopien: %s", stats[0], rangaxp[ranganum[id]], ranga[ranganum[id]]);
}

stock showStatus(id, const szStatus[], ...)
{
new szBuffer[128];
vformat(szBuffer, 127, szStatus, 3);

static msgStatusText = 0;

if(!msgStatusText)
msgStatusText = get_user_msgid("StatusText");

message_begin(MSG_ONE, msgStatusText, _, id);
write_byte(0);
write_string(szBuffer);
message_end();
}


Ilość expa ustawiasz cvarem cod_xp_awans
Odpowiedz

Rocketfuel - zdjęcie Rocketfuel 04.04.2013

super. ale czy mozna zrobic tak ze np.
awansyje na range nr2 i dostaje 3k expa
potem awansuje na range nr 3 i dostaje 8k expa
zeby nie zawsze dostawalo sie tyle samo

zeby bylo tak np

new addtoxp[27] =
{
        0,
        2000,
        8000,
        18000,
        30000,
        45000,
        60000,
        78000,
        89000,
        100000,
        1150,
        1400,
        1690,
        1900,
        2200,
        2600,
        3000,
        4000,
        4700,
        6500,
        8500,
        11000,
        15000,
        25000,
        35000,
        50000,
        99999

}
Odpowiedz

  • +
  • -
Raen - zdjęcie Raen 04.04.2013

Spróbuj tego:
#include <amxmodx>
#include <csx>
#include <codmod>

new ranganum[27];
new ranga[][] =
{
"Brak",
"Szeregowy",
"Starszy Szeregowy",
"Kapral",
"Starszy Kapral",
"Plutonowy",
"Starszy Plutonowy",
"Sierzant",
"Sierzant Sztabowy",
"Starszy Sierzant",
"Starszy Sierzant Sztabowy",
"Mlodszy Chorazy",
"Mlodszy Chorazy Sztabowy",
"Chorazy",
"Starszy Chorazy",
"Chorazy Sztabowy",
"Starszy Chorazy Sztabowy",
"Podporucznik",
"Porucznik",
"Kapitan",
"Major",
"Podpulkownik",
"Pulkownik",
"General Brygady",
"General Dywizji",
"General Broni",
"General"
}
new rangaxp[27] =
{
0,
20,
80,
180,
300,
450,
600,
780,
890,
1000,
1150,
1400,
1690,
1900,
2200,
2600,
3000,
4000,
4700,
6500,
8500,
11000,
15000,
25000,
35000,
50000,
99999

}
new rangaxpadd[27] =
{
0,
20,
80,
180,
300,
450,
600,
780,
890,
1000,
1150,
1400,
1690,
1900,
2200,
2600,
3000,
4000,
4700,
6500,
8500,
11000,
15000,
25000,
35000,
50000,
99999

}

public plugin_init()
{
register_plugin("BF Ranks", "0.1", "Rivit");

register_event( "ResetHUD", "eventUpdateStatus", "be");
register_event( "StatusValue", "eventUpdateStatus", "be", "1=1" ,"2=0");
}

public eventUpdateStatus(id)
{
if(is_user_bot(id))
return;

static stats[8], body[8]
get_user_stats(id, stats, body)

while(stats[0] >= rangaxp[ranganum[id]])
{
ranganum[id]++
cod_set_user_xp(id, cod_get_user_xp(id)+rangaxpadd[ranganum[id]])
client_print(id, print_chat, "*** Wlasnie awansowales na: %s (+%i Expa) ***", ranga[ranganum[id]], rangaxpadd[ranganum[id]]);
}

showStatus(id, "Zabicia: %d/%d Stopien: %s", stats[0], rangaxp[ranganum[id]], ranga[ranganum[id]]);
}

stock showStatus(id, const szStatus[], ...)
{
new szBuffer[128];
vformat(szBuffer, 127, szStatus, 3);

static msgStatusText = 0;

if(!msgStatusText)
msgStatusText = get_user_msgid("StatusText");

message_begin(MSG_ONE, msgStatusText, _, id);
write_byte(0);
write_string(szBuffer);
message_end();
}

Nie testowałem czy podziała, ile expa i gdzie to chyba wiesz jak ustawić?
Odpowiedz

Rocketfuel - zdjęcie Rocketfuel 05.04.2013

tak tak

niby sie kompiluje
ale nie wiem czy dziala.
moglbys przetestowac jakos? (boty).
mi boty nie dzialaja w ogóle.
Odpowiedz

  • +
  • -
Raen - zdjęcie Raen 05.04.2013

Niestety nie mam jak tego przetestować, wrzuć nocą na serwer i zgarnij kumpli. Pograjcie trochę i sprawdzisz czy działa, teoretycznie powinno :P
Odpowiedz

Rocketfuel - zdjęcie Rocketfuel 06.04.2013

dobra dzięki
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 06.04.2013

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany