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

najlepszy gracz rundy


  • Zamknięty Temat jest zamknięty
24 odpowiedzi w tym temacie

#1 sinoku

    Pomocny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:42
Offline

Napisano 03.05.2009 22:16

Witam mam maly problem z funkcjami a dokladniej szukam funkcji ktore zwroca mi :
1. najlepszego gracza rundy
2. jak mnie ktos zabije to ile hp mu pozostalo
3. j/w tylko ile armora
4. ile osob zabil
5. ile strzelil hs
  • +
  • -
  • 0

#2 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 03.05.2009 22:20

1. trzeba liczyc ile kto zabil w danej rundzie
2. po smierci sprawdzic jego zycie np get_user_health
3. tak samo tylko armor
4. trzeba liczyc
5. trzeba liczyc


Mowiac inaczej gotowej funkcji na to nie ma (trzeba w odpowiednim miejscu uzyc odpowiedniej(ich) funkcji by uzyskac w/w efekty).
  • +
  • -
  • 0

#3 sinoku

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:42
Offline

Napisano 03.05.2009 22:34

eeeeeee to troche roboty nie mogl bys mi mistrzu napisac tego ??? bo ja sie za to biore ale ciezko mi troche juz sie morduje ale nie moge ;/ [rzydala by sie funwiki po polsku :) to jak?
  • +
  • -
  • 0

#4 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 03.05.2009 22:56

sinoku, jesli to nie jest ostatni element z tego co chcesz z tym robic (pozniej jeszcze to obrabiac) to nie ma sensu odpuszczac sobie najlatwiejszych rzeczy.

Co innego jesli chcesz miec konkretny plugin, to mowisz o co chodzi dokladniej, ale jak chcesz sie uczyc to troche cie pomecze bys sam to umial robic predzej czy pozniej O:)
  • +
  • -
  • 0

#5 sinoku

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:42
Offline

Napisano 04.05.2009 12:11

:) to milo ze chcesz pomoc hmm to moze mi powiesz jak to zaczac ?? znam mniej wiecje podstawy c++ i te petle jak robic menu i takie tam tylko pawn czy jak to sie tam zwie nieznam wogolenie ale chyba do podstaw na razie mi nie potrzebny tak?
  • +
  • -
  • 0

#6 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 04.05.2009 14:32

Zobacz dzial tutoriali, przejzycj, a dla ciebie najwazniejsze jest znalezienie eventa od smierci i pouczenia sie po drodze czegos skoro jest po polsku ;-)
  • +
  • -
  • 0

#7 sinoku

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:42
Offline

Napisano 04.05.2009 14:36

no wiem caly czas pisze jakies male pluginki xD bardzo male :) ale prosba wez napisz mi tego pluga ok ja i tak sie będę dalej udczyl i przy okazji popatrze w kod jak to tzreba bylo zrobic :)
PS mozesz mi powiedziec a raczej wytluamcyzc o co chodzi z tym read_data(1) , read_data(2) itd plz :)
  • +
  • -
  • 0

#8 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 04.05.2009 15:29

sinoku, eventy przekazuja w sobie dodatkowe informacjie. Jesli np event ma 4 dodatkowe informacje to moza do nich uzyskac dostep przez read_data. Znajac odpowiedni typ tych informacji mozna je przelac do zmiennej i wykozystac w programie. Na przyklad w evencie od smierci mozna uzyskac dane o tym kto zginol, kto go zabil, czy tyl HS oraz typ broni co go zabil. Jesli event nie przekazuje informacji to prawdopodobny efekt uzycia read_data to bedzie liczba 0.
  • +
  • -
  • 0

#9 sinoku

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:42
Offline

Napisano 04.05.2009 17:15

mniej wiecej rozumiem a mogl bys mi dac przyklad??? to bardzie to na kodzie sobie przemysle i sprobuje wyciagnac lepsze wnioski :) bo jak na razie ciagne wnioski z twojego teatu o eventach ;P
  • +
  • -
  • 0

#10 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 04.05.2009 17:32

#include <amxmodx> 

#include <amxmisc> 



public plugin_init() { 

    register_event("DeathMsg", "DeathMsg", "a") 

} 



public DeathMsg() 

{ 

    new kid = read_data(1)    //zabujca 

    

    new vid = read_data(2)    // ofiara 

    

    new hs = read_data(3)    // HeadShot (1 == true) 

    

    new weapon[64]        

    read_data(4,weapon,63)    //krotka nazwa broni (bez weapon_ / CSW_ ) 



    new kname[32]

    new vname[32]

    get_user_name(kid,kname,31)

    get_user_name(vid,vname,31)



    if(hs) client_print(0,print_chat,"Gracz %s zabil %s strzalem w glowe z %s",kname,vname,weapon)



}

  • +
  • -
  • 0

#11 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 04.05.2009 19:09

http://www.amxmodx.o...?go=func&id=915

nie bylem swiadomy ze istnieje takowa funkcja... pewnie ulatwi ci pare spraw :P
  • +
  • -
  • 0

#12 sinoku

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:42
Offline

Napisano 05.05.2009 07:41

no spewnoscia mi ulatwi ale nadal niewiem jak zrobic zeby liczylo ile osob zabil i ile hs ktos w czasie rundy i zeby to podac ;/ na koniec rundy :( i jak sprawdzic jaki jest nalepszy gracz Dzis jak wroce do chaty (teraz informatyka) xD sprobuje napisac zeby jak zgine wyswietlilo mi ile hp i ap zostalo mojemu zabójcy i zeby to sie na zielono wyswietlilo ;/ :) i dam ci tu kod to mi pomozesz ok? Zastanawiam sie tylko czy nie da rady tego liczenia zrobic za pomoca tej funkcji co podales :) nie mam zbyt duzo czasu zeby ja dobrze oblukac ;P jak worce to przyjrze sie lepiej ;P
---------------------------------------
przyjralem sie teraz troche tej funkcji i moze sie uda jednak to zrobic jak wroce do domu to sprwade :D napisze jakis banalny pluginek i jak wspomnialem dam ci kod i oblukasz ;P
  • +
  • -
  • 0

#13 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 05.05.2009 08:14

W/w funkcja zwraca statystyki gracza z danej rundy
  • +
  • -
  • 0

#14 sinoku

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:42
Offline

Napisano 05.05.2009 19:52

