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
 

patryk9009 - zdjęcie

patryk9009

Rejestracja: 29.07.2012
Aktualnie: Nieaktywny
Poza forum Ostatnio: 06.05.2014 15:33
-----

#431098 Napis GLOBAL (przy globalnych pokemonach).

Napisane przez ELOS w 12.07.2012 09:02

Witam niecały miesiąc temu stworzyłem swój pokemod dla zabawy no i myślałem co można tam dodać jedną z modyfikacji był zielony napis
GLOBAL przy pokemonach z globalnym skillem. Co dziwne nie miałem z tym problemów oO.

Plik który będziemy musieli edytować to helps.inl

Szukamy


new text[2501], len = 2500, n, i, line_format[300];
new ename[NAME_LENGTH];

Pod tym dodajemy

new global[200];

Szukamy

if( PokeInfo[i] & PI_EVOLVE ){
	if( (evolve = OtherEvolve(i)) ){
	 if( evolve == TRADE_EVOLVE )
	  copy(ename,25,"(Trading)")
	 else
	  formatex(ename,25,"(%s)",ItemToName(-1*evolve))
	}
	else if( (evolve = LevelEvolve(i)) )
	 formatex(ename,25,"(Level %d)",evolve)
   }
   else
	copy(ename, 25, EMPTY)
Wklejamy pod tym teraz nasz główny kod
if( PokeInfo[i] & PI_GLOBAL ){
	 copy(global,200,"- <font color='green'>GLOBAL</font>")
   }

else
copy(global, 25, EMPTY)

Następnie w poniższych formatexach musimy dodać %s oraz zmienną global

W moim przypadku wygląda to tak

if(motd && its_a_motd && show_pics)
	formatex(line_format, 300, "%d. %s %s%s %s - %s - %s<br>",i,PokeImageHtml(i),PokeToName(i),ename,global,SkillToName(PokeSkill[i]),SkillDescription(PokeSkill[i],id))
   else
	formatex(line_format, 300, "%d.%s%s %s - %s - %s%s",i,PokeToName(i),ename,global,SkillToName(PokeSkill[i]),SkillDescription(PokeSkill[i],id),motd?"<br>":EMPTY)

W temacie zamieszczam również sma helps.inl gdzie spolszczyłem prawie wszystko oraz zmieniłem wygląd pokedexa. Oczywiście modyfikacja na pokemony globalne jest również wgrana.

Ps. Dziś odkryłem że istnieje pokemod który posiada również taką modyfikacje. Autorów tamtego pokemoda przepraszam i mam nadzieje że nie będą mieć do mnie urazy przez to że udostępniłem tą modyfikacje.

Załączone pliki

  • Załączony plik  helps.inl   23,81 KB  103 Ilość pobrań

  • +
  • -
  • 4


#317000 PokeMod Dodatki

Napisane przez radim w 02.11.2011 19:34

Już jest .Jakimś cudem samo się wykasowało.
  • +
  • -
  • 1


#578890 PokeMod Dodatki

Napisane przez radim w 19.10.2013 18:31

Temat został odświeżony.
Plugin jest wzbogacony o "dużo więcej" funkcji niż jak to było pierwotnie. Plugin do ściągnięcia w pierwszym poście!

Jestem otwarty na propozycje. Gdy znajdziecie jakieś errory/błędy/bugi proszę pisać!

 

  • +
  • -
  • 1


#263524 PokeMod Dodatki

Napisane przez radim w 27.06.2011 19:21

PokeMod Dodatki
by radim

 
opis.png
PokeMod - plugin stworzony na potrzebny mojego serwera PokeMod, mimo to udostępniam go również Wam. Plugin nie jest jakąś rewolucją w świecie podpluginów pokemod'a, ale myślę że wam się to przyda.
Co znajduję się w pluginie? Otóż:

  • exp za podłożenie/rozbrojenie bomby
  • exp za uratowanie hosta
  • exp za wygraną rundę
  • exp za pełen serwer
  • buyxp (kupowanie expa)
  • dodatkowy exp za headshot'a

cvary.png
poke_iloscosob (domyślnie 2) // od ilu osób na serwerze ma dawać dodatkowy exp
poke_plantxp (domyślnie 300) // ile expa ma dawać za podłożenie bomby
poke_defusxp (domyślnie 300) // ile expa ma dawać za rozbrojenie bomby
poke_rescuxp (domyślnie 100) // ile expa ma dawać za uratowanie JEDNEGO hosta

poke_wygranarunda (domyślnie 100) // ile expa ma dawać za wygraną rundę

poke_fullserver (domyślnie 500) // ile expa ma dawać za full serwer

poke_hsxp (domyślnie 20) // ile expa ma dawać za headshot'a

poke_buyxp (domyślnie 80) // ile expa ma dawać gdy go kupimy za pomocą komendy buyxp
poke_costxp (domyślnie 8000) // ile kosztuje kupienie expa

instalacja.png
pm_dodatki.sma wrzuć do addons>amxmodx>scripting
pm_dodatki.amxx wrzuć do addons>amxmodx>plugins
w addons>amxmodx>configs>plugins.ini dopisz na końcu pm_dodatki.amxx
inne informacje

Changelog: -
 

Do dodania:

  • prefix przed nickiem na czacie
  • multilanguage
  • cvar buyxp on/off

 

Jestem otwarty na propozycje. Gdy znajdziecie jakieś errory/błędy/bugi proszę pisać!

download.png
Załączony plik  pm_dodatki.sma   3,42 KB  248 Ilość pobrań
  pm_dodatki.amxx


  • +
  • -
  • 3


#555800 Poszukuje kodu na gildie

Napisane przez Carbon w 16.07.2013 17:48

