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
 

Zdjęcie

Jak wyzerować fragi z poprzedniej rundy na następną?


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
7 odpowiedzi w tym temacie

#1 V3ko

    Guru

  • Power User

Reputacja: 83
Zaawansowany

  • Postów:746
  • Lokalizacja:Stopnica
Offline

Napisano 12.02.2013 15:12

Cześć, próbuję wyzerować fragi z poprzedniej rundy na następną w evencie HLTV. Kod pluginu:

#include <amxmodx>
#include <amxmisc>
#include <codmod>

#define PLUGIN "[COD] EXP dla najlepszych 3 graczy"
#define VERSION "0.69"
#define AUTHOR "pRED (edit by =ToRRent=)"

// Dla tych nie kumatych ;) jest to przerobiony plugin bf2medals autorstwa pRED

new g_iMaxPlayers
new gmsgSayText;

new cvar_exp_1miejsce, cvar_exp_2miejsce, cvar_exp_3miejsce;
new exp_1miejsce, exp_2miejsce, exp_3miejsce;

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);

cvar_exp_1miejsce = register_cvar("cod_exp1", "1000"); // ilosc doswiadczenia za 1 miejsce
cvar_exp_2miejsce = register_cvar("cod_exp2", "750"); // ilosc doswiadczenia za 2 miejsce
cvar_exp_3miejsce = register_cvar("cod_exp3", "500"); // ilosc doswiadczenia za 3 miejsce

register_message(SVC_INTERMISSION, "Message_Intermission");
g_iMaxPlayers = get_maxplayers();
gmsgSayText = get_user_msgid("SayText");

exp_1miejsce = get_pcvar_num(cvar_exp_1miejsce);
exp_2miejsce = get_pcvar_num(cvar_exp_2miejsce);
exp_3miejsce = get_pcvar_num(cvar_exp_3miejsce);
}
public Message_Intermission(){
set_task(0.1, "przyznanie_doswiadczenia");
}
public przyznanie_doswiadczenia()
{
//uruchom podczas SVC_INTERMISSION (tuz przed zmiana mapy)
//Znajdz 3 najlepszych graczy z najwieksza liczba fragow i przyznaj doswiadczenie

new players[32], num;
get_players(players, num, "h");

new tempfrags, id;

new swapfrags, swapid;

new starfrags[3]; //0 - 3 miejsce / 1 - 2 miejsce / 2 - 1 miejsce
new starid[3];

for (new i = 0; i < num; i++)
{
id = players[i];
tempfrags = get_user_frags(id);
if ( tempfrags > starfrags[0] )
{
starfrags[0] = tempfrags;
starid[0] = id;
cod_set_user_xp(starid[0], cod_get_user_xp(starid[0])+exp_3miejsce);
if ( tempfrags > starfrags[1] )
{
swapfrags = starfrags[1];
swapid = starid[1];
starfrags[1] = tempfrags;
starid[1] = id;
starfrags[0] = swapfrags;
starid[0] = swapid;
cod_set_user_xp(starid[1], cod_get_user_xp(starid[1])+exp_2miejsce);

if ( tempfrags > starfrags[2] )
{
swapfrags = starfrags[2];
swapid = starid[2];
starfrags[2] = tempfrags;
starid[2] = id;
starfrags[1] = swapfrags;
starid[1] = swapid;
cod_set_user_xp(starid[2], cod_get_user_xp(starid[2])+exp_1miejsce);

}
}
}
}
new name[32];
new winner = starid[2];

if ( !winner )
return;

new line[100];
line[0] = 0x04;
formatex(line[1], 98, "Najlepsi gracze na tej mapie:");
ShowColorMessage(starid[2], MSG_BROADCAST, line);
line[0] = 0x04;
get_user_name(starid[2], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, "1. %s - %i Fragow (+%d dosw.)", name, starfrags[2], exp_1miejsce);
ShowColorMessage(starid[2], MSG_BROADCAST, line);

get_user_name(starid[1], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, "2. %s - %i Fragow (+%d dosw.)", name, starfrags[1], exp_2miejsce);
ShowColorMessage(starid[2], MSG_BROADCAST, line);

get_user_name(starid[0], name, charsmax(name));
line[0] = 0x04;
formatex(line[1], 98, "3. %s - %i Fragow (+%d dosw.)", name, starfrags[0], exp_3miejsce);

ShowColorMessage(starid[2], MSG_BROADCAST, line);
}
ShowColorMessage(id, type, message[])
{
message_begin(type, gmsgSayText, _, id);
write_byte(id);
write_string(message);
message_end();
}


a próbuję to wyzerować w ten sposób:

do plugin init dodaje:
register_event("HLTV", "eHLTV", "a", "1=0", "2=0");


a na koniec:
public eHLTV()
{
for( new i = 1 ; i <= g_iMaxPlayers ; i++ )
{
starfrags[ i ] = 0;
}
}

