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

Źle działająca funkcja (freeze)


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

#1 Filip1512

    Wszechmogący

  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 22.09.2012 13:40

Cześć,
w wolnym czasie piszę i uzupełniam sobie mój własny plugin (coś w stylu ruletki, lecz pisane od 0 i inaczej działa), ale do rzeczy.
Funkcja, która odpowiada za zamrożenie na 5 sekund trochę źle działa - zamraża ona dopiero po 5 sekundach i w dodatku przy zmianie broni już nie ma tego zamrożenia.

Miejsca, w których jest ta funkcja(wedlug kolejnosci):

new bool:freeze[33];

register_event("CurWeapon","speed150a","be", "1=1")

                case 4: {
ColorChat(id, RED, "Nie mozesz sie ruszac przez 5 sekund!")
cs_set_user_money(id, (cs_get_user_money(id)-get_cvar_num("kasa_bonus")), 1)
freeze[id] = true
set_task(5.0, "zamrozenie", id)
}

public CurWeapon(id){
if(!is_user_alive(id)){
return PLUGIN_CONTINUE;
}

if(freeze[id] == true){

set_user_maxspeed(id, 0.1);
}
return PLUGIN_CONTINUE;
}

public zamrozenie(id){
set_user_maxspeed(id);
}


Całe sma:

Spoiler

Użytkownik `NN edytował ten post 22.09.2012 13:56

  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#2 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 22.09.2012 13:57

Może spróbuj tak.
case 4: {
                                        ColorChat(id, RED, "Nie mozesz sie ruszac przez 5 sekund!")
                                        cs_set_user_money(id, (cs_get_user_money(id)-get_cvar_num("kasa_bonus")), 1)
                                        freeze[id] = true
set_user_maxspeed(id,-1.0)
                                        set_task(5.0, "zamrozenie", id)
                                }
public CurWeapon(id){
	    if(!is_user_alive(id)){
			    return PLUGIN_CONTINUE;
	    }
	    if(freeze[id] == true){			    set_user_maxspeed(id,-1.0)
	    }
	    return PLUGIN_CONTINUE;
}
public zamrozenie(id){
freeze[id] = false;
	    set_user_maxspeed(id,1.0);
}

  • +
  • -
  • 0

#3 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 22.09.2012 14:19

Wartość -1 z tego co czytałem to zmieni prędkość na standardową, więc zmienię na 0.1 i zaraz dam odp :)

A więc tak - ustawiając w całości według tego co napisałeś, w momencie zamrozenia ekran bardzo lekko się trzęsie (tylko podczas próby ruchu), a po tych 5 sekundach całkowicie stoję w miejscu już bez drgania ekranu, lecz nadal nie mogę się ruszyć. Dopiero po zmianie broni mogę się ruszyć, nawet przed tym czasem.

Ustawiając wartości takie:

case 4: {
ColorChat(id, RED, "Nie mozesz sie ruszac przez 5 sekund!")
cs_set_user_money(id, (cs_get_user_money(id)-get_cvar_num("kasa_bonus")), 1)
freeze[id] = true
set_user_maxspeed(id, 0.1)
set_task(5.0, "zamrozenie", id)
}

public CurWeapon(id){
if(!is_user_alive(id)){
return PLUGIN_CONTINUE;
}
if(freeze[id] == true){
set_user_maxspeed(id, 0.1)
}
return PLUGIN_CONTINUE;
}
public zamrozenie(id){
freeze[id] = false;
set_user_maxspeed(id, -1.0);
}


Miałem na odwrót - przez pierwsze 5 sekund z ekranem (podczas próby ruchu) nic się nie dzieje, a po tych 5 sekundach już się zaczyna trząść, z bronią jest nadal tak samo, czyli po zmianie broni prędkość zmienia się na normalną, bez względu na to, czy minęło 5 sekund, czy nie.
Przy okazji, kolejna funkcja, która odpowiada za ograniczenie prędkości gracza (speed150) do 150, po zmianie broni nie działa, lecz jeśli nie zmieniam broni to wszystko jest ok.

Ps. Napisz mi na PW (bądź też nie), jeśli chcesz IP mojego testowego serwera i zobaczyć jak to wygląda :)
  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#4 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 22.09.2012 14:31

Ekran się trzęsię jak ktoś chce się ruszyć (ponieważ wraca mu na poprzednie miejsce czy coś takiego:P) więc w funkcji zamrozenie musisz dodać CurWeapon(id) i powinno śmigać ;)
  • +
  • -
  • 0

#5 AztekHQS

    Banned

  • Zbanowany

Reputacja: 98
Zaawansowany

  • Postów:279
  • Lokalizacja:Polska
Offline

Napisano 22.09.2012 14:32

Do zmiany prędkości gracza najlepiej użyć CmdStart
I lepiej zrobić to tak:

new freeze[33] = 0

register_forward(FM_CmdStart, "RealStartCMD")

public RealStartCMD(id, uc_handle, seed) {
if(is_user_alive(id) && is_user_connected(id)) {
if(freeze[id] == 1) set_user_maxspeed(id, 0.1)
else if(freeze[id] == 2) set_user_maxspeed(id, -1.0)
}
return FMRES_HANDLED
}

case 4: {
ColorChat(id, RED, "Nie mozesz sie ruszac przez 5 sekund!")
cs_set_user_money(id, (cs_get_user_money(id) - get_cvar_num("kasa_bonus")), 1)
freeze[id] = 1
set_task(5.0, "zamrozenie", id)
}

public zamrozenie(id) freeze[id] = 2

Użytkownik AztekHQS edytował ten post 22.09.2012 14:34

Najlepszy serwer JailBreak!
IP: 31.186.83.208:27043
Dołączona grafika

#6 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 22.09.2012 14:33

new bool:freeze[33] = 0


A przypadkiem zmienna bool nie może przyjmować tylko 2 wartości - prawda/fałsz?

Użytkownik `NN edytował ten post 22.09.2012 14:34

  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!

#7 AztekHQS

    Banned

  • Zbanowany

Reputacja: 98
Zaawansowany

  • Postów:279
  • Lokalizacja:Polska
Offline

Napisano 22.09.2012 14:34

A przypadkiem zmienna globalna nie może przyjmować tylko 2 wartości - prawda/fałsz?

Tak, poprawiłem :)
Najlepszy serwer JailBreak!
IP: 31.186.83.208:27043
Dołączona grafika

#8 Filip1512

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 137
Zaawansowany

  • Postów:641
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:Poland
Offline

Napisano 22.09.2012 14:37

Ekran się trzęsię jak ktoś chce się ruszyć (ponieważ wraca mu na poprzednie miejsce czy coś takiego:P) więc w funkcji zamrozenie musisz dodać CurWeapon(id) i powinno śmigać ;)


A jak to zrobić ?:P
  • +
  • -
  • 0
Filip / `NN
Wymuszanie rate'ów co spawna - update v2.1!




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

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