/* Gildie by stachu mroz */
public zapisz_gildia_nick(id)
{
	new AuthID[35]
	
	get_user_name(id,AuthID,34)
	
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-GIL",AuthID);
	format(vaultdata,255,"^"%s^"",nazwa_gildi[id])
	nvault_set(g_gil_spr,vaultkey,vaultdata);
	
	new vaultkey1[64]
	format(vaultkey1,63,"%s-GIL",AuthID);
	nvault_remove(g_wplaty,vaultkey1);
	
	ColorChat(id,GREEN,"[*%s*]^x01 Przypisano nick do gildi",nazwa_gildi[id])
	
	return PLUGIN_CONTINUE
}
public nick_gildia(id)
{
	new AuthID[35]
	
	get_user_name(id,AuthID,34)
	
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-GIL",AuthID)
	nvault_get(g_gil_spr,vaultkey,vaultdata,255);
	
	new ng[32]
	parse(vaultdata,ng , 31)
	
	copy(nazwa_gildi[id], 31, ng);
	
	if(!equali(nazwa_gildi[id],"")){
		wczytaj_gildia(id)
	}else nazwa_gildi[id] = "Brak"
	
	return PLUGIN_CONTINUE
}
public zapis_gildia(id,mode)
{
	if(mode == 1){
		get_user_name(id,nazwa_zalozycial[id],32)
		ilosc_czlonkow[id]=1
		gildia_lvl[id]=1
	}	
	
	new vaultkey[64],vaultdata[256];
	format(vaultkey,63,"%s-GTB",nazwa_gildi[id]);
	format(vaultdata,255,"%i %i %i ^"%s^" %i %i %i %i %i %i %i %i",gildia_lvl[id],gildia_exp[id],ilosc_czlonkow[id],nazwa_zalozycial[id],g_dmg[id],g_def[id],g_hp[id],g_spid[id],g_pkt[id],g_kam[id],g_drop[id],g_woj[id])
	nvault_set(g_gildia,vaultkey,vaultdata);
}

public wczytaj_gildia(id)
{
	new vaultkey[64],vaultdata[256];
	format(vaultkey,63,"%s-GTB",nazwa_gildi[id]);
	nvault_get(g_gildia,vaultkey,vaultdata,255)
	
	new nz[32],gl[32],ge[32],ic[32],gd[32],gde[32],gh[32],gs[32],pkt[32],gh1[32],gs1[32],pkt1[32]
	
	parse(vaultdata, gl, 31, ge ,31, ic ,31, nz ,31, gd ,31, gde ,31, gh ,31, gs ,31, pkt ,31, gh1 ,31, gs1 ,31, pkt1 ,31)
	
	gildia_lvl[id] = str_to_num(gl);
	gildia_exp[id] = str_to_num(ge);
	ilosc_czlonkow[id] = str_to_num(ic);
	g_dmg[id] = str_to_num(gd);
	g_def[id] = str_to_num(gde);
	g_hp[id] = str_to_num(gh);
	g_spid[id] = str_to_num(gs);
	g_pkt[id] = str_to_num(pkt);
	g_kam[id] = str_to_num(gh1);
	g_drop[id] = str_to_num(gs1);
	g_woj[id] = str_to_num(pkt1);
	
	switch(g_spid[id]){
		case 20 :g_spid[id]=35
			case 40:g_spid[id]=70
			case 60:g_spid[id]=105
			case 80:g_spid[id]=140
		}
	copy(nazwa_zalozycial[id], 31, nz);
}
//////////////menu///////
public wczytaj_wplata(id)
{
	new AuthID[35]
	
	get_user_name(id,AuthID,34)
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-GIL",AuthID)
	nvault_get(g_wplaty,vaultkey,vaultdata,255);
	new nz[32]
	
	parse(vaultdata, nz, 31)
	
	wplata[id] = str_to_num(nz);
}
public zapisz_wplata(id)
{
	new AuthID[35]
	
	get_user_name(id,AuthID,34)
	new vaultkey[64],vaultdata[256]
	format(vaultkey,63,"%s-GIL",AuthID)
	format(vaultdata,255,"%i",wplata[id])
	nvault_set(g_wplaty,vaultkey,vaultdata);
}
//////////////menu///////
public zrob_gildie(id)
{
	if(player_lvl[id] < 34){
		ColorChat(id,GREEN,"[*diablo*]^x01 Aby zalozyc wlasna gildie potrzeba min. 35lvl")
		return PLUGIN_HANDLED
	}
	
	client_cmd(id, "messagemode wpisz_nazwe_gildi")
	ColorChat(id,GREEN,"[*diablo*]^x01 Wpisz nazwe gildi")
	return PLUGIN_HANDLED
}
public stworz_gildie_n(id)
{
	new text[192]
	
	read_argv(1,text,191)
	format(nazwa, charsmax(nazwa), "%s", text)
	
	new Unique_name[100]
	add(Unique_name,99,nazwa)
	
	nazwa_gildi[id] = Unique_name
	
	if(equali(nazwa_gildi[id],"Brak")||equali(nazwa_gildi[id],""))
	{
		ColorChat(id,GREEN,"[*%s*]^x01 Blad",nazwa_gildi[id])
		return PLUGIN_HANDLED;
	}
	
	
	wczytaj_gildia(id)
	if(gildia_lvl[id]==0){
		ColorChat(id,GREEN,"[*%s*]^x01Zalozyles nowa gildie",nazwa)
		zapisz_gildia_nick(id)
		zapis_gildia(id,1)
		}else{ 
		ColorChat(id,GREEN,"[*diablo*]^x01 Nazwa gildi w uzyciu")
		gildia_lvl[id] = 0
		gildia_exp[id] = 0
		ilosc_czlonkow[id] = 0
		g_dmg[id] = 0
		g_def[id] = 0
		g_hp[id] = 0
		g_spid[id] = 0
		g_pkt[id] = 0
		g_kam[id] = 0
		g_drop[id] = 0
		g_woj[id] = 0
		nazwa_gildi[id] = ""
		nazwa_zalozycial[id] = ""
		nick_gildia(id)
	}
	return PLUGIN_HANDLED;
}

