Dodawanie ćpuna/godmode
Lukasz5
22.02.2010
Otóż mam problem. Jestem amatorem chcę napisać plugin już trochę mam... Piszę je wzorując się na innych. Nie wiem jak dodać ćpuna i godmode do tego pluginu. Plugin to ruletka... Chciałem zrobić to jak noclipa ale nie działa... Proszę o pomoc jak dodać to... Poniżej daję mój plugin:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #define PLUGIN "Amatorska Ruletka" #define VERSION "1.0" #define AUTHOR "Lukasz5" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_clcmd("say /ruletka", "ruletka", 0); set_task(30.0, "printer", _, _, _, "b"); } public ruletka(id) { new rand new kasa = cs_get_user_money(id) new hp = get_user_health(id) if(is_user_alive(id)) { if(cs_get_user_money(id) >= 2500) { rand = random_num(0,8) switch(rand) { case 0: { give_item(id, "weapon_deagle") give_item(id, "weapon_awp") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_338magnum") give_item(id, "ammo_338magnum") give_item(id, "ammo_338magnum") client_print(id, print_chat, "Wylosowałeś AWP&DEAGL. Powodzenia.") } case 1: { give_item(id, "weapon_hegrenade") give_item(id, "weapon_flashbang") give_item(id, "weapon_smokegrenade") client_print(id, print_chat, "Poczuj sie jak Rambo.") } case 2: { cs_set_user_money(id, kasa + 6500) client_print(id, print_chat, "Dostajesz 6500 zielonych") } case 3: { give_item(id, "weapon_m4a1") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") give_item(id, "ammo_556nato") client_print(id, print_chat, "Dostajesz M4.") } case 4: { set_user_health(id, hp + 30) client_print(id, print_chat, "30 HP Wiecej.") } case 5: { client_cmd(id, "kill", 0) client_print(id, print_chat, "Dead... Hehehe") } case 6: { set_user_gravity(id, 0.60); client_print(id, print_chat, "Poczuj sie jak na Marsie.") } case 7: { give_item(id, "weapon_ak47") give_item(id, "ammo_762nato") give_item(id, "ammo_762nato") give_item(id, "ammo_762nato") client_print(id, print_chat, "Dostajesz AK47.") } case 8: { set_user_noclip(id,1) set_task(60.0, "NoclipOFF", id) client_print(id, print_chat, "Wylosowales Noclipa na 60s. Zabaw sie.") client_print(0,print_chat, "[Ruletka] %s Ma Noclipa!", User) } cs_set_user_money(id, kasa - 2500) client_print(id, print_chat, "[AMXX] Zagrales.") } else { client_print(id, print_chat, "[AMXX] Aby zagrac musisz miec 2500$") } } else { cs_set_user_money(id, kasa - 500) client_print(id, print_chat, "[AMXX] Po co chcesz grac jak i tak lezysz jak dlugi?") } } public printer() { client_print(0, print_chat, "[RULETKA] Aby zagrac wpisz w say /ruletka") client_print(0, print_chat, "[RULETKA] Powodzenia") } public NoclipOFF(id) { set_user_noclip(id,0) }
Na pewno nikt tego nie umie zrobić?
Miczu
22.02.2010
message_begin(MSG_ONE, get_user_msgid("SetFOV"), {0,0,0}, id) write_byte(90) // 90 normalnie, wiecej to jak cpun, mniej jak zoom message_end()
Lukasz5
23.02.2010
A i jeszcze jedno pytanie jak dodać, że cicho się chodzi... Chodzi o to, że jak się wylosuje w ruletce to jak się idzie normalnie to ziomka nie słychać...
Miczu
23.02.2010
Adi^
23.02.2010
Tak na przyszłość:
case 5: { client_cmd(id, "kill", 0) client_print(id, print_chat, "Dead... Hehehe") }Gracz nie zabije się, jeżeli zastąpi kill jakimś aliasem, np. wpisze wcześniej w konsoli alias kill hahaha. Lepiej użyć funkcji user_kill.
Owner123
24.02.2010
Aczkolwiek masz racje, lepiej użyć user_kill.
Użytkownik Owner123 edytował ten post 24.02.2010 08:31
Lukasz5
24.02.2010
} case 2: { cs_set_user_money(id, kasa + 6500) client_print(id, print_chat, "Dostajesz 6500 zielonych")
Tutaj jest problem... Nie dodaje mi 6.5k kaski tylko odejmuje 9000$
Bo 6500+2500=9000
Jak to zrobić, żeby dodało kasa, a gdzie indziej zabrało
Czyli co zrobić aby tam mi dodało kasę, bo daje +6500, a mi zabiera 9000$
A tutaj zabieranie normalnie działa:
} cs_set_user_money(id, kasa - 2500) client_print(id, print_chat, "[AMXX] Zagrales.") }
Miczu
24.02.2010
pobierz ilosc pieniedzy do zmiennej "kasa"
przy dobrym losowaniu ustaw ilosc pieniedzy na "kasa"+6500
Koniec losowania pobranie oplaty: ustaw ilosc pieniedzy na "kasa"-2500
Kasa nie zmienia sie od pobrania i ciagle ma te np. 4000$ , i na koniec jest ustawiane 4000$ - 2500$. I nawet jak dasz 100000$ w miedzy czasie to na koniec i tak sie ustawi na "kasa" - 2500, czyli z calkowitym pominieciem 100000$ w miedzy czasie...
Lukasz5
24.02.2010
A można wiedzieć jaka jest komenda ta get coś tam na to, że gracz świeci się na jakiś tam kolor i jak zrobić, że jak wylosuje się w ruletce (kurę) to zamieniam się w kurę taką jak na cs_italy...
P.S nie umiem Pawna, a już napisałem 70% plugina ruletka hehe, więc proszę pisać, żebym ja zrozumiał... A i tym co pomogli daję już po + (thx)
Zmienna globalna, ustawianie jej przy uzyciu ruletki i czyszczenie przy nowej rundzie
Tzn można podać mi kod gotowy? plissss....
new kasa = cs_get_user_money(id) } case 2: { cs_set_user_money(id, kasa + 6500) client_print(id, print_chat, "Dostajesz 6500 zielonych") }
Jak daje cs_set_user_money(id, "kasa"+6500)
W compile wyskakuje mi
Error: Array must be indexed(variable "-unknown-") on line 98
Czyli coś źle jest wyskakuje mi wtedy kiedy mam kasa w " " to jak ja mam to zrobić, żeby dawało tą kasę?
Użytkownik Lukasz5 edytował ten post 24.02.2010 18:33
Vertricus
24.02.2010
Gdzie pobiera "kasa" gdzie ją zmienia i gdzie ustawia na mniej ?
Pamiętaj że w momencie którym pobierasz "kasa" taką później ta zmienna ma wartość .
W związku z tym u ciebie jest tak:
-Pobieram ilość kasy
-Sprawdzam
-Jak ok to wykonuje ruletke
-Dodaje kase 6,5k
-Ustawiam kase na kasa - X gdzie kasa to ilość którą gracz miał przed ruletką.
Jaśniej po za gotowym kodem się nie da:F
Miczu
25.02.2010
Zmienna globalna, to jest zmienna (new nazwa_zmiennej) zdeklarowana poza funkcja (najlepiej gdzies pod #include bibliotek, a nad pierwsza funkcją w pluginie). Zmienna globalna ma to do siebie, ze jej wartość nie jest kasowana az do momentu końca pracy pluga (zmiana mapy). A zmienna lokalna, traci swoje dane przy zakończeniu bloku kodu w ktorym się znajduje (może to być cała funkcja, lub tylko fragment pętli od { do } ).
Lukasz5
25.02.2010
Jak na razie bez znania pawna i innych języków programowania zrobiłem już:
1. Dostaje się wszystkie granaty ( nie wiem jak zrobić, że jak wyrzucę np.: flasha to dostaje next next i tak przez kilka sekund...)
2. Dostaje się +100 kamizelki to opanowałem w 100%!
3. Dostaje M4 też opanowałem.
4. Dostaje się 30HP. (Opanowałem).
5. KILL (user_kill) nie mogę coś zrobić ale kill opanowałem...
6. Zmniejszenie gravity (opanowałem).
7. Dostaje AK-47 również opanowałem...
9. Dostaje się $$$ to nie opanowałem i chyba nie zrobię...
10. Dostaje się godmode na 60s opanowałem...
11. Ciche buty: nie umiem dać na cały czas, a jak nie minie 60s i jest new runda to dalej je mam na pozostały czas...
12. Niewidzialność na 30s opanowałem... )
13. Gracz świeci na kolor (xx) opanowałem ale nie wiem jak zrobić aby ten kolor wychodził po za model tak jak jest na ATAC pluginie, że można dać zaświeć na (zółto, różowo)
14. Dodaje do statystyk 5 dedów (opanowałem) Nie wiem jak dodać fragi, bo na takiej samej zasadzie (innej komendzie) nie umiem... ;/
15. Gracz zostaje z 1hp jak NEO to też opanowałem.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Planuję:
Jeszcze coś wymyślę, Nie mogę coś prochów zrobić... coś nie wychodzi...
Aha ważne dla mnie nie wiem jak zrobić 1 runda = 1losowanie Nie tyle na ile nas stać...
Jeżeli ktoś w czymś jeszcze pomoże dam + i złożę podziękowania...
Użytkownik Lukasz5 edytował ten post 09.03.2010 14:27
Miczu
25.02.2010
Podpieles do pluga event od nowej rundy, by resetowac zmienne?
Adi^
26.02.2010
Dobra dałem przed początkiem plugina a po include i coś nie wychodzi, a mam pytanie jak ustawić tak aby noclip był na całą rundę... A i jeszcze coś jak dostaje buty(cichacze na 60s) to jak dam restart przed 60s to dalej je mam... A i jak ustawić aby ruletka była raz na rundę tylko...
Jak na razie bez znania pawna i innych języków programowania zrobiłem już:
1. Dostaje się wszystkie granaty ( nie wiem jak zrobić, że jak wyrzucę np.: flasha to dostaje next next i tak przez kilka sekund...)
2. Dostaje się +100 kamizelki to opanowałem w 100%!
3. Dostaje M4 też opanowałem.
4. Dostaje się 30HP. (Opanowałem).
5. KILL (user_kill) nie mogę coś zrobić ale kill opanowałem...
6. Zmniejszenie gravity (opanowałem).
7. Dostaje AK-47 również opanowałem...
8. Noclip nie umiem tylko zrobić aby było odliczanie od 60 sekund lub też noclip na całą rundę, aż do wygrania jednej z drużyn...
9. Dostaje się $$$ to nie opanowałem i chyba nie zrobię...
10. Dostaje się godmode na 60s opanowałem...
11. Ciche buty: nie umiem dać na cały czas, a jak nie minie 60s i jest new runda to dalej je mam na pozostały czas...
12. Niewidzialność na 30s opanowałem... )
13. Gracz świeci na kolor (xx) opanowałem ale nie wiem jak zrobić aby ten kolor wychodził po za model tak jak jest na ATAC pluginie, że można dać zaświeć na (zółto, różowo)
14. Dodaje do statystyk 5 dedów (opanowałem) Nie wiem jak dodać fragi, bo na takiej samej zasadzie (innej komendzie) nie umiem... ;/
15. Gracz zostaje z 1hp jak NEO to też opanowałem.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Planuję:
Jeszcze coś wymyślę, Nie mogę coś prochów zrobić... coś nie wychodzi...
Aha ważne dla mnie nie wiem jak zrobić 1 runda = 1losowanie Nie tyle na ile nas stać...
Jeżeli ktoś w czymś jeszcze pomoże dam + i złożę podziękowania...
Ad 5.
Jaki ty tu masz problem? Użyj zamiast client_cmd(id, kill) to user_kill(id, flaga), gdzie flaga to 0 albo 1, odpowiada za odejmowanie fragów
Ad 8.
Bez znajomości jakiegokolwiek poważnego języka programowania tego nie zrobisz/nie będziesz wiedział jak to zrobić. A jak chcesz to proszę bardzo...
new sId[3] set_user_noclip(id, 1) num_to_str(id, sId, 2) set_task(60.0, "usun_noclip", 666+id, sId) //gdzies tam daleko deklaracja funkcji public usun_noclip(sId[]) { new id = str_to_num(sId) set_user_noclip(id, 0) remove_task(666+id) }
Nie jestem pewien, sprawdź ktoś
Na drugie nie podam, bo za trudne do wytłumaczenia...
Ad 9.
cs_set_user_money(id, cs_get_user_money(id) + integer)Integer oznacza liczbę całkowitą
Ad 11.
Analogicznie do Ad. 8.
Ad 13.
set_user_rendering - Sets player rendering mode.
Syntax:
set_user_rendering ( index, [ fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16 ] )
W Twoim przypadku chodzi o ten fx, na stronce niżej są podane te wartości.
Cały opis tutaj
Ad 14.
cs_set_user_deaths(id, cs_get_user_deaths(id) + 5)
Podobnie jak w przypadku kasy
A prochy to drugiego posta przeczytać nie można??
message_begin(MSG_ONE, get_user_msgid("SetFOV"), {0,0,0}, id)
write_byte(90) // 90 normalnie, wiecej to jak cpun, mniej jak zoom
message_end()
Wszystko jaśnie opisane, nie zgub message_end
Nie zapomniałem o najważniejszym...
// na poczatek tablica bool new bool:losowal[33] // w funkcji komendy (najlepiej na koncu przed returnem) losowal[id] = true; // na poczatku funkcji komendy if (losowal[id] == true) { client_print(id, "Losowales w tej rundzie, wiecej nie mozesz, wroc z lapowka, itp.") return PLUGIN_HANDLED }
Jak o czymś zapomniałem/chcesz jeszcze wiedzieć to pisz ;d
Użytkownik Adi^ edytował ten post 26.02.2010 12:08
Adi^
26.02.2010
Próbowałeś?set_task(60.0, "set_user_noclip(id, 0)")
Ech, nie można tak zrobić, trzeba się odwoływać do funkcji publicznej...
Poprawiam wcześniejszy post ;d
Lukasz5
28.02.2010
Może dam cały mój plugin jaki już stworzyłem...
Opiszę z czym mam problem jeżeli ktoś coś umie zrobić niech pobierze plik z załącznika i dopisze/poprawi mój plugin... No to tak:
1. Nie mogę coś zrobić, że jak wyrzucę granata dostaje drugiego co 15s przez całą rundę.
} case 1: { give_item(id, "weapon_hegrenade") give_item(id, "weapon_flashbang") give_item(id, "weapon_flashbang") give_item(id, "weapon_smokegrenade") set_hudmessage(10, 255, 40, -1.0, 0.20, 0, 6.0, 6.0, 0.5, 0.15, 3) show_hudmessage(0,"Poczuj sie jak Rambo.") return 1 }
2. Tutaj zrobiłem jak kolega tutaj powiedział ale i tak nie działa mi dodawanie kasy dalej odejmuje 9k...
} case 9: { cs_set_user_money(id, cs_get_user_money(id) + 6500) set_hudmessage(10, 255, 40, -1.0, 0.20, 0, 6.0, 6.0, 0.5, 0.15, 3) show_hudmessage(0,"Dostales 6500 zielonych! <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />") }
3. Daję na całą rundę butki to mam przez całą mapę...
} case 11: { new sId[3] set_user_footsteps(id, 1) num_to_str(id, sId, 2) set_task(60.0, "FootstepsOFF", 666+id, sId) set_hudmessage(10, 255, 40, -1.0, 0.20, 0, 6.0, 6.0, 0.5, 0.15, 3) show_hudmessage(0,"Przeciwnicy ogluchli! Dostales ciche kalosze na cala runde! <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />") }
4. Jak w mniej niż 30s wygramy to mam na resztę czasu ducha na next rundę... ;/
} case 12: { set_user_rendering(id,1) set_user_rendering(id,kRenderFxExplode,255,0,0,kRenderNormal,25) set_task(30.0, "RenderingOFF", id) set_hudmessage(10, 255, 40, -1.0, 0.20, 0, 6.0, 6.0, 0.5, 0.15, 3) show_hudmessage(0,"Niewidzialnosc przez 30s!") }
5. Tutaj jak w butach jest,że świecę się przez całą mapę...
case 13: { new sId[3] set_user_rendering(id, 1) set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,25) set_task(60.0, "RendOFF", 666+id, sId) set_hudmessage(10, 255, 40, -1.0, 0.20, 0, 6.0, 6.0, 0.5, 0.15, 3) show_hudmessage(0,"Swiecisz sie!") }
6. W ogóle nie dodaje mi fragów...
case 16: { set_user_frags(id, 5) set_hudmessage(10, 255, 40, -1.0, 0.20, 0, 6.0, 6.0, 0.5, 0.15, 3) show_hudmessage(0,"Lamisz? +5 fragow wiecej! <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/smile.gif' class='bbc_emoticon' alt=':)' />") }
Z góry dziękuje za pomoc może kiedyś się zrewanżuję...
A i co adi napisał jak zrobić 1runda=1losowanie to nie działa mi... Może źle zrobiłem...
Użytkownik Lukasz5 edytował ten post 01.03.2010 22:40
Adi^
01.03.2010
Lukasz5
02.03.2010
new frag = get_user_frags
set_user_frags(id, + 5)
Najważniejsze dla mnie to, że raz na rundę można użyć ruletki i najlepiej tylko w Buyzone...
Reszta też jest ważna, bo chcę mieć trochę funkcji...
Adi^
04.03.2010
set_user_frags(id, get_user_frags(id) + 5) nie działa i jak daje:
new frag = get_user_frags
set_user_frags(id, + 5)
Najważniejsze dla mnie to, że raz na rundę można użyć ruletki i najlepiej tylko w Buyzone...
Reszta też jest ważna, bo chcę mieć trochę funkcji...
Coś źle robisz, to nie może nie działać...
Poza tym sprawdzaj cały kod, bo to, że poprawisz w jednym miejscu, może oznaczać, że w innym miejscu może być inny błąd.