←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Ranking expa

Locked

sztandi's Photo sztandi 19.04.2011

Siemka moze mi ktos pomoc naprowadzic jak zrobic. Chce stworzyc wiadomos w colorchat w ktorej bedzie widac Ranking expa(ktore miejsce zajmoje na serwie cos takiego jak /rank) gracza po wpisaniu "/exprank". proszę o pomoc :D


Jak wstawic w miejsce "X" aktualna pozycje gracza(ktory jest w ranku)

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <ColorChat>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
#define prefix "Serwer"

new Exp[33]; // <----- Nasz EXP

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

register_clcmd("say /exprank" , "RankExpa");
}
public RankExpa(id) {
ColorChat(id,GREEN,"[%s]^x01 Zajmujesz X miejsce z iloscia %d Expa",prefix,Exp[id]);
}


Dodano 20 kwiecień 2011 - 12:17:
@@ refresh
Edited by sztandi, 23.04.2011 21:24.
Quote

  • +
  • -
dram's Photo dram 20.04.2011

Musisz pobrać exp wszystkich graczy i użyć opcji SORT aby wyłonić najlepszego potem odliczyć który jest ten gracz:P
Quote

sztandi's Photo sztandi 20.04.2011

jak to zrobic xD??
Quote

  • +
  • -
phoeniX's Photo phoeniX 20.04.2011

Dodaj phoenixcs96 i odezwij się. Mam chyba CIĘ w znajomych. Jak bd w domu zrobię Ci to.
Quote

sztandi's Photo sztandi 20.04.2011

haga jednak nie potrafi mi pomoc moze ktos inny :D??
Edited by sztandi, 20.04.2011 19:26.
Quote

mierzwi's Photo mierzwi 23.04.2011

zapis sql czy nvault? w sql łatwo, w nvault nie próbowałem...
Quote

sztandi's Photo sztandi 23.04.2011

nvault
Quote

sztandi's Photo sztandi 23.04.2011

jakbym na sql teraz zmienil to bym stracil all
a ty jak bys zrobil??
Edited by sztandi, 23.04.2011 21:24.
Quote

  • +
  • -
Muzzi's Photo Muzzi 23.04.2011

A mógłbyś podzielić się sposobem na SQL ?
Quote

  • +
  • -
diablix's Photo diablix 24.04.2011

Tak na dobrą sprawę to co ma zapis do rankingu? -.-' Tak czy siak zmienne sortujemy tak jak kolega wyżej napisał..
Quote

sztandi's Photo sztandi 24.04.2011

diablix mozesz pomoc nigdy nie mialem z (sortem) stycznosci
Quote

mierzwi's Photo mierzwi 24.04.2011

jednak ma :D w SQL jest gotowa funkcja na sortowanie :D w nvault nie umie :D
Quote

  • +
  • -
dram's Photo dram 24.04.2011

Wracając do tego pytania czy traci się dane przerzucając się z nvault do sql to odpowiedź brzmi nie...

W kilkudziesięciu linijkach bez kombinowania możesz zrobić kopie z nvault do sql przez plugin...

Pętla która leci przez każdy wynik w nvault i kopiuje go do bazy:D

Taka jest moja odpowiedź na to pytanie. Natomiast SORT występuje w gunxpmodzie możesz tam sobie popatrzeć jak to wygląda również tam też jest ranking expa (top15) :)
Quote

mierzwi's Photo mierzwi 24.04.2011

w gunxpmodzie robi chyba ranking graczy z tych co są na serwerze, a mu chodzi chyba o ogólny :D no ale masz:
public showtop20(id)
{
	if( !get_pcvar_num(p_Enabled) && !get_pcvar_num(show_rank) )
		return;
	
	static Sort[33][2];
	new players[32],num,count,index;
	get_players(players,num);
    
	for(new i = 0; i < num; i++)
	{
		index = players[i];
		Sort[count][0] = index;
		Sort[count][1] = PlayerXp[index];
		count++;
	}
    
	SortCustom2D(Sort,count,"CompareXp");
	new motd[1501],iLen;
	iLen = formatex(motd, sizeof motd - 1,"<body bgcolor=#000000><font color=#98f5ff><pre>");
	iLen += formatex(motd[iLen], (sizeof motd - 1) - iLen,"%s %-22.22s %3s^n", "#", "Name", "# Experience");
    
	new y = clamp(count,0,20);
	new name[32],kindex;
    
	for(new x = 0; x < y; x++)
	{
		kindex = Sort[x][0];
		get_user_name(kindex,name,sizeof name - 1);
		iLen += formatex(motd[iLen], (sizeof motd - 1) - iLen,"%d %-22.22s %d^n", x + 1, name, Sort[x][1]);
	}
	iLen += formatex(motd[iLen], (sizeof motd - 1) - iLen,"</body></font></pre>");
	show_motd(id,motd, "GunXpMod Top 20");
}
public CompareXp(elem1[], elem2[])
{
	if(elem1[1] > elem2[1])
		return -1;
	else if(elem1[1] < elem2[1])
		return 1;
    
	return 0;
}

tu masz wytłumaczone na jakiej zasadzie działa SortCustom2D

Dokumentacja AMXX.pl: Core >> sorting > SortCustom2D

a co do tego: new y = clamp(count,0,20); - jeśli chcesz mieć top15 to daj tam 15, bo clamp sprawdza czy count jest mniejsze/większe od min/max.
Edited by funfel, 24.04.2011 21:42.
Quote

sztandi's Photo sztandi 25.04.2011

Jak zrobic zeby pokazywalo tak jak w /top15 wszystkich. bo teraz pokazuje tylko tych co sa na serwie
Quote

mierzwi's Photo mierzwi 25.04.2011

napisałem Ci to mistrzu: w gunxpmodzie robi chyba ranking graczy z tych co są na serwerze,
Quote

sztandi's Photo sztandi 25.04.2011

no to to ja wiem dlatego pytam jak zrobic zeby robil rank tak jak w top15
Quote

mierzwi's Photo mierzwi 25.04.2011

sam ciekaw jestem jak zrobić przez nvault, założyłem temat na aliedach, zobaczymy co odpiszą ;d
Quote

mierzwi's Photo mierzwi 06.05.2011

ok, temat na aliedach: Rank Exp Mod - AlliedModders

na priv mogę dać działający kod, bo tam trzeba się bawić aby zrobić własne zapisy do nicku itp...
Quote
Locked