////////////////////////////opis gildi///////////////////
public showgildia(id)
{
	
	new tempstring[100];
	new motd[2048];
	
	
	formatex(motd,charsmax(motd),"<html><body bgcolor=^"#000000^"><font size=^"2^" face=^"verdana^" color=^"FFB000^"><center><strong>Statystyki Gildi: %s</strong><br>", nazwa_gildi[id]);
	add(motd,charsmax(motd),"(Aktualizowane co Mape)<br><br>");
	
	formatex(tempstring,charsmax(tempstring),"Lvl %i/10<br>",gildia_lvl[id]);
	add(motd,charsmax(motd),tempstring);
	formatex(tempstring,charsmax(tempstring),"Exp %i/%i<br>",gildia_exp[id],GildiaXP[gildia_lvl[id]]);
	add(motd,charsmax(motd),tempstring);
	formatex(tempstring,charsmax(tempstring),"Kamienie %i<br>",g_kam[id]);
	add(motd,charsmax(motd),tempstring);
	formatex(tempstring,charsmax(tempstring),"Zalozyciel %s <br><br>",nazwa_zalozycial[id]);
	add(motd,charsmax(motd),tempstring);
	formatex(tempstring,charsmax(tempstring),"<b>Czlonkowie (%i/%i)</b><br>",ilosc_czlonkow[id],gildia_lvl[id]+2);
	add(motd,charsmax(motd),tempstring);
	
	new iPos , szKey[ 32 ] , szVal[ 64 ] , iTimeStamp;
	new ala[32],key[128],nazwa1[128],l = 0
	new iVaultHandle = nvault_util_open("nickgil")
	new iCount = nvault_util_count (iVaultHandle) 
	
	for ( new iCurrent = 1 ; iCurrent <= iCount ; iCurrent++ )
	{
		
		
		iPos = nvault_util_read( iVaultHandle , iPos , szKey , charsmax( szKey ) , szVal , charsmax( szVal ) , iTimeStamp );
		
		parse(szVal, ala, 31);
		copy(nazwa1, 31, ala);
		
		if(!equal(nazwa_gildi[id],nazwa1))
			continue;
		
		formatex(key, 127, "%s",szKey);
		key[strlen(key)-4] = 0;
		
		new vaultkey[64],vaultdata[256]
		format(vaultkey,63,"%s-GIL",key)
		nvault_get(g_wplaty,vaultkey,vaultdata,255);
		
		new ng[32],ile
		parse(vaultdata,ng , 31)
		ile = str_to_num(ng);
		
		l++
		
		formatex(tempstring,charsmax(tempstring),"%i. %s   |WPLATA| %i <br>",l,key,ile);
		add(motd,charsmax(motd),tempstring);
	}
	formatex(tempstring,charsmax(tempstring),"<b>Statystyki</b><br>",ilosc_czlonkow[id],gildia_lvl[id]+2);
	add(motd,charsmax(motd),tempstring);
	if(g_dmg[id]){
		formatex(tempstring,charsmax(tempstring),"Atak + %i<br>",g_dmg[id]);
		add(motd,charsmax(motd),tempstring);
	}
	if(g_def[id]){
		formatex(tempstring,charsmax(tempstring),"Obrona + %i<br>",g_def[id]);
		add(motd,charsmax(motd),tempstring);
	}
	if(g_spid[id]){
		formatex(tempstring,charsmax(tempstring),"Szybkosc + %i<br>",g_spid[id]);
		add(motd,charsmax(motd),tempstring);
	}
	if(g_hp[id]){
		formatex(tempstring,charsmax(tempstring),"Zycie + %i<br>",g_hp[id]);
		add(motd,charsmax(motd),tempstring);
	}
	/*if(g_woj[id]){
	formatex(tempstring,charsmax(tempstring),"Drop butelek %i<br>",g_drop[id]);
	add(motd,charsmax(motd),tempstring)
}*/
if(g_drop[id]){
	formatex(tempstring,charsmax(tempstring),"DwLegionistartony exp za Fraga (gildia)<br>");
	add(motd,charsmax(motd),tempstring)
}
add(motd,charsmax(motd),"</center></font></body></html>");


show_motd(id,motd,"Legion: Statystyki");

}
////////////////////zapraszanie///////////////////////////

public aktywna_func(id, menu, item){
return ITEM_ENABLED;
}
public nieaktywna_func(id, menu, item){
return ITEM_DISABLED;
}
public gildia_wybierz(id)
{
new MyMenu=menu_create("Gildie","zapros_gildia");
new cb = menu_makecallback("gildia_wybierz_Callback");
new nick[64]
for(new i=0, n=0; i<=32; i++)
{
	if(!is_user_connected(i))
		continue;
	
	oddaj_id[n++] = i;
	get_user_name(i, nick, 63)
	menu_additem(MyMenu, nick, _, _, cb);
}
menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie");

menu_setprop(MyMenu,MPROP_BACKNAME,"Wroc")
menu_setprop(MyMenu,MPROP_NEXTNAME,"Nastepne")

//zawsze pokaż opcję wyjścia
menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL);

menu_setprop(MyMenu,MPROP_PERPAGE,7)

menu_display(id, MyMenu);
}
public zapros_gildia(id, menu, item)
{
if(item == MENU_EXIT)
{
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}

new id2 = oddaj_id[item];


if(!is_user_connected(id2)){
	client_print(id, print_chat, "Nie odnaleziono zadanego gracza.");
	return PLUGIN_CONTINUE;
}
new nick[64]
get_user_name(id, nick, 63)
new nazwa_menu[128]
formatex(nazwa_menu, charsmax(nazwa_menu), "Dolacz do Gildi %s",nazwa_gildi[id])

new menu2 = menu_create(nazwa_menu, "menu_dolacz");

menu_additem(menu2,"Tak",nick);
menu_additem(menu2,"Nie",nick);

menu_setprop(menu2,MPROP_EXITNAME,"Wyjscie");

//zawsze pokaż opcję wyjścia
menu_setprop(menu2,MPROP_EXIT,MEXIT_ALL);

menu_setprop(menu2,MPROP_PERPAGE,7)

menu_display(id2, menu2);
return PLUGIN_CONTINUE;
}
public menu_dolacz(id, menu, item)
{
if(item == MENU_EXIT)
{
	menu_destroy(menu);
	return PLUGIN_CONTINUE;
}
new access, callback, data[64];
menu_item_getinfo(menu, item, access, data, charsmax(data), _, _, callback);
new id2 = get_user_index(data) 

switch(item)
{
	case 0: 
	{ 
		nazwa_gildi[id]=nazwa_gildi[id2]
		ilosc_czlonkow[id2]++
		zapis_gildia(id2,0)
		zapisz_gildia_nick(id)
		nick_gildia(id)
		ColorChat(id2,GREEN,"[*diablo*]^x01 Gracz dolaczyl do gildi")
	}
	case 1: ColorChat(id2,GREEN,"[*diablo*]^x01 Gracz odrzucil propozycje")
	}
return PLUGIN_CONTINUE;
}
public gildia_wybierz_Callback(id, menu, item)
{
new id2 = oddaj_id[item];
if(id2 == id || gildia_lvl[id2]>0)
	return ITEM_DISABLED;
return ITEM_ENABLED;
}
public gildia_wybierz_Callback1(id, menu, item)
{
new id2 = oddaj_id[item];
if(id2 == id || !equal(nazwa_zalozycial[id],nazwa_zalozycial[id2]))
	return ITEM_DISABLED;
return ITEM_ENABLED;
}
//////////////////menu//////////////
public gildie(id)
{
new MyMenu=menu_create("Menu Gildi","gildia_menu");

new aktywna=menu_makecallback("aktywna_func");

new nieaktywna=menu_makecallback("nieaktywna_func");

new AuthID[35]
get_user_name(id,AuthID,34)
tryb[id] = 0

if(gildia_lvl[id] == 0) tryb[id] = 0
else if(equal(AuthID,nazwa_zalozycial[id])) tryb[id] = 1
	else tryb[id] = 2

switch(tryb[id]){
	case 0:{
		
		menu_additem(MyMenu,"Zaloz gildie","",0,aktywna);
		menu_additem(MyMenu,"Ogolnie","",0,aktywna);
	}
	case 1:{
		if(ilosc_czlonkow[id] < 2+gildia_lvl[id]) menu_additem(MyMenu,"Zapros graczy","",0,aktywna);
		else menu_additem(MyMenu,"Zapros graczy","",0,nieaktywna);
		
		menu_additem(MyMenu,"Opis Gildi","",0,aktywna);
		
		if(player_lvl[id]>10) menu_additem(MyMenu,"Wplac expa","",0,aktywna);
		else menu_additem(MyMenu,"Wplac expa","",0,nieaktywna);
		
		if(player_kamien[id]) menu_additem(MyMenu,"Daj Kamienia","",0,aktywna);
		else menu_additem(MyMenu,"Daj Kamienia","",0,nieaktywna);
		
		if(ilosc_czlonkow[id]>1) menu_additem(MyMenu,"Wyrzuc Gracza","",0,aktywna);
		else menu_additem(MyMenu,"Wyrzuc Gracza","",0,nieaktywna);
		
		menu_additem(MyMenu,"Rozdaj punkty","",0,aktywna);
		menu_additem(MyMenu,"Usun Gildie","",0,aktywna);
		menu_additem(MyMenu,"Ogolnie","",0,aktywna);
	}
	case 2:{
		menu_additem(MyMenu,"Opis Gildi","",0,aktywna);
		
		if(player_lvl[id]>10) menu_additem(MyMenu,"Wplac expa","",0,aktywna);
		else menu_additem(MyMenu,"Wplac expa","",0,nieaktywna);
		
		if(player_kamien[id]) menu_additem(MyMenu,"Daj Kamienia","",0,aktywna);
		else menu_additem(MyMenu,"Daj Kamienia","",0,nieaktywna);
		
		menu_additem(MyMenu,"Odejdz z gildi","",0,aktywna);
		
		menu_additem(MyMenu,"Ogolnie","",0,aktywna);	
	}
}


menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie");

menu_setprop(MyMenu,MPROP_BACKNAME,"Wroc")
menu_setprop(MyMenu,MPROP_NEXTNAME,"Nastepne")

//zawsze pokaż opcję wyjścia
menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL);