próbowałem też wyzerować wszystkie zmienne w tym evencie hltv związane z fragami, ale nic to nie dało.
  • +
  • -
  • 0

#2 MrBombastic

    Banned

  • Zbanowany

Reputacja: 32
Życzliwy

  • Postów:94
  • Imię:Kazimierz
  • Lokalizacja:Internet
Offline

Napisano 12.02.2013 15:26

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <cstrike>
#include <amxmisc>
#include <fun>
#include <fakemeta_util>

#define PLUGIN "xXPLUGINXx"
#define VERSION "1.0"
#define AUTHOR "MrBombastic"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("HLTV", "NowaRunda", "a", "1=0", "2=0")  
}

public NowaRunda()
{
	
	for( new i = 1 ; i <= 32 ; i++ ){
		if(is_user_connected(i)){
		    fm_set_user_frags(i, 0)
		}
	}
}
[code]/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <cstrike>
#include <amxmisc>
#include <fun>

#define PLUGIN "xXPLUGINXx"
#define VERSION "1.0"
#define AUTHOR "MrBombastic"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("HLTV", "NowaRunda", "a", "1=0", "2=0")  
}

public NowaRunda()
{
	
	for( new i = 1 ; i <= 32 ; i++ ){
		if(is_user_connected(i)){
		    set_user_frags(i, 0)
		}
	}
}[/code]
?

Użytkownik MrBombastic edytował ten post 12.02.2013 15:32

Posiadam unikalną paczkę PB - więcej informacji na PW
Dołączona grafika

#3 JabLuszko

    Zaawansowany

  • Użytkownik

Reputacja: 45
Pomocny

  • Postów:126
  • Imię:Michał
  • Lokalizacja:Warszawa
Offline

Napisano 12.02.2013 15:27

1. Nie ogarniam dlaczego próbujesz co rozpoczęcie rundy zerować fragi - ten plugin i tak działa tylko na koniec mapy.
2. Fragi są pobierane przez http://amxx.pl/dokum.../get_user_frags więc żadne zerowanie zmiennych tego skryptu/programu nie ma sensu.
3. Mam wrażenie, że starasz się osiągnąć coś w stylu "Najlepszy gracz rundy" - znajdź taki plugin tutaj i dodaj do niego dodawanie expa - tak będzie łatwiej

Użytkownik JabLuszko edytował ten post 12.02.2013 15:27

  • +
  • -
  • 0

#4 V3ko

    Guru

  • Autor tematu
  • Power User

Reputacja: 83
Zaawansowany

  • Postów:746
  • Lokalizacja:Stopnica
Offline

Napisano 12.02.2013 15:33

Zaraz sprawdzę Bombastic. JabLuszko, jak nie masz pojęcia co i jak,to nie pisz postów.
  • +
  • -
  • 0

#5 V3ko

    Guru

  • Autor tematu
  • Power User

Reputacja: 83
Zaawansowany

  • Postów:746
  • Lokalizacja:Stopnica
Offline

Napisano 14.02.2013 12:49

Bombastic, twoim sposobem wyzeruje mi wszystkie fragi, chciałbym tylko te zmienne, to znaczy żeby w tabeli pokazywało wszystkie fragi, a w kolejnych rundach fragi tylko z danej rundy.
  • +
  • -
  • 0

#6 JabLuszko

    Zaawansowany

  • Użytkownik

Reputacja: 45
Pomocny

  • Postów:126
  • Imię:Michał
  • Lokalizacja:Warszawa
Offline

Napisano 14.02.2013 14:46

W pluginie który podałeś nic nie jest pokazywane 'z danej rundy'. Tam są fragi tylko na koniec mapy.
Albo dorzuciłeś coś do niego oprócz tego co podałeś w poście albo piszesz o czymś zupełnie niezwiązanym z tematem.
  • +
  • -
  • 0

#7 V3ko

    Guru

  • Autor tematu
  • Power User

Reputacja: 83
Zaawansowany

  • Postów:746
  • Lokalizacja:Stopnica
Offline

Napisano 14.02.2013 20:31

Bez różnicy mi to kiedy pokazuje, ma po prostu nie sumować z rundy na rundę. Resztą się potem będę zamartwiać.
  • +
  • -
  • 0

#8 Klakier

    Volenti non fit iniuria

  • Power User

Reputacja: 391
Wszechpomocny

  • Postów:878
  • GG:
  • Imię:Sebastian
  • Lokalizacja:Mogilno
Offline

Napisano 14.02.2013 21:08

No to w DeathMsg zliczaj ilość fragów do tablicy i ustawiaj, potem co rundę zeruj.
  • +
  • -
  • 0

Sell - System Klanów (wojny, top15 etc)

 

Kontakt GG: 7285018





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych