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

funkcja if sprawadzanie ilości czasu i fragów ?


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

#1 Frezzi

    Pomocny

  • Zbanowany

Reputacja: 1
Nowy

  • Postów:65
  • Lokalizacja:z .....
Offline

Napisano 28.09.2014 16:18

Witam.

 

Mam pytanie?

 

Jak zrobić funkcje która sprawdza ilość czasu i fragów i   jak są spełnione wymagania daję np: 5 hp co rundę?

 

 



#2 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 28.09.2014 16:28

http://amxx.pl/dokum...6/get-user-time
http://amxx.pl/dokum.../get_user_frags
  • +
  • -
  • 2

If you can dream it, you can do it.


#3 Frezzi

    Pomocny

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:65
  • Lokalizacja:z .....
Offline

Napisano 28.09.2014 16:44

thx

 

Edit ::

 jaki jest  Public do user_time i user_frags
  if get_user_time(index, flag=20) //// to 20 odpowiada za godzinę ?
 if get_user_frags(id) //// jak dodać wymaganą ilość fragów?
set_user_health(id,get_user_health(id)+5)  



 

Użytkownik Frezzi edytował ten post 28.09.2014 17:00


#4 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 28.09.2014 18:08

client_print( id, print_chat, "Od Twojego polaczenia z serwerem minelo juz %d SEKUND i masz %d fragów", get_user_time(id), get_user_frags(id) )

get_user_time - zwraca czas gry gracza. Gdy drugi parametr funkcji czyli 'flag' będzie różny od 0 (0 jest domyślnie ustawione dlatego przy wykorzystaniu funckji, nie podałem wartości dla tego parametru) to nie uwzględni czasu od połączenia do wejścia na serwer. Dla jasności, połączenie z serwerem występuję wtedy połączysz się z serwer poprzez komendę connect lub w inny sposób, czyli od zaczęcia się ładowania połączenia, a wejście to już wtedy gdy gracz już widzi mapę tuż po połączeniu i może wybrać team. Na podobnej zasadzie działają funckję: client_connect i client_putinserver. Pamiętaj, czas zwracany przez funkcję get_user_time jest podawany w sekundach.
 
Jeżeli chcesz dać wymaganą ilość to musisz w warunku zastosować znaki nierówności czyli: > (większe), < (mniejsze), == (równe), <= (mniejsze lub równe), >=(większe lub równe).
Przykład:

#include < amxmodx >
#include < amxmisc >

public plugin_init( )
{
	register_plugin( "Test czasu i fragow", "1.0", "amxx.pl" )
	
	register_clcmd( "say /sprawdz", "Sprawdz" )
}

public Sprawdz( id )
{
	if( !is_user_connected( id ) )
	return;
	
	if( get_user_time( id ) >= 1000 )
	{
		if( get_user_frags( id ) < 10 )
		client_print( id, print_chat, "Przez %d zdobyles %d fragow, czyli mniej niz 10. Jestes slaby!", get_user_time( id ), get_user_frags( id ) )
		else
		client_print( id, print_chat, "Przez %d zdobyles %d fragow, czyli masz wiecej lub rowne 10. Kozak! :)", get_user_time( id ), get_user_frags( id ) )
	}
	else
	client_print( id, print_chat, "Nie przegrales nawet 1000 sekund na serwerze. Polaczany z serwerem jestes dopiero od %d sekund, wiec brakuje Ci %d", get_user_time( id ), 1000 - get_user_time( id ) )
}

Działanie pluginu.

  • Po wpisaniu komendy /sprawdz wywołuję się funkcja "Sprawdz"
  • Na początku sprawdza czy gracz jest połączony z serwerem, jeżeli nie jest zwraca return i przerywa dalsze wykonywanie funkcji. Po co takie sprawdznie? Aby uniknąć error'ów 'index out of bound' (jakoś tak) przy pobieraniu wartości od gracza. No bo jak możemy pobrać wartości od gracza skoro nie jest połączony, nieprawdaż?
  • Następnie plugin sprawdza czy czas gry gracza jest równy lub większy od 1000
  • Jeżeli tak to plugin sprawdza czy ilość fragów gracza jest mniejsza od 10.
  • Jeżeli ilość fragów jest mniejsza od 10 to wyprintuję nam wiadomość na czacie: "Przez %d zdobyles %d fragow, czyli mniej niz 10. Jestes slaby!" gdzie napierw podany jest czas gry a potem ilość fragów.
  • Jeżeli ilość fragów nie jest mniejsza od 10 czyli jest większa lub równa 10 (else) to wyprintuję nam wiadomość na czacie o takiej treści: "Przez %d zdobyles %d fragow, czyli masz wiecej lub rowne 10. Kozak! :)" gdzie najpierw - tak jak wyżej - podany jest czas gry a potem ilość fragów
  • Jeżeli czas gry gracza nie jest równy lub większy od 1000 czyli jest mniejszy od 1000 (else) to wypritnuje nam wiadomość następującą: "Nie przegrales nawet 1000 sekund na serwerze. Polaczany z serwerem jestes dopiero od %d sekund, wiec brakuje Ci %d" gdzie pierwsza dana to czas gry gracza, a druga to różnica między 1000 a czasem gry gracza co nam daje ilość potrzebnych sekund aby mieć ilość równą 1000.

Uff, to chyba na tyle.
 

P.S Sam nigdy nie używałem get_user_time więc możliwe, że się gdzieś pomyliłem.


  • +
  • -
  • 2

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#5 Frezzi

    Pomocny

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:65
  • Lokalizacja:z .....
Offline

Napisano 28.09.2014 18:29

Tylko chodzi mi bardziej o to że:

 

jak będziesz miał przegrane 20 H i zdobędziesz 100 fragów dostajesz np:5 HP co rundę

 

Ale wielki plus za dobre intencje i wyjaśnienie :)


Użytkownik Frezzi edytował ten post 28.09.2014 18:30


#6 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 28.09.2014 18:33

Wtedy musisz zapisywać gdzieś czas przegrany przez gracza ( baza danych, nvault ).
  • +
  • -
  • 0

If you can dream it, you can do it.


#7 Frezzi

    Pomocny

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:65
  • Lokalizacja:z .....
Offline

Napisano 28.09.2014 18:38

Napisze kod i dam go bo nie wiem czy jest dobrze :D

 

Ps:wklej go za chwile

Bez hejtów :) że  np: najgorszy kod jaki widziałem :)

/* Plugin generated by AMXX-Studio */

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


#define PLUGIN "Info"
#define VERSION "1.0"
#define AUTHOR "Frezzi"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_clcmd("say /wymagania", "ShowMotd");
	
}
public ShowMotd(id){
	show_motd(id, "info.txt", "Info");
}
  if get_user_time(index, flag=1000) 
}
   if( get_user_frags( id ) < 100 )
}
   if ( get_user_health(id)+5< hp )
		{
			fm_set_user_health(id, hp);
			
			if ( pev(id, pev_max_health) < float(hp) )
			{
				set_pev(id, pev_max_health, float(hp));
			}
 

Użytkownik Frezzi edytował ten post 28.09.2014 19:08


#8 Frezzi

    Pomocny

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:65
  • Lokalizacja:z .....
Offline

Napisano 28.09.2014 19:27

Nie mogłem edytować sry

 

- @speedkill jak dodać tą baze nvault? :)



#9 Eryk172

    Szukam niewiadomej

  • Użytkownik

Reputacja: 41
Pomocny

  • Postów:407
  • Steam:steam
  • Imię:Eryk
  • Lokalizacja:Dbn
Offline

Napisano 28.09.2014 22:18

Świetny poradnik, http://amxx.pl/topic...roche-o-nvault/


  • +
  • -
  • 1

CoD Mod - IP: 91.224.117.15:27235      
JailBreak  -   IP: 91.224.117.67:27075     
Only de_dust2 -   IP: 193.33.176.197:27111   

Więcej serwerów na: www.NaFarciePL


#10 mastah7991

    Wszechpomocny

  • Użytkownik

Reputacja: 154
Profesjonalista

  • Postów:388
  • Lokalizacja:Polska
Offline

Napisano 28.09.2014 22:46

Troszkę chamsko się wtrącę ale kolego poczytaj najpierw trochę o składni i tworzeniu zmiennych. Kod ten nawet nie zostanie przetworzony (wszystkie ify sa za kodem + kazdy jest zamykany ale tylko 2 otworzone).
  • +
  • -
  • 1

#11 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 29.09.2014 12:11

zrob sobie tablice na czas i fragi zapisuj ją i wczytuj z nvault odpowiednio przy disconnect i authorized po zabójstwie dodawaj do odpowiedniego elementu tablicy fraga a do drugiego czas przegrany na serverze (najlepiej zapisać do jakiejs zmiennej pomocniczej tez ten czas i potem dodawać róznice) no i na początku rundy sprawdzasz czy w gosc ma X fragów i Y przegranego czasu i dajesz hp (mozesz to robić tez w spawnie)


  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#12 Frezzi

    Pomocny

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:65
  • Lokalizacja:z .....
