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
 

Zuzza - zdjęcie

Zuzza

Rejestracja: 13.01.2021
Aktualnie: Nieaktywny
Poza forum Ostatnio: 07.07.2022 14:35
*****

#771256 [ROZWIĄZANE] Dodatkowa opcja w menu (opis)

Napisane przez Zuzza w 20.03.2021 19:16

public native_create_skill(plugin, params)
{
	new str[31];
	get_string(1, str, 30);
	format(levelup_skill[num_skills], 30, "%s", str);
	levelup_skill_max[num_skills] = get_param(2);
	new string[7];
	num_to_str(num_skills, string, 6);
	set_string(3, string, 6);
	req_level[num_skills] = get_param(4);

	get_string(5, levelup_desc[num_skills], 30);

	num_skills++;
}

Za pomocą instrukcji 

get_string(param, dest[], maxlen)

Pobierasz dane z parametru o podanym numerze i wpiujesz je do swojej tablicy znakow.

 

W kodzie powyżej dodałam te instrukcje :

get_string(5, levelup_desc[num_skills], 30);

Potrzebujesz więc stworzyć tablice dla opisów tej umiejętności:

new levelup_desc[ILOSC_SKILLI][MAX_DLUGOSC_TEKSTU]

Jeżeli to dodasz to będziesz śmiało mógł używać tak jak pokazałeś:

create_skill("Wpierdolka", MAX_LEVEL, skillid, REQ_LEVEL, "\r+10% do predkosci, unikalny wyglad");

Patrząc na to można się zastanowić czy format jest tu w ogóle potrzebny, można to zrobić bez tego tak jak pokazalam.

new str[31];
get_string(1, str, 30);
format(levelup_skill[num_skills], 30, "%s", str);

  • +
  • -
  • 1


#771238 Program bazowy rotacji jednostek

Napisane przez Zuzza w 19.03.2021 20:19

Block rotation works only on maps created by author of that plugin.

 

To nie prawda można ustawić obracanie klocków na każdej mapie.


  • +
  • -
  • 1


#771107 Top15 monet

Napisane przez Zuzza w 11.03.2021 22:49

Ja za piniondze wykonam wszystko


  • +
  • -
  • 0


#771074 zamiast smugi strzałki

Napisane przez Zuzza w 10.03.2021 19:50

Podmień sprite na taki w którym  jest strzałka, właśnie w tym pluginie. Taki sprite nie będzie ciężko zrobić. Do robienia spritów użyj Sprite Editor,
 
Każda klatka sprite musi być w formacie .bmp, przekonowertowana na 256 kolorów. Wielkość klatki to wielkości potegi dwójki  czyli: 2x2, 2x4, 32x64, 32x128, 128x256, 512x512 (To chyba największy rozmiar). 
image.png
 

Musisz zobaczyć który format dla takiego spraitu sprawi że tło będzie przezroczyste. Additive, indexalpha  czy alphatest
 
 
Sprite zrób w takich kolorach jak niżej, być może strzalke będzie trzeba obrócić aby leciała w kierunku od siebie do granatu. 
image.png
 
 
Ja korzystam ze Sprite Explorer 2.12
Do konwertowania obrazku na 256 kolorów polecam Irfan View  64. 4.50
  • +
  • -
  • 1


#771009 [ROZWIĄZANE] Szukam pluginu /respawn

Napisane przez Zuzza w 06.03.2021 01:31

...
  • +
  • -
  • 1


#770972 [ROZWIĄZANE] Szukam pluginu /respawn

Napisane przez Zuzza w 04.03.2021 18:22

if(!random(20)

Tylko że kolega prosił o szanse 1 / 5 co daje nam 20%, a nie 5% 

 

A więc

if(random(6) == 0)

  • +
  • -
  • 1


#770959 [ROZWIĄZANE] Szukam pluginu /respawn

Napisane przez Zuzza w 04.03.2021 13:58

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <ColorChat>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "kacorvixon"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /respawn", "resp");
}