wiec rozumiem ze nie treba bedize jak wczesniej napisales liczyc ile hs itp chyba ;/ ale nie wiem andal jak sprawdzic jaki gracz jest najlepszy :(
  • +
  • -
  • 0

#15 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 05.05.2009 20:14

Pomijajac fakt ze nie wiem co dokladnie jest kryterium najlepszego gracza to metoda jest taka:

Ustalenie ze "najlepszy" gracz to jest 1. gracz na liscie, nastepnie w petli sprawdzic czy istnieje jeszcze lepszy gracz, jesli tak to zmieniasz "najlepszego" na tego co wlasnie pobil starego najlepszego i szukasz dalej czy moze dalej nie ma kogos najlepszego i tak az do ostatniego gracza.

Po wykonaniu tego w zmiennej przechowujacej "najlepszego" gracza, bedzie faktycznie najlepszy gracz (moze byc problem gdy wiecej niz 1 gracz ma staty najlepszego gracza).
  • +
  • -
  • 0

#16 sinoku

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:42
Offline

Napisano 05.05.2009 20:23

hmm wiesz co mi chodzi o cos takiego
jest koniec rundy na say dla wszystkich wyswietla sie:
- Najlepszym graczem rundy jest %s np Miczu!
- Zabil %s graczy! np 3
- Jebnol %s HeadShoty!! np 2

wczesniej mowilem ze sprobuje napisac tego pluga wiec lap
#include <amxmodx> 
#include <amxmisc> 

#define PLUGIN "Info_po_smierci"
#define VERSION "1.0"
#define AUTHOR "Sinoku"

new SayText;

public plugin_init() { 
		register_plugin(PLUGIN, VERSION, AUTHOR)
		register_event("DeathMsg", "DeathMsg", "a") 
		    SayText = get_user_msgid("SayText");
} 

public DeathMsg() 
{ 
    new kid = read_data(1)    //zabujca 
        
    new hs = read_data(2)    // HeadShot (1 == true) 
    new hp = read_data(3) 	 // ilosc hp pozostalego
    new ap = read_data(4)	 // ilosc armora jaki mu zostal	
    new weapon[64]        
    read_data(5,weapon,63)    //krotka nazwa broni (bez weapon_ / CSW_ ) 

    new kname[32] 
    get_user_name(kid,kname,31)
        new health[30] 
    get_user_health(hs,health,29) 
            new armor[28] 
    get_user_armor(ap,armor,27) 
    
    kolor_text(id, "^x04 [ AnimaLibera ] ^x03Zostales zabity przez ^x04 %s - [ HP: %s AP: %s ]", kname, health, armor) 

    if(hs) 
    {
	kolor_text(id, "^x04 Gracz ^x03 %s ^x04 jebnol ci HeadShota! w glowe z ^x03 %s",kname,weapon) 

    }
}
    
    

stock kolor_text(index, const wiadomosc[])
{
    
    new text[192];
    formatex(text, 191, wiadomosc);
    message_begin(MSG_ONE, SayText, _, index);
    write_byte(index);
    write_string(text);
    message_end();
    
    
}

wez pwoiedz mi o co chodzi z tymi cyframi new kname[32] bo nie kapuje i wez popraw tego pluga :) proszę :blaga:
  • +
  • -
  • 0

#17 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 05.05.2009 21:01

new xyz[N]

oznacza tablice o podanej liczbie elementow (od 0 do N-1). Tablica moze zawierac znaki (litery) lub cyfry (new Float: xyz[N] - tablica liczb zmienno przecinkowych).

Jak sie latwo dymyslic w jednej jednosce pamieci calego nicku nie zmiescisz wiec podajemy tablice o szacunkowej liczbie elementow ktora zmiesci nick.

Tak wiec w tablicach przechowujemy takie rzeczy jak: nick, ip, sid,nazwe teamu, sciezke do pliku itp. Liczby typu hp, ammo miesci sie w pojedynczej zmiennej
Vectory typu polozenie na mapie, predkosc, kierunek patrzenia, rozmiar obiektu, punkt na mapie sa przechowywane w tablicy 3 elementowej liczb (najczesciej typu float).


Formatowanie wiadomosci/napisow:
%s - string - ciag znakowy
%d - interer - liczba calkowita
%f - float - liczba zmienno przecinkowa


Jak wyzej mowilem to zycie i armor nie jest tablica znakowa i polecam funcwiki by zobaczyc jak wyglada dana funkcja (jakie parametry), przyklad interpetacji:
get_user_name ( index, name[], len ) - 1. id gracza, 2. tablica do przechowywania ciagu [], dlugosc N-1 tablicy
get_user_health ( id ) - tylko jeden parametr - id gracza

Funkcje ktore zwracaja int/float w wiekszosci wykozystuje sie w ten sposob:
ZMIENNA = funkcja_zwracajaca_liczbe
  • +
  • -
  • 0

#18 sinoku

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:42
Offline

Napisano 05.05.2009 21:30

Hmm wedlug twoich istrukcji doszedelm do wniosku ze tak to bedzie wygladac tak?


#include <amxmodx> 
#include <amxmisc> 

#define PLUGIN "Info_po_smierci" 
#define VERSION "1.0" 
#define AUTHOR "Sinoku" 

new SayText; 

