[ROZWIĄZANE] Prosty plugin na zakończenie...
Kot-CSHH
02.07.2013
Czy mógłby mi ktoś krok po kroku wytłumaczyć jak zrobić prosty plugin, który po zakończeniu timeleftu np. ustawiał graviti na 9999, tak żeby wszyscy gracze zginęli? Może być również slay, chociaż z tą grawitacją lepiej by wyglądało.
xenos
02.07.2013
/* Plugin generated by AMXX-Studio */ #include #define PLUGIN "plugins" #define VERSION "1.0" #define AUTHOR "xenos" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_logevent("Koniec_Rundy", 2, "1=Round_End") } public Koniec_Rundy() for(new id = 1;id<=get_maxplayers ();id++) if((is_user_connected(id))&&(is_user_alive(id)) ) user_silentkill(id)
Załączone pliki
Kot-CSHH
02.07.2013
Prosilem o wytlumaczenie, no ale ok... + leci
Xenos ten twój plugin nie zabija wszystkich graczy po timelefcie, tylko na zakończenie rundy, a ja chciałem po timelefcie.
Użytkownik CoKeZeRo edytował ten post 02.07.2013 20:16
GwynBleidD
02.07.2013
Proponuję najpierw ustawić na chwilę grawitację na ujemną i każdym graczem podskoczyć, aby się uniósł w powietrzu, następnie przestawić grawitację
Kot-CSHH
02.07.2013
Proponuję najpierw ustawić na chwilę grawitację na ujemną i każdym graczem podskoczyć, aby się uniósł w powietrzu, następnie przestawić grawitację
A umiałbyś zrobić taki plugin? Jeżeli tak to bardzo bym prosił
Daj buziaka 02.07.2013
Kot-CSHH
02.07.2013
prosto taki pluginy zrobić. użyj po timelefcie set_task aby ustawił grawitacje ujemną ( tylko oblicz ile będzie leciał w górę ) np. 2-3 sekundy. A po użyciu set_task zrób normalną grawitację i gracze wszyscy zginą.
Aż tak nie ogarniam AMXX. Mogłbyś mi może wytłumaczyć krok po kroku?;d
Filip1512
06.07.2013
#include <amxmodx> #include <fun> #define PLUGIN "Ostatnia runda" #define VERSION "1.0" #define AUTHOR "Filip / `NN" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) } public funkcja(id){ if(is_user_connected(id) && is_user_alive(id)){ set_user_gravity(id, -1.0) set_task(2.0, "spadanie", id) } } public spadanie(id) set_user_gravity(id, 10.0)
BlackPerfum
06.07.2013
Łap całość z opisem
#include <amxmodx> public plugin_init() { register_plugin("KillForTimeLeft", "Test", "BlackPerfum") // Rejestracja pluginu new timeleft = get_timeleft() // Tworzę zmienną "timeleft" i przypisuje jej czas w sekundach do końca mapy new Float:ftimeleft = float(timeleft) //Tworze zmienną typu float i przypisuje jej wartość zmiennej "timeleft" jako wartość zmiennoprzecinkową set_task(ftimeleft-0.5, "KillAllPlayers") // Ustawiam aby funkcja "KillAllPlayers" wykonała 0.5 sekundy przed końcem mapy } public KillAllPlayers() { new Players[32],Num //Tworze dwie dodatkowe zmienne get_players(Players,Num) //Do zmiennej "Players" wkładam wszystkich graczy a do zmiennej "num" wkładam ilość graczy set_cvar_num("sv_gravity",-100) // Ustawiam grawitację taką aby gracz gdy podskoczy nie mógł spaść for(new i=0;i<Num;i++) // Ustawiam pętlę "for" aby obróciła się tyle razy ile jest aktualnie ludzi na serwerze { new id=Players[i] // wyciągam id ze zmiennej Players if(!is_user_alive(id)) continue // omijam gracz jeśli nie żyje console_cmd(id, "+jump"); // Podskakuje graczem } set_task(2.0,"SetGravity") // Ustawiam aby funkcja "SetGravity" wykonała się 1.5 sekundy po zakończonym czasie mapy } public SetGravity() { set_cvar_num("sv_gravity",800) // Ustawiam standardową grawitację }
To można skrócić do czegoś takiego
#include <amxmodx> public plugin_init() { register_plugin("KillForTimeLeft", "Test", "BlackPerfum") // Rejestracja pluginu set_task(float(get_timeleft())-0.5, "KillAllPlayers") // Ustawiam aby funkcja "KillAllPlayers" wykonała 0.5 sekundy przed końcem mapy } public KillAllPlayers() { new Players[32],Num //Tworze dwie dodatkowe zmienne get_players(Players,Num) //Do zmiennej "Players" wkładam wszystkich graczy a do zmiennej "num" wkładam ilość graczy set_cvar_num("sv_gravity",-100) // Ustawiam grawitację taką aby gracz gdy podskoczy nie mógł spaść for(new i=0;i<Num;i++) // Ustawiam pętlę "for" aby obróciła się tyle razy ile jest aktualnie ludzi na serwerze { if(!is_user_alive(Players[i])) continue // omijam gracz jeśli nie żyje console_cmd(Players[i], "+jump"); // Podskakuje graczem } set_task(2.0,"SetGravity") // Ustawiam aby funkcja "SetGravity" wykonała się 1.5 sekundy po zakończonym czasie mapy } public SetGravity() set_cvar_num("sv_gravity",800) // Ustawiam standardową grawitację
Dlaczego wprowadzam czas do funkcji "set_task" jako float?
Bo tylko liczby zmiennoprzecinkowe ona przyjmuje
Użytkownik BlackPerfum edytował ten post 06.07.2013 22:32
K!113r
07.07.2013
Jeżeli +jump to może i dasz -jump? Bo tak to raczej sobie potem nie poskaczą...
Filip1512
07.07.2013
Jeżeli +jump to może i dasz -jump? Bo tak to raczej sobie potem nie poskaczą...
Poskakać poskaczą, tylko że za pierwszy kliknięciem nie zareaguje, ale fakt faktem
BlackPerfum
07.07.2013
Ale ja dałem samo +jump tylko po to aby gracz oderwał się od ziemi a ujemna grawitacja sama zrobi swoje. Potem po 2 sekundach ustawiana jest normalna grawitacja. Tu nie chodzi aby sobie skakali ;D
Filip1512
07.07.2013
Ale ja dałem samo +jump tylko po to aby gracz oderwał się od ziemi a ujemna grawitacja sama zrobi swoje. Potem po 2 sekundach ustawiana jest normalna grawitacja. Tu nie chodzi aby sobie skakali ;D
+jump to jest coś takiego, jakbyś kliknął przycisk do skakania i go nie puścił, dlatego jeśli ktoś będzie chciał podskoczyć dopiero zadziała mu drugi skok, bo +jump będzie miał już aktywne, a -jump się zrobi przy pierwszym (nieudanym) skoku, dopiero później będzie mógł normalnie skakać.
K!113r
07.07.2013
Kot-CSHH
07.07.2013
Jakoś nie robi tego przy zakończeniu rundy no ale obejdę się bez tego można zamknąć.
Gość_21977_* 10.07.2013
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL