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
 

Midi - zdjęcie

Midi

Rejestracja: 06.01.2012
Aktualnie: Nieaktywny
Poza forum Ostatnio: 22.08.2014 13:02
-----

Moje tematy

dust2long Zmiana po okreslonym czasie

31.07.2014 22:32

Witam. Chciałbym aby ktoś przerobił kod, który podałem niżej. Aktualnie mapa zmienia się po restarcie rundy. Niestety, plugin potrzebny jest na serwer, gdzie wgrany jest deathmatch oraz plugin infinite_round. Moja propozycja brzmi, by mapa zmieniała się, minutę po głosowaniu, ale jeżeli ktoś miałby lepszą propozycję, to może śmiało napisać. 

Spoiler

 

Do tytułu można się przyczepić, ale nie miałem pomysłu na lepszy. Jeżeli coś nie tak, moderator niech zmieni. 

[ROZWIĄZANE] Zmiana mapcycle od godziny 23

30.07.2014 00:10

Witam, szukam pluginu, który zmienia plik z czytanymi mapami od godziny 23 do 9. Czyli przykładowo, w mapcycle mam standardowe mapy, a chciałbym by od godziny 23 były grane mniejsze mapy. 

[ROZWIĄZANE] Niezamykanie jednej opcji w menu

18.07.2014 00:51

Witam. mam pytanie dotyczące zamykania się menu. Jak zrobić by menu zamykało tylko przy niektórych opcjach? 

Przykładowy kod jest poniżej. Chciałbym by menu "Wyświetl rank" wykonywało swoją funkcję. ale nie zamykało się po kliknięciu. 

public show_menu(id) {
    new menu = menu_create("Menu serwera", "handle_menu");
    
    menu_additem(menu, "Wyświetl regulamin");
    if(cs_get_user_team(id)==CS_TEAM_CT)
        menu_additem(menu, "Kup AK47");
    else
        menu_additem(menu, "Kup M4A1");
    menu_additem(menu, "Wyświetl rank");
    menu_additem(menu, "Zobacz inne serwery");
    menu_additem(menu, "Przekaż pieniąde graczowi");
    
    menu_display(id, menu)
}
 