menu_setprop(MyMenu,MPROP_PERPAGE,7)

//kolor cyfry przycisku zmień na żółty
//menu_setprop(MyMenu,MPROP_NUMBER_COLOR,"r");

menu_display(id, MyMenu,0);
return PLUGIN_HANDLED;
}
public gildia_menu(id, menu, item){
if(item == MENU_EXIT){
	menu_destroy(menu);
	otwarte_menu[id] = false
	return PLUGIN_HANDLED;
}
switch(tryb[id]){
	case 0:{
		
		switch(item){
			case 0:{
				zrob_gildie(id)
			}
			case 1:{
				show_motd(id,"infogildia.txt")
				gildie(id)
			}
		}
	}
	case 1:{
		switch(item){
			case 0:{
				gildia_wybierz(id)
			}
			case 1:{
				wczytaj_gildia(id)
				showgildia(id)
			}
			case 2:{
				wczytaj_gildia(id)
				client_cmd(id, "messagemode wprowadz_ilosc_expa");
				ColorChat(id,GREEN,"[*%s*]^x01Twoj exp wynosi %i.",nazwa_gildi[id],player_xp[id]-1)
			}
			case 3:{
				wczytaj_gildia(id)
				client_cmd(id, "messagemode wprowadz_kamien");
				ColorChat(id,GREEN,"[*%s*]^x01Posiadasz %i kamieni",nazwa_gildi[id],player_kamien[id])
			}
			case 4:{
				odejdz_gildia(id)
			}
			case 5:{
				rozdaj_skill(id)
			}
			case 6:{
				rozwiaz_gildie_menu(id)
			}
			case 7:{
				show_motd(id,"infogildia.txt")
				gildie(id)
			}
		}
	}
	case 2:{
		switch(item){
			case 0:{
				wczytaj_gildia(id)
				showgildia(id)
			}
			case 1:{
				wczytaj_gildia(id)
				client_cmd(id, "messagemode wprowadz_ilosc_expa");
				ColorChat(id,GREEN,"[*%s*]^x01Twoj exp wynosi %i.",nazwa_gildi[id],player_xp[id]-1)
			}
			case 2:{
				wczytaj_gildia(id)
				client_cmd(id, "messagemode wprowadz_kamien");
				ColorChat(id,GREEN,"[*%s*]^x01Posiadasz %i kamieni",nazwa_gildi[id],player_kamien[id])
			}
			case 3:{
				odejdz_gildia(id)
			}
			case 4:{
				show_motd(id,"infogildia.txt")
				gildie(id)
			}
		}
	}
}
otwarte_menu[id] = false
return PLUGIN_HANDLED;
}
//////////////////////////////////////////////
public odejdz_gildia(id)
{
new AuthID[35]

get_user_name(id,AuthID,34)
if(!equal(AuthID,nazwa_zalozycial[id])){
	
	wczytaj_gildia(id)
	ilosc_czlonkow[id]--
	zapis_gildia(id,0)
	
	
	new vaultkey[64]
	format(vaultkey,63,"%s-GIL",AuthID);
	nvault_remove(g_gil_spr,vaultkey);
	
	ColorChat(id,GREEN,"[*%s*]^x01 Odeszles z Gildi",nazwa_gildi[id])
	
	gildia_lvl[id] = 0
	gildia_exp[id] = 0
	ilosc_czlonkow[id] = 0
	g_dmg[id] = 0
	g_def[id] = 0
	g_hp[id] = 0
	g_spid[id] = 0
	g_pkt[id] = 0
	g_drop[id] = 0
	g_woj[id] = 0
	g_kam[id] = 0
	nazwa_gildi[id] = ""
	nazwa_zalozycial[id] = ""
	nick_gildia(id)
	
	return PLUGIN_CONTINUE
}
else if(ilosc_czlonkow[id]>1){
	wczytaj_gildia(id)
	menu_wywal(id)	
}

return PLUGIN_CONTINUE
}
public rozwiaz_gildie_menu(id)
{
new MyMenu=menu_create("Chcesz Usunac Gildie ??","rozwiaz_gildie");

menu_additem(MyMenu,"Tak","",0,_);
menu_additem(MyMenu,"Nie","",0,_);

menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie");

//zawsze pokaż opcję wyjścia
menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL);

