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

Losowanie danego itemu uwzględniając jego szanse określona w procentach.


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

#1 Black004

    Wszechpomocny

  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:371
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 25.01.2020 21:12

Witam, mam problem otóż nie wiem jak zrobić szanse na dany item określoną w procentach nie chodzi mi o zwykłe:

if(random(4) == 1){

//KOD

}

Może wytłumacze przykładem:

 

Mam 4 różne itemy które gracz może wylosować:

 

1. Item 46%

2. Item 5%

3. Item 67%

4. Item 75%

 

I już tu widać, że wyszło poza te 100%, ponieważ jest 193% razem.

 

I jak zrobić takie losowanie, że gracz wylosuje 1 z tych 4 rzeczy, ale ma być uwzględniona szansa na wylosowanie danej rzeczy?

 

Z góry dziękuję za jakąkolwiek odpowiedź.


  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 120
Super Hero

  • Postów:2 073
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 25.01.2020 22:38

Nie możesz zrobić procentów, które uzupełnią się do 100%? 


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:371
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 25.01.2020 22:39

Nie możesz zrobić procentów, które uzupełnią się do 100%? 

 

 

Właśnie, wolałbym tego uniknąć :/


  • +
  • -
  • 0

#4 Robiin

    Godlike

  • Support Team

Reputacja: 1 120
Super Hero

  • Postów:2 073
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 25.01.2020 22:40

Wciąż, nie rozumiem dlaczego. Podaj jakiś konkretny przykład z pełnymi danymi, żebym mógł ogarnąć co tak naprawdę chcesz zrobić.


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#5 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:371
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 25.01.2020 22:45

Mam swój plugin. Jest tam drop skrzynek pod koniec mapy, ale nie działa to dobrze.

 

Mam w nim 5 skrzynek które mają różny procent na wydropienie ich. Coś jak te Itemy co podałem w przykładzie

 

W pluginie losuję 1 gracza na koniec mapy i chce żeby mu dało jedną z tych skrzynek, ale uwzględniając jej szanse dropu.


  • +
  • -
  • 0

#6 Robiin

    Godlike

  • Support Team

Reputacja: 1 120
Super Hero

  • Postów:2 073
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 25.01.2020 22:52

Well, działa to tak:

Masz wartość maksymalną, załóżmy te 193%.

 

Jeśli wylosujesz wartość między 1-193, to skrzynka, której zakres szans jest odpowiedni dla wartości, zostanie wybrana. Nie ma się to ani trochę inaczej do zakresu 100%, po prostu zmienia się ten górny limit, ale losowanie odbywa się w ten sam sposób, przez co końcowo efekt będzie ten sam, co wypisanie szans w zakresie 1-100, a nie 1-193 (a jesteśmy na co dzień przyzwyczajeni bardziej do systemu 1-100, więc 1-193 to tylko utrudnienie w wizualizacji problemu).


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#7 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:371
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 25.01.2020 23:01

Well, działa to tak:

Masz wartość maksymalną, załóżmy te 193%.

 

Jeśli wylosujesz wartość między 1-193, to skrzynka, której zakres szans jest odpowiedni dla wartości, zostanie wybrana. Nie ma się to ani trochę inaczej do zakresu 100%, po prostu zmienia się ten górny limit, ale losowanie odbywa się w ten sam sposób, przez co końcowo efekt będzie ten sam, co wypisanie szans w zakresie 1-100, a nie 1-193 (a jesteśmy na co dzień przyzwyczajeni bardziej do systemu 1-100, więc 1-193 to tylko utrudnienie w wizualizacji problemu).

 

Chyba to nie tak działa, a co jeżeli gracz wylosuje np. 135, a skrzynka ma ustawioną szanse na trafienie na 75? Jak ja mam to zrobić, ja tego po prostu nie rozumiem jak to ma wyglądać, no normalnie by to wyglądało tak:

 

Skrzynia1 - 75% szans na trafienie

if(Skrzynia1 >= random(100)){

//KOD
}

i wtedy jest normalnie, że na trafienie tego mamy 75%, ale to już nie to samo co:

if(Skrzynia1 >= random(196)){

//KOD
}

To już nie będzie 75% tylko mniej.

 

Ja jeszcze do tego mam utrudnienie lekkie dlatego, że szanse skrzynek mam wypisane w osobnym pliku z którego plugin pobiera dane i musze robić najpewniej jakąś pętle dodatkowo.