public handle_menu(id, menu, item) {
    if(item == MENU_EXIT) {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
 
    switch(item) {
        case 0: client_cmd(id, "say /regulamin");
        case 1: daj_bron(id);
        case 2: client_cmd(id, "say /rank");
        case 3: client_cmd(id, "say /serwery");
        case 4: client_cmd(id, "say /przelew");
    }
 
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

Karanie za kampienie

16.07.2014 21:42

Witam, szukam pluginu, który slapuje i zabiera po 10 hp za kampienie, Za każdym zabraniem HP chcę, by wyskakiwał taki komunikat:

ot8n66.jpg

Od razu napiszę, że nie interesuje mnie Bad Camper. 

Najwięcej fragów w pluginie rangi

03.07.2014 01:38

Witam, korzystam z pluginu rangi by R3X. Chciałbym aby ktoś przerobił lekko kod by na sayu co 2 minuty wyskakiwała następujący tekst: 

[Nazwa-sieci.pl] Najwięcej fragów "liczba fragów" posiada gracz o nicku "Nick gracza" z rangą "nazwa rangi którą posiada" 

 

Jeżeli jeszcze jest taka możliwość, to bardzo proszę o dodanie prefixów przed nickiem osób piszących na sayu.

 

Jak ktoś nie ma czasu, to prefixy może pominąć. 

#include <amxmodx>
#include <amxmisc>
#include <csx>

#define PLUGIN "Rangi"
#define VERSION "1.0"
#define AUTHOR "R3X"

// User stats parms id
#define STATS_KILLS             0
#define STATS_DEATHS            1
#define STATS_HS                2
#define STATS_TKS               3
#define STATS_SHOTS             4
#define STATS_HITS              5
#define STATS_DAMAGE            6

//Max count of levels
#define LEVELS 20
//Max len of ClassName
#define CLASS_LEN 25
#define MAX_NAME_LENGTH         31
#define MAX_BUFFER_LENGTH       2047

#define TASK_SHOWCLASS 2222

//Buffers
new t_sName[MAX_NAME_LENGTH + 1]                    = ""
new g_sBuffer[MAX_BUFFER_LENGTH + 1]                = ""

new giXP[LEVELS+1];
new gszClass[LEVELS+1][CLASS_LEN];
new giPointer=1;

new gcvarMaxName;
new gcvarType, gcvarTop, gcvarList;

new gmsgSayText;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_dictionary("statsx.txt");
	
	register_clcmd("say /top10", "cmdTop10", 0, "- wyswietla range i statystyki");
	register_clcmd("say /rank", "cmdRank", 0, "- wyswietla range i statystyki");
	register_clcmd("say /rangi", "cmdHelp", 0, "- wyswietla liste rang");
	
	register_clcmd("say_team /top10", "cmdTop10", 0, "- wyswietla range i statystyki");
	register_clcmd("say_team /rank", "cmdRank", 0, "- wyswietla range i statystyki");
	register_clcmd("say_team /rangi", "cmdHelp", 0, "- wyswietla liste rang");
	
	gcvarMaxName = 	register_cvar("rangi_maxname", "Reszta jest milczeniem");
	gcvarType = 	register_cvar("rangi_hud","0");
	gcvarTop = 	register_cvar("rangi_top10","1");
	gcvarList = 	register_cvar("rangi_list","1");
	
	gmsgSayText = 	get_user_msgid("SayText"); 
}
//CONFIG
public plugin_cfg(){
	new szFile[128];
	get_configsdir(szFile, 127);
	add(szFile, 127, "/rangi.ini");
	if(!file_exists(szFile))
		return set_fail_state("Nie znalaziono pliku ranga.ini w folderze configs/");
	new szLine[96], iLen=0, szClass[CLASS_LEN], szXP[16];
	
	for(new i=0;read_file(szFile, i, szLine, 95, iLen);i++,szClass[0]=szXP[0]='^0'){
		if( giPointer > LEVELS) break;
		
		if(iLen==0) continue;
		trim(szLine);
		if(szLine[0]=='^0' || szLine[0]==';') continue;
		
		parse(szLine, szClass, CLASS_LEN-1, szXP, 15);
		if(szClass[0] && szXP[0]){
			giXP[giPointer]=str_to_num(szXP);
			copy(gszClass[giPointer], CLASS_LEN-1, szClass)
			giPointer++;
		}
	}
	return PLUGIN_CONTINUE;
}

//COMMANDS
public cmdTop10(id){
	if(get_pcvar_num(gcvarTop) <= 0){
		print_colored(id, "* ^x04Top10^x01 jest wylaczone");
		return PLUGIN_HANDLED;
	}
	format_top10(g_sBuffer)
	show_motd(id, g_sBuffer, "Top 10")
	return PLUGIN_CONTINUE;
}
public cmdRank(id)
{   
	static stats[8], body[8], rankpos, rankmax;
	get_user_stats(id, stats, body);
   
	rankpos = get_user_stats(id, stats, body);
	rankmax = get_statsnum();
   
	print_colored(id, "* Twoja ranga to^x04 %s^x01, zajmujesz^x03 %d^x01 pozycje z^x03 %d", get_rankname(stats[0]), rankpos, rankmax);
	print_colored(id, "* Posiadasz^x03 %d^x01 zabojstw,^x03 %d^x01 smierci oraz^x03 %d^x01 headshot'ow, zadajac^x03 %d^x01 obrazen.", stats[STATS_KILLS ], stats[STATS_DEATHS], stats[STATS_HS], stats[STATS_DAMAGE]);
   
	return PLUGIN_HANDLED;
} 
public cmdHelp(id){
	if(get_pcvar_num(gcvarList) <= 0){
		print_colored(id, "* ^x04Lista rang^x01 jest niedostepna");
		return PLUGIN_HANDLED;
	}
	static sBuffer[MAX_BUFFER_LENGTH+1];
	new iLen;
	iLen = formatex(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
	iLen += formatex(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "#id  Nazwa  Prog^n");
	if(giPointer > 1)
		iLen += formatex(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%02d %-22.22s < %d^n", 1, gszClass[1], giXP[1]);
	for(new i=2;i<giPointer;i++){
		iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%02d %-22.22s %d-%d^n", i, gszClass[i], giXP[i-1]+1,giXP[i]);
	}
	new szMaxName[CLASS_LEN];
	get_pcvar_string(gcvarMaxName, szMaxName, CLASS_LEN-1);
	iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "* %s > %d", szMaxName, giXP[giPointer-1]);
	show_motd(id, sBuffer, "Rangi");
	return PLUGIN_HANDLED;
}

//FORWARDS
public client_connect(id)
{
	if(is_user_bot(id) || get_pcvar_num(gcvarType)==0)
		return;
   
	set_task(1.0,"taskDisplayRank",TASK_SHOWCLASS+id,_,_,"b");
}

public client_disconnect(id)
	if(task_exists(TASK_SHOWCLASS+id))
		remove_task(TASK_SHOWCLASS+id)
   
//TASKS
public taskDisplayRank(id){
	id-=TASK_SHOWCLASS;
	static stats[8], body[8];
	get_user_stats(id, stats, body);
	
	set_hudmessage(255, 255, 255, 0.15, 0.55);
	show_hudmessage(id, "Ranga: %s^nZabojstw: %d",get_rankname(stats[STATS_KILLS ]), stats[STATS_KILLS ]);
}

//CLASS
get_lvl_by_exp(iXP){
	new i;
	for(i=1;i<=giPointer;i++){
		if(giXP[i]>=iXP)
		break;
	}
	if(i > giPointer)
		return -1;
	return i;
}
get_rankname(frags){ 
	 static szClass[CLASS_LEN];
	 new iLvl=get_lvl_by_exp(frags);
	 if(iLvl>=0)
	 	copy(szClass,CLASS_LEN-1, gszClass[iLvl]);
	 else
		get_pcvar_string(gcvarMaxName, szClass, CLASS_LEN-1);
	 return szClass;
}

//RANK
// Stats formulas
Float:effec(izStats[8])
{
	if (!izStats[STATS_KILLS])
		return (0.0)
	
	return (100.0 * float(izStats[STATS_KILLS]) / float(izStats[STATS_KILLS] + izStats[STATS_DEATHS]))
}

Float:accuracy(izStats[8])
{
	if (!izStats[STATS_SHOTS])
		return (0.0)
	
	return (100.0 * float(izStats[STATS_HITS]) / float(izStats[STATS_SHOTS]))
}

// Get and format top 10
format_top10(sBuffer[MAX_BUFFER_LENGTH + 1])
{
	new iMax = get_statsnum()
	new izStats[8], izBody[8]
	new iLen = 0

	if (iMax > 10)
		iMax = 10;

	new lKills[16], lDeaths[16], lHits[16], lShots[16], lEff[16], lAcc[16]
	
	format(lKills, 15, "%L", LANG_SERVER, "KILLS")
	format(lDeaths, 15, "%L", LANG_SERVER, "DEATHS")
	format(lHits, 15, "%L", LANG_SERVER, "HITS")
	format(lShots, 15, "%L", LANG_SERVER, "SHOTS")
	format(lEff, 15, "%L", LANG_SERVER, "EFF")
	format(lAcc, 15, "%L", LANG_SERVER, "ACC")
	
	ucfirst(lEff)
	ucfirst(lAcc)

	iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
	iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2s %-22.22s %6s %6s %6s %6s %4s %4s %4s^n", "#", "Nick", "Level", lKills, lDeaths, lHits, lShots, "HS", lEff, lAcc)
	
	for (new i = 0; i < iMax && MAX_BUFFER_LENGTH - iLen > 0; i++)
	{
		get_stats(i, izStats, izBody, t_sName, MAX_NAME_LENGTH)
		replace_all(t_sName, MAX_NAME_LENGTH, "<", "[")
		replace_all(t_sName, MAX_NAME_LENGTH, ">", "]")
		iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2d %-22.22s %-22.22s %6d %6d %6d %6d %4d %3.0f%% %3.0f%%^n", i + 1, t_sName,get_rankname(izStats[STATS_KILLS]), izStats[STATS_KILLS], 
						izStats[STATS_DEATHS], izStats[STATS_HITS], izStats[STATS_SHOTS], izStats[STATS_HS], effec(izStats), accuracy(izStats))
	}
}
//STOCKS
stock print_colored(id, const text[], any:...)
{
    static szMessage[192];
    szMessage[0]='^x01';
    vformat(szMessage[1], 190, text, 3);
 
    if(id==0)
    {
        new plist[32], playernum;
        get_players(plist, playernum);
        for(new i = 0; i < playernum; i++)
        {
            id = plist[i];
            message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id);
            write_byte(id);
            write_string(szMessage);
            message_end();
        }
    }
    else
    {
        message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id);
        write_byte(id);
        write_string(szMessage);
        message_end();
    }
}