public resp(id) {
	
	if(get_user_frags(id) > 6) {
	new test = random_num(1,5)
	if(test == 4) {
		spawn(id)
	}
	else ColorChat(id, GREEN, "udalo ci sie wylosowac respa gz");
	} else ColorChat(id, RED, "nie stac cie");
	
	
}

powinno dzialac, kompiluje sie

 

 

To że się kompiluje to jedno ale czy działa tak jak powinno to drugie. Wiadomość powinna być w warunku. Aktualnie gdy ktoś się odrodzi nie dostanie wiadomośćc, a jak się nie odrodzi bo nie trafi tych 20% to dostanie informacje że udało mu się wylosować respa. Poza tym nigdzie nie usuwasz 6 fragów za taki respawn co chyba powinno się dziać

#include <fakemeta>
#include <fun>
#include <hamsandwich>

Po co fakemeta? Po co hamsandwich ? 

 

Pierwszy raz na oczy widze instrukcje spawn :D


  • +
  • -
  • 1


#770945 Przerobienie pluginu

Napisane przez Zuzza w 03.03.2021 19:01

Ja bym potrafiła 

 

Ale ostrzegam przy edycji pluginów natychmiast zmieniam autora, oraz daje info na czat ze pluginy edytowany przez Zuzza


  • +
  • -
  • 1


#770932 Wyświetlanie wpisanych komend

Napisane przez Zuzza w 03.03.2021 13:49

W tym pluginie jest tablica ze znakami niedozwolonymi usuń ukośnik. Powinno działać sprawdź. 

new const forbidden_say_symbols[] = {
	"/",
	"!",
	"%",
	"$"
}
new const forbidden_say_symbols[] = {
	"!",
	"%",
	"$"
}

  • +
  • -
  • 1


#770801 get_user_team podwojne

Napisane przez Zuzza w 25.02.2021 00:46

Nie, absolutnie nie powinno działać tak jak myślisz. Działa tak jak jest zaprogramowane.

 if(get_user_flags(id) & FLAGA_USERA && get_user_team(id) == 1 && get_user_team(id) == 2)

Taki oto if oznacza: 

 

Jeżeli gracz ma falage_usera i jest jego drużyna to 1 i jego drużyna to 2

 

Nie możliwym jest spełnienie warunku bycia w drużynie 1 i bycia w drużynie 2 w tym samym czasie.

To czego szukasz to nie AND tylko OR

 

Potrzebujesz napisać if który sprawdzi czy gracz posiada flagę i ( drużyna = 1 lub drużyna = 2 )

Ważne jest to aby zrozumieć różnice pomiędzy

"AND" czyli ,,i", "oraz" - &&

 

a

 

"OR" czyli "lub" - ||

 

Taki warunek będzie wyglądać następująco


if( get_user_flags(id) & FLAGA_USERA && ( get_user_team(id) == 1 || get_user_team(id) == 2 ) )

lub:

if( get_user_flags(id) & FLAGA_USERA ){
    if( get_user_team(id) == 1 || get_user_team(id) == 2 ){
        //Tu instrukcje
    }   
}

Warunek w warunku to jak AND

 

Polecam używać zamiast 

get_user_flags(id)

to:

has_flag(id, "abce")
has_flag(id, "a")

  • +
  • -
  • 3


#770794 OVERPEEKING

Napisane przez Zuzza w 24.02.2021 23:04

O Hej, ja nie gram w cs go i raczej mi się ten filmik nie przyda i niczego mnie nie nauczy, ale za to mój kolega który tez nie gra w cs go mówi że też mu się nie przyda.


  • +
  • -
  • 0


#770755 Problem z pluginem info po śmierci

Napisane przez Zuzza w 23.02.2021 14:23

Daj plugin inf_smierci niżej niż voice manager w liście plugin zanim zaczniemy edytować cokolwiek po wydaje mi się że powinno działać. 


  • +
  • -
  • 1


#770735 [ROZWIĄZANE] Napisy w HUD znikają

Napisane przez Zuzza w 22.02.2021 20:41

