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

Jak naprawić błąd z resetem kondycji przy zmianie broni


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

#1 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 22.03.2016 20:24

Mam problem na moim DR'ze. Mianowicie:

Napisałem plugin na sklep, w którym są buty dodające prędkość (zmieniając max speed), ale gdy ktoś zmieni broń (2-3 razy kliknie Q) resetuje mu się kondycja i prędkość (wraca do def. 250 na nozu, i zeruje kondycje)

 

Słyszałem że można użyć CurWeapon, ale nie wiem jak.


Użytkownik asik edytował ten post 22.03.2016 20:24

  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#2 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 23.03.2016 02:42

http://amxx.pl/topic/1680-eventy/

 

dajesz event curweapon i musisz miec w zmiennej globalnej dane czy gracz ma miec zwiekszona predkosc. Przy evencie curweapon zwiekszasz mu ta predkosc jesli mam miec wieksza.

 

Ponadto:

http://amxx.pl/topic...ędkości-gracza/


  • +
  • -
  • 1

#3 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 23.03.2016 07:10

CurWeapon? no cos ty... uzyj Ham_CS_Reset_Maxspeed


  • +
  • -
  • 1

#4 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 23.03.2016 12:27

@Grankee wiem, że dużo już dla mnie zrobiłeś, ale nie ogarniam niczego, poza pisaniem standardowych pluginów/menu/zm, z resztą też przy pomocy dokumentacji amxx.pl...

 

Wiem, że trzeba dodać event do plugin init, ale nie wiem jak rozwinąć kod. 

 

 

@Asiap, chodzi o to, że kiedy biegne z prędkośćią (na przykład) 500.0, i zmienię broń, prędkość resetujer siędo standardowej 250.0. Kondycja sie usuwa.


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#5 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 23.03.2016 15:12


CurWeapon? no cos ty... uzyj Ham_CS_Reset_Maxspeed

Ponadto:
http://amxx.pl/topic...ędkości-gracza/
 

 

@ Asiap

Zależy to od potrzeb. Kiedyś nie było kanapki i też sobie człowiek radził, z resztą w prostych sprawach curweapon sprawdza się do dzisiaj, ale masz rację, że lepiej hamem.

Ham ma ten minus, że o ile pamiętam, trzeba wyłapać czy nie ma np. freezetime albo plantowania paki, bo w tych okolicznościach też wywołuje się resetusermaxspeed. Na tak proste sprawy curweapon chyba będzie prostszy, a kodu ma być w nim niewiele  więc te nadmierne wywołania niewiele zaszkodzą.

 

@Asik

 

To co Ci zaleciłem jest na poziomie pisania prostych pluginów, jeśli potrafisz napisać prosty plugin, klasę do zm, menu to jesteś w stanie spokojnie napisać to co podałem.

Nie mam w zwyczaju dawać ryby, ale wędkę. 

new gPlayerBoostSpeed[33]


public plugin_init()
{
    register_event("CurWeapon","CurWeapon","be", "1=1")
}
public CurWeapon(id)
{
if(!is_user_alive(id)) return PLUGIN_CONTINUE
//tutaj ustawiasz maxspeed na podstawie wartosci zmiennej globalnej boostspeed, czyli jesli jest 1 to zwiekszasz mu o iles.
return PLUGIN_CONTINUE
}
public client_connect(id) gPlayerBoostSpeed[id]=0 //zeby resetowalo zawsze na wejsciu gracza, gdyby wychodzacy gracz mial buty to ktos kto zajmie jego miejsce i dostanie jego id tez by je dostal

Ponadto musisz w zmiennej globalnej aktualizowac maxspeed czyli jak kupi te buty to musisz ustawic boostspeed na 1, kiedy straci buty (nie wiem kiedy ma je stracic) to na 0, tak zeby event zawsze wiedzial czy ma zwiekszyc speed. Musisz tez ta predkosc zmienic bezposrednio po kupieniu butow zeby user nie musial zmienic broni aby buty zxadzialaly i odebrac po ich utracie, zeby user nie mogl latac na butach juz po ich utracie ale zanim zmieni bron


Użytkownik grankee edytował ten post 23.03.2016 15:26

  • +
  • -
  • 1

#6 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 23.03.2016 15:21

Jakąś podpowiedź jak to zrobić dostanę? ;P


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#7 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 23.03.2016 15:26

Bardziej się już podpowiedzieć nie da. W zasadzie dałem Ci wszystko, sam musisz dopisać tylko ustawianie prędkości, nie wiem jaką chcesz itd, ale to dość proste, dasz radę.

Możesz np. pobierać aktualny maxspeed, mnożyć go przez przelicznik lub dodawać stałą wartość i tę wartość ustawiać, zachowasz wtedy różnice prędkości między prędkością z poszczególnymi broniami i/lub włączonym zoomem.


  • +
  • -
  • 1

#8 caro

    Pomocny

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:62
  • Lokalizacja:Polska
Offline

Napisano 23.03.2016 16:28

Jakąś podpowiedź jak to zrobić dostanę? ;P


Ja stosuję taki sposób:
Spoiler

Oprócz tego w każdym case w sklepie, zwiększającym prędkość.:
speed[id]=1;

  • +
  • -
  • 1

#9 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 23.03.2016 21:43

Nie rozumiem idei dodawania tego :mad:

 

 

Ktoś by mi to wytłumaczył na przykładzie?

 