Użytkownik Black004 edytował ten post 25.01.2020 23:02

  • +
  • -
  • 0

#8 Robiin

    Godlike

  • Support Team

Reputacja: 1 120
Super Hero

  • Postów:2 073
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 25.01.2020 23:26

Jeśli mamy takie dane:

  • Skrzynia 1 - 75 (%)
  • Skrzynia 2 - 45 (%)
  • Skrzynia 3 - 90 (%)

To próbując wylosować jedną z tych skrzyń, będziesz musiał dodać wszystkie % (75 + 45 + 90 = 210), wziąć tę liczbę i wylosować wartość z zakresu 1-210. Odpowiednio dla każdej ze skrzynek będzie wyglądało to tak:

Spoiler

 

Jeśli pomoże Ci to zobrazować problem, podsyłam linka do replita, gdzie możesz uruchomić skrypt pythona, który ma symulować takie właśnie losowanie:

https://repl.it/repl...SlightVariables


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#9 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:371
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 25.01.2020 23:41

Hah kompletnie mam pustke w głowie jak to ma wyglądać na tym kodzie:

		while(jest<ilu_losowac)
		{ 
			ile++;                       
			new i2=random_num(1,32);
			if(is_user_connected(i2) && !is_user_hltv(i2) && get_user_team(i2)!=3 && !wylosowany[i2])
			{
			
			wylosowany[i2] = true;
			new name[33];
			get_user_name(i2, name, 32);
			new rNum = random_num(0, allChance);
			new allChance = 0;
			for(new i=1;i<Pointer_case;i++){
						
				allChance += CaseChance[i]
			}
				

				
				saveData(i2);
				jest++;
			}
			remove_task(SHOW_CHAT_INFO )
			
		}

Podliczam ile wynoszą wszystkie procenty i jak ja to mam dalej zrobić xD


  • +
  • -
  • 0

#10 Robiin

    Godlike

  • Support Team

Reputacja: 1 120
Super Hero

  • Postów:2 073
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 26.01.2020 00:02

Kompletnie nie testowałem tego kodu, a nie mogę przetestować Twojego, bo nie podałeś całego pliku. Spróbuj go poczytać, może coś Ci to rozjaśni, a jak nie, to podrzuć swój kod i coś spróbuję poklikać.

Mój jedynie się kompiluje, ale na serwer nawet go nie wrzucałem.

https://pastebin.com/eHXbmJsz


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#11 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:371
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 26.01.2020 11:41

Kompletnie nie testowałem tego kodu, a nie mogę przetestować Twojego, bo nie podałeś całego pliku. Spróbuj go poczytać, może coś Ci to rozjaśni, a jak nie, to podrzuć swój kod i coś spróbuję poklikać.

Mój jedynie się kompiluje, ale na serwer nawet go nie wrzucałem.

https://pastebin.com/eHXbmJsz

 

A co sądzisz o tym?

		while(jest<ilu_losowac)
		{ 
			ile++;                       
			new i2=random_num(1,32);
			if(is_user_connected(i2) && !is_user_hltv(i2) && get_user_team(i2)!=3 && !wylosowany[i2])
			{
			
			wylosowany[i2] = true;
			new name[33];
			get_user_name(i2, name, 32);
			
			new allChance = 0;
			for(new i=1;i<Pointer_case;i++){
						
				allChance += CaseChance[i]
			}
			new rNum = random_num(0, allChance);
			new rCase;
			get_case_id(rNum)
			
			if(!ArraySize(g_los))
			{
				log_to_file(SZM_LOG, "Losowanie skrzynki nie powiodlo sie. (allChance = %i, rNum = %i, rCase = %i, nick = %s)", allChance, rNum, rCase, name);
				ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Błąd pluginu.");
				return;
			}
			
			if(ArraySize(g_los) == 1) rCase = ArrayGetCell(g_los, 0);
			else if(ArraySize(g_los) > 1) rCase = ArrayGetCell(g_los, random(ArraySize(g_los)));
			
			skrzynie_gracza[i2][rCase]++;
			ColorChat(0, GREEN, "^4[JB:KOSY]^3 %s - ^1Wylosował ^4%s, ^1Gratulacje!", name, CaseName[rCase]);
			log_to_file(SZM_LOG, "[DROP-SKRZYNEK] Gracza %s wylosowal %s.", name, CaseName[rCase]);
			jest++;
			
			saveData(i2);
			}
			remove_task(SHOW_CHAT_INFO )
			
		}