formatex(szDay, 90, "| ** Dzien %i - %s ** |^n| > Prowadzacy: Brak < |^n^n^n| > Typ dnia: Normalny < |^n| > Wiezniow: %i/%i < |", jail_day, dni_tygodnia[jail_day%7], ilosc_graczy[ZYWI], ilosc_graczy[WSZYSCY]);

90 zmień na 200 jak w innych linijkacah tylko pytanie wtedy po co szDay ma 256, skoro i tak wszędzie i tak tylko 200 znaków edytujesz.

formatex(szDay, 90

  • +
  • -
  • 1


#770734 voice-manager - Pytanie

Napisane przez Zuzza w 22.02.2021 20:28

Dodanie mute na czas: 

 

W plugin_init widzę że jest 

register_clcmd("say", "say_handle");
register_clcmd("say_team", "say_handle");

Więc do tej funkcji "say_handle" należy dodać blokady na czat.

 

Nie mam pewności ale bodajże tablica 

playerData[id][MUTED]

Oznacza czy ktoś ma mute czy nie.

 

A więc w funkcji która wychwytuje nasz czat czyli "say_handle" dodajemy prosty warunek:

public say_handle(id)
{
        if( playerData[id][MUTED] )
	      return PLUGIN_HANDLED
	
        
       //Tu reszta kodu tej funkcji
       
}

Jeżeli chcesz dodać możliwość mutowania na określony czas będziesz musiał dodać do bazy danych kolejne pole typu int. Do tego nowego pola będziesz zapisywać czas końca mute.

 

 

Przy mutowaniu na odpowiedni czas polecam wykorzystać get_systime().

Dzięki temu łatwo będziesz mógł porównywać ze sobą czasy.

new KoniecMute = get_systime()+3600 //Mute na godzine
new KoniecMute = get_systime()+60  //Mute na minute

------------------------------------------------------------------------
new bool:CzyMaMute = (get_systime() < KoniecMute);

Ale z tym raczej musisz poradzić sobie samodzielnie :) 

 


  • +
  • -
  • 1


#770732 Jak dodać prefixy na Admin Chat?

Napisane przez Zuzza w 22.02.2021 20:10

W pluginie adminchat.sma masz kod odpowiedzialny za wyświetlanie wiadomości na @@

To jest kawałek kodu z tego pluginu w którym trzeba dokonać zmiany:

switch ( get_pcvar_num(amx_show_activity) )
	{
		case 3, 4:
		{
			new maxpl = get_maxplayers();
			for (new pl = 1; pl <= maxpl; pl++)
			{
				if (is_user_connected(pl) && !is_user_bot(pl))
				{
					if (is_user_admin(pl))
					{
						show_hudmessage(pl, "%s :   %s", name, message[i + n])
						client_print(pl, print_notify, "%s :   %s", name, message[i + n])
					}
					else
					{
						show_hudmessage(pl, "%s", message[i + n])
						client_print(pl, print_notify, "%s", message[i + n])
					}
				}
			}
		}
		case 2:
		{
			show_hudmessage(0, "%s :   %s", name, message[i + n])
			client_print(0, print_notify, "%s :   %s", name, message[i + n])
		}
		default:
		{
			show_hudmessage(0, "%s", message[i + n])
			client_print(0, print_notify, "%s", message[i + n])
		}
	}

Polecam stworzyć funkcje która będzie zwracać odpowiedni prefix dla odpowiedniej flagi o na przykład tako:

public RetunrPrefix(id){
	new szPrefix[11]
	if( has_flag(id, "a" ) )
		format(szPrefix, 10, "HEADADMIN ")
	else if( has_flag(id, "c") )
		format(szPrefix, 10, "ADMIN ")
	return szPrefix
}

Teraz skoro funkcja na prefix już jest wystarczy to połączyć tak o:

case 2:
{
	show_hudmessage(0, "%s%s :   %s", RetunrPrefix(id), name, message[i + n])
	client_print(0, print_notify, "%s :   %s", name, message[i + n])
}

W case 3, 4 również jest wyświetlany nick admina tylko adminom więc można by to tam również dodać ale to już wierze że dasz rade samodzielnie :)


  • +
  • -
  • 2