Chcę dodać  do tego sklepiku

Spoiler

 

żeby przy case 1, kondycha nie spadała... CurWeapon to jak widać dla mnie straszna nowość -_-

Cały sklep pisalem sam, wspomagając się dokumentacją amxx'a. Ale nie rozumiem prostego warunku :mad:  :facepalm:

 

 

 

 

@Grankee

 

if(!is_user_alive(id)) return PLUGIN_CONTINUE
{
fm_set_user_maxspeed(id, fm_get_user_maxspeed(id) + 400);
} else {
print_client(id, print_chat, "Musi byc zywy?")
}
return PLUGIN_CONTINUE
}
public client_connect(id) gPlayerBoostSpeed[id]=0 

o to chodzi? Teraz rozumiem samą ideę ustawiania max speeda (dopiero ogarnąłem jak prosta była sama funkcja), ale pytanie, jak wrzucić to w środek kodu, i przy okazji zrobić tak żeby się on nie bugował?

 


Użytkownik asik edytował ten post 23.03.2016 21:48

  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#10 caro

    Pomocny

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:62
  • Lokalizacja:Polska
Offline

Napisano 23.03.2016 23:44

Gotowiec:

Załączony plik  sklep.sma   4,41 KB  57 Ilość pobrań
  sklep.amxx

Usunąłem ci jedną linijkę w case 1, bo zrobiłem inną funkcję wyżej, któa idealnie za to samo odpowiada. Oprócz tego speeda się traci po śmierci i po rundzie. Jeżeli ci to nie odpowiada, to mogę usunąć lub sam możesz EventPlayerSpawn i rejestrację tego eventu w plugin_init.
  • +
  • -
  • 1

#11 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 24.03.2016 00:24

Tak jest idelnie. Dziękuję. Sorry za problem :P

 

 

Do zamknięcia.


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#12 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 25.03.2016 12:27

Jednak nie tak idealnie, bo nie działa  :facepalm2:

 

A myślałem że będzie po kodzie ^^  :facepalm:


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#13 caro

    Pomocny

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:62
  • Lokalizacja:Polska
Offline

Napisano 25.03.2016 16:17

Co dokładnie nie działa? Spróbuj załączony plik(o czymś zapomniałem xD).
Załączony plik  sklep.sma   4,43 KB  56 Ilość pobrań
  sklep.amxx

Użytkownik caro edytował ten post 25.03.2016 16:18

  • +
  • -
  • 1

#14 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 25.03.2016 23:31

Caro, sorry memory, ale nadal nie działa xD

 

I właśnie dlatego o to zapytałem :P


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#15 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 26.03.2016 16:20

new gPlayerBoostSpeed[33]//dodaj na górze pluginu tam gdzie masz inne zmienne globalne


public plugin_init()//taką funkcję masz juz w pluginie wiec drugi raz jej nie dodawaj wiadomo, ale dodaj ponizsza zawartosc do swojej funkcji plugin_init, tej w Twoim pluginie
{
    register_event("CurWeapon","CurWeapon","be", "1=1")//tą właśnie funkcję wklej do wnętrza plugin_init w Twoim pluginie, tak jak jest w jej wnętrzu tutaj
}
// OD TEGO MIEJSCA
public CurWeapon(id)//to jest funkcja, która wykona się podczas zmiany broni, ale nie tylko, to co zadeklarowano wyżej, wklej ją całą do swojego pluginu
{
if(!is_user_alive(id)) return PLUGIN_CONTINUE
//tutaj ustawiasz maxspeed na podstawie wartosci zmiennej globalnej boostspeed, czyli jesli jest 1 to zwiekszasz mu o iles. tO JUŻ WIESZ JAK ZROBIĆ czyli:
if(gPlayerBoostSpeed[id]==1)//gracz ma buty
{
//tutaj mu ustaw szybsza predkosc
}//else niepotrzebne, bo jak nie ma butów to zmiana broni mu ustawi predkosc normalna
return PLUGIN_CONTINUE
}
// DO TEGO MIEJSCA PRZEKOPIUJ W CAŁOŚCI DO SIEBIE
public client_connect(id){//jeśli masz w swoim pluginie taką funkcję to tylko przekopiuj do niej linijkę niżej, jeśli nie masz to przekopiuej w całości
 gPlayerBoostSpeed[id]=0 //zeby resetowalo zawsze na wejsciu gracza, gdyby wychodzacy gracz mial buty to ktos kto zajmie jego miejsce i dostanie jego id tez by je dostal
}

Teraz w swoim pluginie tam w menu gdzie ktoś kupi te buty to po zakupie dodaj dwie linijki

gPlayerBoostSpeed[id]=1
//także ustaw prędkość gracza na szybszą set_user_maxspeed()? nie wiem jaką funkcją to chcesz robić

a tam gdzie ma je stracić (jesli jak umrze to w evencie smierci dla przykładu) dopisz dwie linijki 

gPlayerBoostSpeed[id]=0
//ustaw prędkość gracza na wolniejszą set_user_maxspeed()? nie wiem jaką funkcją to chcesz robić

Opisałem Ci krok po kroku co dokjładnie zrobić, teraz już na pewno dasz radę.


  • +
  • -
  • 1

#16 Robiin

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 049
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 26.03.2016 20:22

dzięki grankee, nie zrobiłem jeszcze, ale z tym na pewno już dam radę :)

 

~~ Close


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.





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

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