get_case_id(value)
{
	for(new i=1;i<Pointer_case;i++)
    {
        if(value > CaseChance[i]) continue;
		
        ArrayPushCell(g_los, CaseType[i]);
    }
    return -1;
}

Będzie działać?


  • +
  • -
  • 0

#12 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:371
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 26.01.2020 13:00

Dobra tamten kod średnio działał, więc walnąłem takie coś:

public PrzyznanieSkrzynek() 
{
	
	set_task(1.0,"PrzyznanieSkrzynek", SHOW_CHAT_INFO, _, _, "b");
	
	if(is_rtv()){
		ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Zmiana mapy zostala wymuszona.");
		remove_task(SHOW_CHAT_INFO )
		return;
	}
	
	ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Za %d sekund zostana rozdane skrzynki!", sekundy);
	sekundy--
	
	if(sekundy <= 0){
		new ile, ilu_graczy=0,ilu_mozna=0, ilu_losowac = 1, jest, bool:wylosowany[33]=false;

		for(new i=1;i<33;i++)
		{
			if(is_user_connected(i))
			ilu_graczy++;
			remove_task(SHOW_CHAT_INFO )
		}

		if(ilu_graczy<4)
		{
			ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Zbyt malej ilosci graczy. Musi byc min. 3");
			remove_task(SHOW_CHAT_INFO )
			return;
		}

		for(new i=1;i<33;i++)
		{
			if(is_user_connected(i) && !is_user_hltv(i) && get_user_team(i)!=3)
			ilu_mozna++;
			remove_task(SHOW_CHAT_INFO )
		}

		if(ilu_graczy>4)  ilu_losowac=1;
		if(ilu_graczy>7) ilu_losowac=2;
		if(ilu_graczy>11) ilu_losowac=3;
		if(ilu_graczy>14) ilu_losowac=4;

		if(ilu_mozna<=ilu_losowac)
		ilu_losowac=ilu_mozna;

		while(jest<ilu_losowac)
		{ 
			ile++;                       
			new i2=random_num(1,32);
			if(is_user_connected(i2) && !is_user_hltv(i2) && get_user_team(i2)!=3 && !wylosowany[i2])
			{
			
			wylosowany[i2] = true;
			new name[33];
			get_user_name(i2, name, 32);

			DodajSkrzynki()

			new rCase;
			new g_Size = ArraySize(g_los)
			new rNum = random(g_Size)
			
			if(g_Size == 1) rCase = ArrayGetCell(g_los, 0);
			else if(g_Size > 1) rCase = ArrayGetCell(g_los, rNum);
			else if(g_Size == 0)
			{
				log_to_file(SZM_LOG, "Losowanie skrzynki nie powiodlo sie. (g_Size = %i, rNum = %i, rCase = %i, nick = %s)", g_Size, rNum, rCase, name);
				ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Błąd pluginu.");
				return;
			}
			
			skrzynie_gracza[i2][rCase]++;
			ColorChat(0, GREEN, "^4[JB:KOSY]^3 %s - ^1Wylosował ^4%s, ^1Gratulacje!", name, CaseName[rCase]);
			log_to_file(SZM_LOG, "[DROP-SKRZYNEK] Gracz %s wylosowal %s.", name, CaseName[rCase]);
			ArrayClear(g_los);
			
			jest++;
			saveData(i2);
			}
			remove_task(SHOW_CHAT_INFO )
			
		}
	}
}

public DodajSkrzynki()
{

	for(new i=1;i<Pointer_case;i++)
	{
		for(new i2=1;i2<CaseChance[i];i2++){
			ArrayPushCell(g_los, CaseType[i]);
		}
	}

}

Dużo pętli, ale raczej działa tak jak powinno :P

 

Jedyny minus jaki widzę, to w Array będzie nawet 800 danych jakby wszystkie skrzynie na 100% dać (Mój limit skrzyń, to 8), ale to już raczej byłaby głupota xD


Użytkownik Black004 edytował ten post 26.01.2020 13:03

  • +
  • -
  • 0

#13 Robiin

    Godlike

  • Support Team

Reputacja: 1 120
Super Hero

  • Postów:2 073
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 26.01.2020 15:15

Zmienne i niektóre części kodu można by znacznie upiększyć, ale końcowo będzie to tylko zmiana kosmetyczna.

Ciężki jest ten kod do czytania, więc przemyśl refactor pod względem kosmetyki.

