random_gun
FakeNick
02.07.2008
2. Opis :
3. Komendy :Dzięki mojemu plugin'owi gracze po wpisaniu komendy /gun tracą wszystkie bronie i biorą udział w losowaniu tychże. Losować można 1 raz na rundę.
Do wygrania są nagrody jak i "niespodzianki" :
Nagrody :
~glock18
~usp
~awp
~m4a1
~ak41
~wszystkie granaty + 4000 kasy
~m4a1+granaty+deagle+ammo (full zestaw)
Niespodzianek nie ujawnię ;].
/gun - po wpisaniu tej komendy gracz bierze udział w losowaniu4. Cvary :
random_gun (domyślnie 1) - włącza/wyłącza plugin random_gun_glock (domyślnie 1) - włącza/wyłącza glock18 z/do losowania random_gun_usp (domyślnie 1) - włącza/wyłącza usp z/do losowania random_gun_m4a1 (domyślnie 1) - włącza/wyłącza m4a1 z/do losowania random_gun_ak47 (domyślnie 1) - włącza/wyłącza ak47 z/do losowania random_gun_awp (domyślnie 1) - włącza/wyłącza awp z/do losowania random_gun_full (domyślnie 1) - włącza/wyłącza full zestaw z/do losowania random_gun_nades (domyślnie 1) - włącza/wyłącza granaty z/do losowania random_gun_knife (domyślnie 1) - włącza/wyłącza niespodziankę I z/do losowania random_gun_slap (domyślnie 1) - włącza/wyłącza niespodziankę II z/do losowania5. Moduły do odblokowania : cstrike,fun
6. Typ serwera, na jaki plugin pasuje : 4FUN
7. Modele : Brak.
8. Screeny :
Brak.
9. Dokładny opis instalacji :
plik random_gun.amxx wrzucamy do ./amxmodx/plugins/ plik random_gun.sma wrzucamy do ./amxmodx/scripting/ do pliku amxx.cfg dopisujemy podane wyżej cvar'y sound'y wrzucamy do sound/miscTemat wygenerowany przez generator tematów by FakeNick.
Changelog
ver. 1.0
~Plugin ujrzał światło dzienne ;].
ver. 1.1
~Kilka zmian kosmetycznych i optymalizacja kodu plugin'u.
~Nie ma już problemu z kompilowaniem w internecie.
ver. 1.2
~Plugin został całkowicie przebudowany, nie ma już problemu z losowaniem po wyłączeniu niektórych nagród.
Załączone pliki
MafiaDL
02.07.2008
popraw tylko 5. Moduły do oblokowania na 5. Moduły do odblokowania
Miczu
02.07.2008
strip[31]=falseZnowu ten blad ;>
To nie jest deklaracja dla wszystkich graczy tylko dla 31 elementu tablicy czyt. gracza o id 31...
new strip[32]
Gdy bedzie plug na serwerze z max 32 graczami bedzie crash. Id graczy zaczyna sie od 1 do 32, a w deklaracji twojej masz 32 miejsca, tylko ze z numeracja od 0 do 31...
Abes Mapper
02.07.2008
Niespodzianek nie ujawnię ;].
random_gun_knife (domyślnie 1) - włącza/wyłącza niespodziankę I z/do losowania
random_gun_slap (domyślnie 1) - włącza/wyłącza niespodziankę II z/do losowania
I tu właśnie je ujawniłeś
FakeNick
02.07.2008
I nie OT'uj, czekam na oceny .
Salamon
02.07.2008
poza tym piszesz pluga ciezka reka:
zamiast dac bron i 5 razy po naboju mozesz ustawic raz ilosc zapasowych naboi co oszczedza wielkosc kodu
cs_set_user_money(player,cs_get_user_money(player)-cs_get_user_money(player))po co to? wystarczy cs_set_user_money(id, 0)
poza tym napisales w opisie ze jedna opcja jest granaty + 4k kasy, ja widze granaty I 4k kasy, widzisz roznice?
cs_set_user_money(player,4000)
na dodatek, nie pisze sie, if(strip[id] == false/true) tylko:
if(strip[id]) idzie dalej jezeli wartosc strip to true
if(!strip[id]) idzie dalej jezeli wartosc strip to false
nastepna rzecz, jezeli wylosujemy np glocka, a jest on wylaczony to nic nie robi, zle to zrobiles
Abes Mapper
02.07.2008
A plugin fajny ;-) Podoba mi się ;-) Fajniej by było gdyby było więcej niespodzianek i jakiś dodatków
Tylko czasami jak wpisuje /gun to nie działa
//to jest wlasnie to o czym napisalem na samym koncu swojego posta / Salamon
Miczu
02.07.2008
No wiec True i False to sa enum (tekst odpowiadajacy cyfrze i na odwrot - np. w dbmodzie if(klass[id]==Ninja) zamiast ==7 [nie ma " " bo to nie jest ciag znakow])
Wiec mimo ze ladniej i czytelniej wyglada True i False, mozna stosowac tylko 0 dla false i 1 dla true.
A przechodzac do sedna sprawdy... W pawn'ie w przeciwienstwie do C, przy deklarowaniu zmiennej, jest ona automatycznie zerowana. I to tylko to cie ratuje przed blednym zapisem cos[31]= false
FakeNick
02.07.2008
Przepraszam za to, wcześniej zajmowałem się PHP i jakieś przyzwyczajenia pozostały .na dodatek, nie pisze sie, if(strip[id] == false/true
Kod poprawię. Dziękuję za zaraportowanie błędów w kodzie .
Zauważyłem również, iż mówicie o samym kodzie a nic o plugin'ie jako całości .
Na pewno w przyszłości rozwinę jeszcze ten plugin.A plugin fajny ;-) Podoba mi się ;-) Fajniej by było gdyby było więcej niespodzianek i jakiś dodatków
Tylko czasami jak wpisuje /gun to nie działa
Edit - 3.07.2008 godz. 00:30
Kod poprawiłem, jutro go przetestuję.
Miczu - zostałem jednak przy wersji z "false" i "true" ;].
Miczu
03.07.2008
Miczu - zostałem jednak przy wersji z "false" i "true" ;].
Spoko, ja tylko napisalem dlugi wstep do tego, ze zmienne przy deklarowaniu sa zerowane - maja wartosc False ;-)
FakeNick
03.07.2008
Miczu, Salamon - leci pomógł .
Edit
Poprawiłem do końca kod, macie w pierwszym poście.
BTW. Nie ma już problemu z kompilacją za pomocą kompilatora internetowego.
Miczu
03.07.2008
strip[32]=false
Dobra napiszmy to jeszcze raz...
Jak robisz deklaracje
new strip[33]
To zostaje stworzona tablica 33 alementowa, o onumeracji od 0 do 32.
Jak dajesz polecenie:
strip[32]=1 // jak juz mowilem reszta jest zerowana przy deklaracjie to
strip[0]==0;strip[1]==0;strip[2]==0; strip[3]==0;strip[4]==0;strip[5]==0;strip[6]==0; strip[7]==0;strip[8]==0;strip[9]==0;strip[10]==0;strip[11]==0;strip[12]==0; strip[13]==0;strip[14]==0;strip[15]==0;strip[16]==0;strip[17]==0;strip[18]==0;strip[19]==0;strip[20]==0; strip[21]==0;strip[22]==0;strip[23]==0;strip[24]==0;strip[25]==0; strip[26]==0;strip[27]==0;strip[28]==0;strip[29]==0;strip[30]==0;strip[31]==0;i dopiero
strip[32]==1
Mam nadzieje ze w koncu to zrozumiesz ;>
Jesli chcesz poprawnie wyzerowac cala tablice zastosuj cos takiego:
for(new i=0;i<33;i++){ strip[i]=0 }
FakeNick
03.07.2008
Salamon
03.07.2008
dalej jest zle zakodowany plugin w sposobie wybierania nagrody, ja ci proponuje cos takiego
func_gun(player) { if(get_pcvar_num(random_gun) { if(!strip[player]) { switch( random_num( 1, 9 ) ) { case 1: { if(get_pcvar_num(random_gun_glock)) { //bonus } else { func_gun(player) // jezeli jest wylaczony akurat glock, spowrotem robi losowanie a nie jak w twoim przypadku nic nie robi } case 2: { //drugi case itd } } } else { client_print(player, print_chat, "juz uzyl") } } else { client_print(player, print_chat, "plugin wylaczony") }
Miczu
03.07.2008
Salamon, Przydalo by sie w twoim godzie is_user_alive no chyba ze mozna wylosowac glocka bedąc trupem
//niestety nie wszyscy sa na tyle glupi by uzywac opery ^.^ poza tym dalem przyklad tylko nie gotowe rozwiazanie ^.^