Offline

Napisano 29.09.2014 13:49

Poprawiłem lekko kod lecz nie wiem jak dodać nvault /////////////////////Poradnik nic nie dał :/

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fun>
#include <nvault>

#define PLUGIN "Dodatki"
#define VERSION "1.0"
#define AUTHOR "Frezzi"


new stats_vault   /// Co to daje? Bo średnio wiem z tego poradnika :/

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
         stats_vault=nvault_open("Dodatki")   /// To jest ścieżka jakaś?
	register_clcmd("say /wymagania", "ShowMotd");
	
}
public ShowMotd(id){
	show_motd(id, "wymagania.txt", "Info");
}
  if get_user_time(index, flag=1000) 
}
   if( get_user_frags( id ) < 100 )
}
  ( get_user_health(id)+5< hp )
}

Użytkownik Frezzi edytował ten post 29.09.2014 13:51


#13 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 29.09.2014 13:57

przeciez ty nie umiesz programować


  • +
  • -
  • 3
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#14 Frezzi

    Pomocny

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:65
  • Lokalizacja:z .....
Offline

Napisano 29.09.2014 14:04

No wiesz jak nie znasz znaczenia słowa lekko to pozdro :)



#15 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 29.09.2014 14:09

No wiesz jak nie znasz znaczenia słowa lekko to pozdro :)

Raz, zacznij od czytania tutoriali i uczenia się, programowanie to nie tylko dokumentacja i dodawanie komuś życia.

 

Dwa, jeżeli chcesz, by ktoś za Ciebie "odwalił robotę" napisz temat w innym dziale lub zleceniach płatnych. Dostałeś bardzo dużo wskazówek, a nadal nie wiesz, co masz z nimi zrobić.


  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#16 Frezzi

    Pomocny

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:65
  • Lokalizacja:z .....
Offline

Napisano 29.09.2014 14:18

Wiesz większość osób uczy się na sklejaniu kodów i moim zdaniem jest to łatwy sposób nauki i czerpania wiedzy od bardziej zaawansowany :) Takim sposobem trochę chociaż umiem , a nie że  przeczytam książkę o programowaniu i   nawet  co z tego że będę umiał funkcje jak nawet nie będę umiał  zrobić poprawnie kodu  , a z książki to początkujący nawet nic nie zrozumie , a po za tym ten dział jest do pomocy i do uczenia się a nie do wytykania palcami.

 


Użytkownik Frezzi edytował ten post 29.09.2014 14:19


#17 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 29.09.2014 20:36


trochę chociaż umiem

 

ty nic nie umiesz

 

co to jest?

public ShowMotd(id){
    show_motd(id, "wymagania.txt", "Info");
}
if get_user_time(index, flag=1000) 
}
if( get_user_frags( id ) < 100 )
}
( get_user_health(id)+5< hp )
}
 
najpierw zaczynasz funkcje i wyswietlasz w niej motd, po co ?
potem robisz jakiegoś pseudo ifa bez nawiasów i zamykasz klamre której nigdzie nie otworzyłeś niżej jest już lepiej ale wciąż źle bo dalej masz klamre widmo no i na końcu masz warunek ale bez if'a
 
więc jesli sklejanie kodów jest dobrą metodą nauki to nie jest metodą dla Ciebie bo poprostu nie działa
 
// raczej malo prawdopodobne zebys kiedys z get_user_frags dostal liczbę wiekszą od 100 chyba że DeathMatcha prowadzisz

  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#18 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 30.09.2014 09:33

Jak już wyżej wspomniał GoQ, nic nie umiesz... Nie znasz nawet podstaw składni języka... A tego właśnie książka uczy...

Z kiepskiej książki faktycznie się nic nie nauczysz, z dobrej jednak jeśli nie rozumiesz - nie jesteś widać do tego stworzony, by programować...

Książki do Pawn nie znajdziesz raczej, ale ma on podobną składnię do C, więc możesz się posiłkować tym... Polecam kurs na wikibooks do C, który Ci świetnie książkę zastąpi, gdy nauczysz się podstaw składni to weź się za proste pluginy typu dodawanie HP, broni i innych rzeczy na komendę, a nie od razu za zapis nvault, bo porywasz się z motyką na słońce.
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark





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

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