Zmienne i funkcje na proste, angielskie nazwy, ogranicz trochę pętle i przede wszystkim (o ile dobrze rozumiem ten kod), zrób coś z funkcją DodajSkrzynki(), bo wszystko to działa jakoś tak dziwnie skomplikowanie.

Dodatkowo, możesz pozbyć się tej pętli while, jeśli użyjesz funkcji get_random_player z mojego przykładu. Twój sposób jest bardzo niewydajny i zależny od przypadku (i2 może w kółko dostawać wartość np. 32, przez co pętla wykona się jeszcze raz).

 

Wszystko powyższe sprawi, że z pewnością zrozumiesz w 100% swój kod i będzie Ci się łatwiej w nim odnaleźć, a co za tym idzie - mniej straconego czasu :)

 


Robiin (27.01.2020 10:42):
@Black004
Przeglądając temat jeszcze raz, uświadomiłem sobie, że wprowadziłem Cię w błąd swoim kodem. Funkcja pobierająca id skrzynki nie zadziałałaby prawidłowo. Poprawiłem to tutaj: https://repl.it/repl...FlusteredBucket
Daj znać, czy rozwiązałeś problem.

  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#14 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:371
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 27.01.2020 11:45

Lubisz utrudniać życie innym, podajesz kod w pythonie, a potem ja się głowię jak to na amxx przełożyć, bo wiem o co chodzi, ale nie wiem jak zrobić 1 rzecz, pokaże co mam zrobione:

 

Przy okazji pokaże jak pobieram dane z pliku:

	for(new i=0;read_file(szFile2, i, szLine, 149, iLen);i++){
		if(Pointer_case > MAX_CASE) break;
		trim(szLine);
		if(szLine[0]=='^0' || szLine[0]==';') continue;
		
		parse(szLine, szName, 32, szRare, 15, szChance, 7, szDropChance, 7);

		CaseChance[Pointer_case] = str_to_num(szChance);
		CaseDropChance[Pointer_case] = str_to_num(szDropChance);
		CaseType[Pointer_case] = str_to_num(szRare);
		AllCaseChance += CaseChance[Pointer_case];
		copy(CaseName[Pointer_case], 32, szName);
		Pointer_case++;
		
	}

A tutaj ta reszta kodu (nie skończone, ponieważ nie wiem jak 1 rzecz zrobić):

public PrzyznanieSkrzynek() 
{
	
	set_task(1.0,"PrzyznanieSkrzynek", SHOW_CHAT_INFO, _, _, "b");
	
//	if(is_rtv()){
	//	ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Zmiana mapy zostala wymuszona.");
//		remove_task(SHOW_CHAT_INFO )
	//	return;
//	}
	
	ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Za %d sekund zostana rozdane skrzynki!", sekundy);
	sekundy--
	
	if(sekundy <= 0){
		new ilu_graczy=0,ilu_mozna=0, ilu_losowac = 1;

		for(new i=1;i<33;i++)
		{
			if(is_user_connected(i)){
				ilu_graczy++;
			}
			if(is_user_connected(i) && !is_user_hltv(i) && get_user_team(i)!=3){
				ilu_mozna++;
			}
		}

		if(ilu_graczy<4)
		{
			ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Zbyt malej ilosci graczy. Musi byc min. 4");
			remove_task(SHOW_CHAT_INFO)
			return;
		}

		if(ilu_graczy>4)  ilu_losowac=1;
		if(ilu_graczy>7) ilu_losowac=2;
		if(ilu_graczy>11) ilu_losowac=3;
		if(ilu_graczy>14) ilu_losowac=4;

		if(ilu_mozna<=ilu_losowac){
			ilu_losowac=ilu_mozna;
		}
		
		new jest;

		while(jest<ilu_losowac)
		{ 
			new wylosowany_gracz = get_random_player();

			if(wylosowany_gracz == -1)
			{
				log_to_file(SZM_LOG, "Losowanie skrzynki nie powiodlo sie. Wylosowany gracz mial id = -1");
				ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Błąd pluginu (id = -1).");
				remove_task(SHOW_CHAT_INFO)
				return;
			}
			
			wylosowany[wylosowany_gracz] = true;
			new name[33];
			get_user_name(wylosowany_gracz, name, 32);

			new rNum = random_num(0, AllCaseChance);
			new rCase = get_case_id(rNum)
			for(new i=1;i<32;i++){
			if(get_user_flags(i) & ADMIN_IMMUNITY){
				ColorChat(i, GREEN, "^4[JB:KOSY]^x01 id skrzynki = %d", rCase);
			}
			}
			
			if(rCase == -1)
			{
				log_to_file(SZM_LOG, "Losowanie skrzynki nie powiodlo sie. Wylosowana skrzynia miala id = -1");
				ColorChat(0, GREEN, "^4[JB:KOSY]^x01 Losowanie Skrzyn sie nie odbylo z powodu:^x04 Błąd pluginu (rCase = -1).");
				remove_task(SHOW_CHAT_INFO)
				return;
			}
			
			player_case[wylosowany_gracz][rCase]++;
			ColorChat(0, GREEN, "^4[JB:KOSY]^3 %s - ^1Wylosował ^4%s, ^1Gratulacje!", name, CaseName[rCase]);
			log_to_file(SZM_LOG, "[DROP-SKRZYNEK] Gracz %s wylosowal %s.", name, CaseName[rCase]);
			
			jest++;
			saveData(wylosowany_gracz);
		}
		remove_task(SHOW_CHAT_INFO)
	}
}

