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

3 najlepszych graczy | zle rozdaje expa


Najlepsza odpowiedź PANDA_2zl, 06.11.2024 17:05

nad plugin_init

enum data{ index, frags }; 

i podmienić kod 'przyznanie_doswiadczenia()' na

public przyznanie_doswiadczenia(){
    new Array: players;
    players=ArrayCreate(data);
    new maxplayers=get_maxplayers(), item[data];
    for(new i=1; i<=maxplayers; i++){
        if(!is_user_connected(i)) continue;
        item[index]=i;
        item[frags]=get_user_frags(i);
        ArrayPushArray(players, item);
    }
    ArraySort(players, "sort_frags");
    ArrayGetArray(players, 0, item);
    Poke_Give_XP(item[index], -1, 300);
    ArrayGetArray(players, 1, item);
    Poke_Give_XP(item[index], -1, 200);
    ArrayGetArray(players, 2, item);
    Poke_Give_XP(item[index], -1, 100);
}

public sort_frags(Array:array, id_a, id_b){
    static item_a[data], item_b[data];
    ArrayGetArray(array, id_a, item_a);
    ArrayGetArray(array, id_b, item_b);
    return (item_a[frags] < item_b[frags]) ? 1 : (item_a[frags] > item_b[frags]) ? -1 : 0;
}

rozwiązane na pv, wrzucam dla potomnych

Przejdź do postu


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

#1 ^^DeeD^^

    Pomocny

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:64
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sanok
Online

Napisano 05.11.2024 17:34

Witam.
Problem jest taki,że za 3 miejsce prawidłowo przyznaje 100 expa natomiast za 2 miejsce przyznaje 300 expa (zadeklarowane 200),a za pierwsze miejsce 600 expa(zadeklarowane 300).

 

public przyznanie_doswiadczenia()
{
	
	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];
		new PobierzPD = pm_get_user_pd(id)
		tempfrags = get_user_frags(id);
		if ( tempfrags > starfrags[0])
		{
			starfrags[0] = tempfrags;
			starid[0] = id;
			Poke_Give_XP(starid[0], -1, 100);
	
			if ( tempfrags > starfrags[1])
			{
				swapfrags = starfrags[1];
				swapid = starid[1];
				starfrags[1] = tempfrags;
				starid[1] = id;
				starfrags[0] = swapfrags;
				starid[0] = swapid;
				Poke_Give_XP(starid[1], -1, 200);
				
				if ( tempfrags > starfrags[2])
				{
					swapfrags = starfrags[2];
					swapid = starid[2];
					starfrags[2] = tempfrags;
					starid[2] = id;
					starfrags[1] = swapfrags;
					starid[1] = swapid;
					Poke_Give_XP(starid[2], -1, 300);
					
				}
			}
		}
	}	
}

  • +
  • -
  • 0

#2 PANDA_2zl

    Guru

  • Power User

Reputacja: 196
Profesjonalista

  • Postów:763
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Napisano 06.11.2024 17:05   Najlepsza odpowiedź

nad plugin_init

enum data{ index, frags }; 

i podmienić kod 'przyznanie_doswiadczenia()' na

public przyznanie_doswiadczenia(){
    new Array: players;
    players=ArrayCreate(data);
    new maxplayers=get_maxplayers(), item[data];
    for(new i=1; i<=maxplayers; i++){
        if(!is_user_connected(i)) continue;
        item[index]=i;
        item[frags]=get_user_frags(i);
        ArrayPushArray(players, item);
    }
    ArraySort(players, "sort_frags");
    ArrayGetArray(players, 0, item);
    Poke_Give_XP(item[index], -1, 300);
    ArrayGetArray(players, 1, item);
    Poke_Give_XP(item[index], -1, 200);
    ArrayGetArray(players, 2, item);
    Poke_Give_XP(item[index], -1, 100);
}

public sort_frags(Array:array, id_a, id_b){
    static item_a[data], item_b[data];
    ArrayGetArray(array, id_a, item_a);
    ArrayGetArray(array, id_b, item_b);
    return (item_a[frags] < item_b[frags]) ? 1 : (item_a[frags] > item_b[frags]) ? -1 : 0;
}

rozwiązane na pv, wrzucam dla potomnych


  • +
  • -
  • 2




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

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