menu_setprop(MyMenu,MPROP_PERPAGE,7)

//kolor cyfry przycisku zmień na żółty
//menu_setprop(MyMenu,MPROP_NUMBER_COLOR,"r");

menu_display(id, MyMenu,0);
return PLUGIN_HANDLED;
}
public rozwiaz_gildie(id, menu, item)
{
if(item == MENU_EXIT){
	menu_destroy(menu);
	otwarte_menu[id] = false
	return PLUGIN_HANDLED;
}
switch(item){
	case 0:{
		new iPlayers[ 32 ], iNum;
		new AuthID[35]
		
		get_players( iPlayers, iNum );
		
		new iPlayer;
		
		for( new i = 0; i < iNum; i++ )
		{
			iPlayer = iPlayers[ i ];
			
			if( iPlayer == id )
				continue;
			
			if(!equal(nazwa_gildi[id],nazwa_gildi[iPlayer]))
				continue;
			
			get_user_name(iPlayer,AuthID,34)
			new vaultkey[64]
			format(vaultkey,63,"%s-GIL",AuthID);
			nvault_remove(g_gil_spr,vaultkey);
			
			ColorChat(iPlayer,GREEN,"[*%s*]^x01 Gildia Usunieta",nazwa_gildi[iPlayer])
			
			nazwa_gildi[iPlayer] = ""
			nick_gildia(iPlayer)
		}
		get_user_name(id,AuthID,34)
		new vaultkey[64]
		format(vaultkey,63,"%s-GIL",AuthID);
		nvault_remove(g_gil_spr,vaultkey);
		new vaultkey1[64]
		format(vaultkey1,63,"%s-GTB",nazwa_gildi[id]);
		nvault_remove(g_gildia,vaultkey1);
		ColorChat(id,GREEN,"[*%s*]^x01 Gildia Usunieta",nazwa_gildi[id])
		nazwa_gildi[id] = ""
		nick_gildia(id)
	}
}
otwarte_menu[id] = false
return PLUGIN_HANDLED;

}
//////////////////menu//////////////
public rozdaj_skill(id)
{

new Msg1[50]
new Msg2[50]
new Msg3[50]
new Msg4[50]
new Msg6[50]

format(Msg6,49,"Rozdaj Punkty [%i]",g_pkt[id])

new MyMenu=menu_create(Msg6,"gildia_skill");

new aktywna=menu_makecallback("aktywna_func");

new nieaktywna=menu_makecallback("nieaktywna_func");

format(Msg1,49,"Zycie [%i] [+%i hp]",g_hp[id]/20,g_hp[id])
format(Msg2,49,"Atak [%i] [+%i dmg]",g_dmg[id],g_dmg[id])
format(Msg3,49,"Obrona [%i] [+%i def]",g_def[id],g_def[id])
format(Msg4,49,"Szybkosc [%i] [+%i speed]",g_spid[id]/35,g_spid[id])

if(g_pkt[id] && g_hp[id] <=140) menu_additem(MyMenu,Msg1,"",0,aktywna);
else menu_additem(MyMenu,Msg1,"",0,nieaktywna);

if(g_pkt[id] && g_dmg[id] <=4) menu_additem(MyMenu,Msg2,"",0,aktywna);
else menu_additem(MyMenu,Msg2,"",0,nieaktywna);

if(g_pkt[id] && g_def[id] <=4) menu_additem(MyMenu,Msg3,"",0,aktywna);
else menu_additem(MyMenu,Msg3,"",0,nieaktywna);

if(g_pkt[id] && g_spid[id] <=80) menu_additem(MyMenu,Msg4,"",0,aktywna);
else menu_additem(MyMenu,Msg4,"",0,nieaktywna);

if(g_pkt[id]>=2 && !g_drop[id] && g_kam[id]>250) menu_additem(MyMenu,"Podwojny Exp Gildi","",0,aktywna);
else menu_additem(MyMenu,"Podwojny Exp Gildi [2 pkt i 250 kamieni]","",0,nieaktywna);

if(g_kam[id]>=0) menu_additem(MyMenu,"Zresetuj Staty (120 kamieni)(Nie Resetujesz Podwojnego Expa)","",0,aktywna);
else menu_additem(MyMenu,"Zresetuj Staty (120 kamieni)","",0,nieaktywna);

menu_setprop(MyMenu,MPROP_EXITNAME,"Wyjscie");

menu_setprop(MyMenu,MPROP_EXIT,MEXIT_ALL);

menu_setprop(MyMenu,MPROP_PERPAGE,7)

//kolor cyfry przycisku zmień na żółty
//menu_setprop(MyMenu,MPROP_NUMBER_COLOR,"r");

menu_display(id, MyMenu,0);
return PLUGIN_HANDLED;
}
public gildia_skill(id, menu, item){
if(item == MENU_EXIT){
	menu_destroy(menu);
	otwarte_menu[id] = false
	return PLUGIN_HANDLED;
}
switch(item){
	case 0:{
		g_hp[id]+=20
		g_pkt[id]--
		zapis_gildia(id,0)
	}
	case 1:{
		g_dmg[id]++
		g_pkt[id]--
		zapis_gildia(id,0)
	}
	case 2:{
		g_def[id]++
		g_pkt[id]--
		zapis_gildia(id,0)
	}
	case 3:{
		g_spid[id]+=35
		g_pkt[id]--
		zapis_gildia(id,0)
	}
	case 4:{
		g_drop[id]+=1
		g_pkt[id]-=2
		g_kam[id]-=250
		zapis_gildia(id,0)
	}
	case 5:{
		g_kam[id]-=0
		g_pkt[id]+=g_def[id]+g_dmg[id]+g_hp[id]/20+g_spid[id]/35
		g_def[id]=0
		g_dmg[id]=0
		g_spid[id]=0
		g_hp[id]=0
		ColorChat(id,GREEN,"[*%s*]^x01Masz %i pkt.",nazwa_gildi[id],g_pkt[id])
		zapis_gildia(id,0)
	}
}
rozdaj_skill(id)
return PLUGIN_HANDLED;
}
//////////////wspolny exp///////////////
public daj_gildi_exp(id,exp)
{
switch(gildia_lvl[id])
{
	case 1: exp /=10
		case 2: exp /=9
		case 3: exp /=8
		case 4: exp /=7
		case 5: exp /=6
		case 6: exp /=5
		case 7: exp /=4
		case 8: exp /=3
		case 9: exp /=2
	}
if(g_drop[id]) exp*=2

for(new i=0; i<=32; i++)
{
	if(!is_user_connected(i))
		continue;
	if(!is_user_alive(i))
		continue;
	if(id==i)
		continue;
	if(equali(nazwa_gildi[i],"Brak"))
		continue;
	if(equali(nazwa_gildi[i],""))
		continue;
	if(!equal(nazwa_zalozycial[id],nazwa_zalozycial[i]))
		continue;
	
	if(exp<2)
		continue;
	
	Give_Xp(i,exp)
	
	ColorChat(i,GREEN,"+%i xp",exp)
}
}
//////////////////menu//////////////
public iDodaj(id)
{

new szDodaj[196];
read_args(szDodaj,charsmax(szDodaj))
remove_quotes(szDodaj)
if(is_str_num(szDodaj)) 
{
	new iIle = str_to_num(szDodaj)
	if(iIle >= player_xp[id]){
		ColorChat(id,GREEN,"[*%s*]^x01Masz za malo xp.",nazwa_gildi[id])
		
		gildie(id)
		
		return PLUGIN_CONTINUE;
	}
	if(get_playersnum()<2) {
		ColorChat(id,GREEN,"[*%s*]^x01Za malo graczy na serwerze",nazwa_gildi[id])
		
		gildie(id)
		return PLUGIN_CONTINUE;
	}
	if(iIle < 2000){
		ColorChat(id,GREEN,"[*%s*]^x01Minimalna wplata 2000.",nazwa_gildi[id])
		
		gildie(id)
		
		return PLUGIN_CONTINUE;
	}
	
	ColorChat(id,GREEN,"[*%s*]^x01Wplaciles %i",nazwa_gildi[id],iIle)
	Give_Xp(id,-iIle)
	gildia_exp[id]+=iIle
	if (gildia_exp[id] > GildiaXP[gildia_lvl[id]])
	{	
		gildia_lvl[id]+=1
		g_pkt[id]++
	}
	zapis_gildia(id,0)
	
	wczytaj_wplata(id)
	wplata[id]+=iIle
	zapisz_wplata(id)
	
	
	
}
else{
	ColorChat(id,GREEN,"[*%s*]^x01Tylko cyfry",nazwa_gildi[id])
	
	gildie(id)
	
	return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public iDodaj1(id)
{

new szDodaj[196];
read_args(szDodaj,charsmax(szDodaj))
remove_quotes(szDodaj)
if(is_str_num(szDodaj)) 
{
	new iIle = str_to_num(szDodaj)
	if(iIle > player_kamien[id]){
		ColorChat(id,GREEN,"[*%s*]^x01Masz za malo kamieni.",nazwa_gildi[id])
		
		gildie(id)
		
		return PLUGIN_CONTINUE;
	}
	ColorChat(id,GREEN,"[*%s*]^x01Wplaciles %i",nazwa_gildi[id],iIle)
	g_kam[id]+=iIle
	player_kamien[id] -= iIle
	zapis_gildia(id,0)
	zapiszk(id)
}
else{
	ColorChat(id,GREEN,"[*%s*]^x01Tylko cyfry",nazwa_gildi[id])
	
	gildie(id)
	
	return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
public za_mroz(attacker_id,id)
{
if(player_class[attacker_id] == Golem){
	
	if (!is_user_alive(id))
		return PLUGIN_HANDLED
	
	if (totemstop[id]!=0)
		return PLUGIN_HANDLED
	
	if (random_num(1,5) == 1)
	{
		totemstop[id] = 1
		brak_strzal[id] = 1 
		set_speedchange(id)
		set_renderchange(id)
		set_task(1.5,"pogolemie",id)
	}
}
return PLUGIN_HANDLED
}
public pogolemie(id)
{
totemstop[id] = 0
brak_strzal[id] = 0
set_speedchange(id)
set_renderchange(id)
}

Mogę się mylić, ale sprawdź


  • +
  • -
  • 1


#555045 Znow skill na pokemodzie

Napisane przez radim w 13.07.2013 16:56


public Ice_shoot(id, skill, prop)
 {
	new victim = PokeSkillTarget(id);
	if( ValidPlayer(victim) && Pokemod_Alive(victim) && !g_Status[victim][STATUS_FROZEN] ){
		ApplyStatus( id, victim, STATUS_FROZEN )
		return SKILL_USED;
	}
	return SKILL_READY;
 }

  • +
  • -
  • 2


#554388 Naprawa natywów

Napisane przez radim w 11.07.2013 16:18

W tym poradniku pokażę, jak "naprawić" kilka natywów, które są przydatne do kompilacji niektórych pluginów korzystających z biblioteki pokemod'a (np. moja wersja PokeDollarów). Bez tej zmiany nie damy rady skompilować pluginy który używa tych funkcji (no chyba, że natywy macie już "naprawione")

Wchodzimy do scrpting>include i otwieramy plik pokemod.inc.

Szukamy:

native Poke_PokeToName(poke, pokename[]);

i zamieniamy na:

native Poke_PokeToName(poke, pokename[], len);

Następnie szukamy:

native Poke_ItemToName(item, itemname[]);

i zamieniamy na:

native Poke_ItemToName(item, itemname[], len);

Jak nadal nie pojmujecie jak to poprawnie wykonać, odsłyłam do tego linku: http://amxx.pl/inc/pokemod.inc


  • +
  • -
  • 2


#554379 PokeDollars [new version]

Napisane przez radim w 11.07.2013 16:01

Dobra już znam rozwiązanie problemu. Jeżeli ktoś korzysta z tych plików: http://forums.allied...96&d=1250047659 lub wyskakuje mu ten oto error: "error 088  numbers of arguments does not match definiton" (mniej więcej tak to brzmi) to należy otworzyć plik pokemod.inc, znaleźć w nim:
 

native Poke_PokeToName(poke, pokename[]);

i zamienić na:
 

native Poke_PokeToName(poke, pokename[], len);

  • +
  • -
  • 1


#553666 PokeDollars [new version]

Napisane przez radim w 09.07.2013 11:30

PokeDollars [new version]

by radim

 

opis

PokeDollars - plugin stworzony na potrzebny serwera Pokemod. Plugin "tworzy" wirtualną walutę w grze, za którą można kupić m.in exp, pokemony. Mimo, że już jest podobny plugin tutaj udostępniony, ja udostępniam swoją wersję gdyż jest pozbawiona wielu błędów jakie posiadała wersja Raka, a nawet jak się pojawią nowe błędy, będę je na bieżąco poprawiał. Oczywiście nie zabrakło kilku nowych opcji.

PokeDollar'y (w skrócie PD) dostajemy poprzez:

  • zabicie gracza (1 PD | za headshot'a 3 PD),
  • uratowanie zakładników (1 PD za 1 zakładnika),
  • rozbrojenie/podłożepnie bomby (1 PD),
  • kupienie PD w menu,

lub nawet możemy je stracić np. poprzez zabicie zakładnika (-2 PD). Zapis oczywiście nvault, do wyboru 3 typy zapisu (nick, ip, steam). Plugin pozbawiony wady zapisu, gdy gracz miał "spację" w nicku (tą wadę możemy zauważyć w wersji Raka). W menu można wybrać:

  • kupno PD ( za pieniądze $ )
  • kupno EXP'a
  • loterię Pokemonów
  • loterię Itemów
  • Admin Menu (wymagana flaga "a" ADMIN_IMMUNITY)
  • Pomoc (wyświetlane motd z opisem pluginu)

Kilka informacji o loterii Pokemonów. Po pierwsze, w loterii nie można wylosować tzw. legendarnych pokemonów. Czemu ? Bo byłoby to totalnie bezsensu, pokemon, którego nie można podnieść/znaleźć, a można wylosować, nonsens! Po drugie:

#define MAX_POKEMONS 151

Jak sama nazwa mówi, jest to ilość wszystkich pokemonów na serwerze. Dlatego każdy kto wgra ten plugin i chce aby w loterii były do wylosowania wszystkie pokemony jakie znajdują się w pokedex (no oprócz legend) należy wpisać odpowiednią liczbę pokemonów znajdujących się na waszym serwerze. Trzecia rzecz to dodatkowy warunek, który sprawdza czy przypadkiem wylosowaliśmy pokemona, którego akurat mamy w plecaku. Jeżeli owego wylosujemy, pokemon nie zostanie nadmieniony, pd nie zostaną zabrane i pojawi się odpowiedni komunikat na say'u ; ))

Informacja na temat loterii Itemów!

#define MAX_ITEM 45

Tak samo jak z pokemonami, jeżeli chcemy, aby w loterii można było wylosować wszystkie itemy dostępne na serwerze trzeba wpisać ilość itemów jakie znajduję się na waszym pokemodzie (policzyć w items.ini). W tej loterii nie można wylosować:

  • itemów, które są wyłączone,
  • itemów, których nie można znaleźć,
  • itemów "specjalnych",
  • roweru i kuponu na rower.

screenshot
965Bez_tytu_u.jpg763Bez_tytu_u.jpg
komendy

pdmenu - otwiera menu PokeDollars'

pdplayers - otwiera motd z listą graczy wraz z ich ilością PD
cvary

pd_friendlyfire // 0 - off (za zabójstwo swojego nie da PD) 1 - on (za zabójstwo swojego da PD) [przydaje się na tryb DeathMatch]
pd_kill // ilość pd za zabójstwo
pd_kill_hs // ilość pd za headshot'a
pd_planted // ilość pd za podłożenie bomby
pd_defused // ilość pd za rozbrojenie bomby
pd_rescue_hostage // ilość pd za uratowanie zakładnika
pd_kill_hostage // ilość zabranego pd za zabicie zakładnika
pd_savetype // typ zapisu 1- nick ; 2 - sid ; 3 - ip
pd_costexp // koszt xp'a za pd
pd_givexp // ilość kupionego xp'a
pd_pokelottery // koszt loterii pokemonów za pd
pd_itemlottery // koszt loterii itemów za pd
pd_buy // ilość kupionego pd
pd_cost // koszt pd za pieniądze $
[natywy]
pm_get_user_pd(id) - pobiera ilość PD (id - index gracza)
pm_set_user_pd(id, wartosc) - ustawia odpowiednią ilość PD (id - index gracza ; wartosc- ilość PD)
wymagane moduly
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <pokemod>
#include <nvault>
instalacja

Standardowa

Plik pokedollar.txt wgrać do cstrike

Plik pokedollars.txt z folderu lan wgrać do addons/amxmodx/data/lang

inne informacje

Changelog

v1.0 - wydanie pluginu
v1.1 - dodanie loterii itemów
v1.2:
- dodanie Multilanguage (na razie tylko jezyki POLSKI i ANGIELSKI)
- zoptymalizowanie kodu

Do dodania:

  • cvary wczytywane z pliku
  • urozmaicenie pluginu 

Jestem otwarty na propozycje. Gdy znajdziecie jakieś errory/błędy/bugi proszę pisać!

Informacja

Plugin należy kompilować lokalnie, gdyż kompilator amxx.pl nie posiada potrzebnych plików. Aby poprawnie skompilować u siebie plik sma, należy ściągnąć pliki z tego linku: http://forums.allied...96&d=1250047659 i wgrać je do folderu kompilatora. Jak kompilować lokalnie i gdzie wgrać ściągnięte pliki, odpowiedź w tym temacie: http://amxx.pl/topic...ilowac-pluginy/ 

Informacja 2

Plugin działa na poprawionych natywach Poke_PokeToName i Poke_ItemToName. Jak naprawić, odpowiedź w tym temacie: http://amxx.pl/topic...aprawa-natywów/

download

Załączony plik  pokedollars_v1.2.sma   15,17 KB  375 Ilość pobrań
  pokedollars_v1.2.amxx
Załączony plik  pokedollar.rar   1,58 KB  336 Ilość pobrań


  • +
  • -
  • 9


#468002 [ROZWIĄZANE] Bug Pokeballi

Napisane przez sNH. w 16.10.2012 06:27

Masz danego pokemona... Jeżeli w langach nie ma np %s, to problem będzie występować. Jest jeszcze 2 sprawa. Możliwe, że pomyliłeś się przy dodawaniu poków np:

333
334
336

Jak widać nie ma liczby 335 i będzie ona wyglądała następująco: "None"
  • +
  • -
  • 1