get_case_id(value){
    for(new i=1;i<Pointer_case;i++)
        if(CaseChance[i] <= value && CaseChance[i+1] >= value){
            return i
		}
    return -1
}

get_random_player()
{
	new Array:random_player;	
	random_player = ArrayCreate(2, 33)
	ArrayClear(random_player);
	for(new i=1;i<32;i++)
	{
		if(!is_user_connected(i) || is_user_hltv(i) || wylosowany[i]) continue;
		if(get_user_team(i) != 3){
			ArrayPushCell(random_player, i);
		}
	}
	
	if(ArraySize(random_player) == 0){
		log_to_file(SZM_LOG, "[LOSOWANIE-GRACZA] Nie znaleziono zadnego kandydata do wylosowania skrzynki");
		return -1;
	}
	else{
		return ArrayGetCell(random_player, random(ArraySize(random_player)));
	}
}

Może dlatego, że zakresu nie zrobiłem lub nie działa coś bo id_skrzynki = -1


  • +
  • -
  • 0

#15 Robiin

    Godlike

  • Support Team

Reputacja: 1 120
Super Hero

  • Postów:2 073
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 27.01.2020 15:05

Podaję kod w pythonie, bo nie dostałem możliwości reprodukcji Twojego kodu, a pythona mogę odpalić w locie, bez potrzeby wrzucania na ftp, odpalania serwera etc. Sprawa jest na tyle prosta, że uznałem, że wystarczy Ci poglądowy kod :)

 

W Twoim kodzie brakuje zakresów. Zrób globalną pokroju

case_range[ilosc_skrzynek][2];

I użyj funkcji

Spoiler

 

Odpowiednio dla Twojego kodu.

 

Potem wystarczy zmienić get_case_id na to:

Spoiler

 

i voilà :) Jeśli w czymś to pomoże, to podrzucam kod w amxxie: https://pastebin.com/StxbDHVF


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#16 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:371
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 27.01.2020 22:52

Działa elegancko, jeszcze jedno szybkie pytanie mam jak zrobić, obrazek w motd? Chodzi mi, że obrazek w formacie .png mam w plikach w FTP i jak zrobić, żeby on się pokazywał? Jak wstawiam tą grafike na strone która hostuje grafiki to działa, ale jak już chce go, żeby byl w FTP to już nie :P
  • +
  • -
  • 0

#17 Robiin

    Godlike

  • Support Team

Reputacja: 1 120
Super Hero

  • Postów:2 073
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 28.01.2020 12:24

Hm, mi też nie załapuje z ftp plików .png. Możesz wrzucić na hosting pokroju imgura albo google drive, tam nie usuwają plików.


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#18 Black004

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 14
Początkujący

  • Postów:371
  • GG:
  • Imię:Błażej
  • Lokalizacja:Polska
Offline

Napisano 28.01.2020 15:34

Hm, mi też nie załapuje z ftp plików .png. Możesz wrzucić na hosting pokroju imgura albo google drive, tam nie usuwają plików.

 

Właśnie, paczka cs go mod donaciak ma normalnie obrazy skinow w formacie .png i działa :P


  • +
  • -
  • 0

#19 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 28.01.2020 17:41

Wrzuć obrazek do cstrike na ftp a link do obrazka podaj

TwojLinkFastDl/cstrike/nazwa_obrazka.png


  • +
  • -
  • 0




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

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