public plugin_init() { 
        register_plugin(PLUGIN, VERSION, AUTHOR) 
        register_event("DeathMsg", "DeathMsg", "a") 
            SayText = get_user_msgid("SayText"); 
} 

public DeathMsg() 
{ 
    new kid = read_data(1)    //zabujca 
        
    new hs = read_data(2)    // HeadShot (1 == true) 
    new weapon[64]        
    read_data(5,weapon,63)    //krotka nazwa broni (bez weapon_ / CSW_ ) 

    new kname[32] 
    get_user_name(kid,kname,31) 
    
    health = get_user_health(id)
    armor = get_user_armor(id)
    
    kolor_text(id, "^x04 [ AnimaLibera ] ^x03Zostales zabity przez ^x04 %s - [ HP: %s AP: %s ]", kname, health, armor) 

    if(hs) 
    { 
    kolor_text(id, "^x04 Gracz ^x03 %s ^x04 jebnol ci HeadShota! w glowe z ^x03 %s",kname,weapon) 

    } 
} 
    
    

stock kolor_text(index, const wiadomosc[]) 
{ 
    
    new text[192]; 
    formatex(text, 191, wiadomosc); 
    message_begin(MSG_ONE, SayText, _, index); 
    write_byte(index); 
    write_string(text); 
    message_end(); 
    
    
}

PS to jak napisal bys mit en plugin co wyzej podalem ??? ten co wyswietla na koniec rundy proszę :)
  • +
  • -
  • 0

#19 Miczu

    Godlike

  • Przyjaciel

Reputacja: 657
Wszechmogący

  • Postów:2 862
Offline

Napisano 05.05.2009 21:51

Nie bez powodu napisalem o formatowaniu wiadomosci, pamietaj ze poprawiles typ dla hp i armora.

Zmienna ktora pojawia sie pierwszy raz w danej funkcji, musi sie zaczac od new (deklaracja zmiennej).

PS. myslalem ze chcesz tylko poznac funkcje a reszte sam zrobisz O:)
  • +
  • -
  • 0

#20 sinoku

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:42
Offline

Napisano 05.05.2009 21:53

a racja zapomnialem o new xD sorrka :) no chce sie nauczyc ale zanim sie naucze to minie troche a tamten plugin jest dosyc fajny a raczej bedzie fajny :)

#include <amxmodx> 
#include <amxmisc> 

#define PLUGIN "Info_po_smierci" 
#define VERSION "1.0" 
#define AUTHOR "Sinoku" 

new SayText; 

public plugin_init() { 
        register_plugin(PLUGIN, VERSION, AUTHOR) 
        register_event("DeathMsg", "DeathMsg", "a") 
            SayText = get_user_msgid("SayText"); 
} 

public DeathMsg() 
{ 
	new health 
	new armor
    new kid = read_data(1)    //zabujca 
        
    new hs = read_data(2)    // HeadShot (1 == true) 
    new weapon[64]        
    read_data(5,weapon,63)    //krotka nazwa broni (bez weapon_ / CSW_ ) 

    new kname[32] 
    get_user_name(kid,kname,31) 
    
    new health = get_user_health(id) 
    new armor = get_user_armor(id) 
    
    kolor_text(id, "^x04 [ AnimaLibera ] ^x03Zostales zabity przez ^x04 %s - [ HP: %s AP: %s ]", kname, health, armor) 

    if(hs) 
    { 
    kolor_text(id, "^x04 Gracz ^x03 %s ^x04 jebnol ci HeadShota! w glowe z ^x03 %s",kname,weapon) 

    } 
} 
    
    

stock kolor_text(index, const wiadomosc[]) 
{ 
    
    new text[192]; 
    formatex(text, 191, wiadomosc); 
    message_begin(MSG_ONE, SayText, _, index); 
    write_byte(index); 
    write_string(text); 
    message_end(); 
    
    
}
tak to powinno wygladac O.o ????
  • +
  • -
  • 0




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

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