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
Fix

Ustawienie danej szybkosci po zmianie broni

Fix

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

#1 Drewno.

    Banned

  • Zbanowany

Reputacja: 36
Życzliwy

  • Postów:263
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 14.01.2011 16:04

Zauważyłem w diablomodzie,że jest bug,że szybkość odpowiednią zmieni,dopiero,gdy zmieni się broń,przedstawię wam łatkę,dzięki której bedziemy miec dana predkosc,bez zmiany broni



W public client_PreThink ( id )

pod:
else 
{
if(casting[id]==1)
{
message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id )
write_byte( 0 )
write_byte( 0 )
message_end()
}
casting[id]=0
}

dodaj:
if (is_user_connected(id) && is_user_alive(id))
{
set_speedchange(id)
}


Teraz nie musisz zmieniac broni,zeby miec dana szybkosc...tylko,jak masz freeze time na serwerze,to po tym czasie szybkosc dziala po 1-2 sekundach;)Padło w tym temacie pytanie,że przez to nie będzie działać moc ninjy,to podaje na to sposób

new x_speed[33] = 1

w gdzieś public RoundStart(){
x_speed[i]=0

w public set_speedchange(id)
pod:
set_user_maxspeed(id, agi + speeds)

dodaj:
if (x_speed[id] > 0) set_user_maxspeed(id, agi + speeds + x_speed[id])

w public call_cast(id)
to:
case Ninja:
{
show_hudmessage(id, "Zwiekszyles sobie tymczasowo predkosc")
set_user_maxspeed(id,get_user_maxspeed(id)+50.0)
}

zamien na:

case Ninja:
{
show_hudmessage(id, "Zwiekszyles sobie tymczasowo predkosc")
x_speed[id] = 50
}

Użytkownik PedoBear. edytował ten post 16.01.2011 18:10


#2 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 14.01.2011 16:14

Ale zauważ, że ninja ma taką moc na nożu, że na chwile zwiększa swoją prędkość, a ta chwila to właśnie na czas dopóki nie zmieni broni. Oczywiście można zastosować ten "fix", ale wtedy trzeba albo dać inną moc ninji (bo po co moc, która będzie od razu przestawać działać), albo dodać tą moc na prędkość inaczej.

Użytkownik sebul edytował ten post 14.01.2011 16:15

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#3 Drewno.

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 36
Życzliwy

  • Postów:263
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 14.01.2011 16:39

to trzeba zrobić nową zmienną,coś jak player_b_speed[id] i przypisać ją ninjy w public call_cast(id)

#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 14.01.2011 17:42

to trzeba zrobić nową zmienną,coś jak player_b_speed[id] i przypisać ją ninjy w public call_cast(id)

Ja wiem, ale ktoś sobie doda to co napisałeś i potem będzie się dopytywał czemu nie działa mu moc na nożu ninji ;]
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#5 Drewno.

    Banned

  • Autor tematu
  • Zbanowany

Reputacja: 36
Życzliwy

  • Postów:263
  • GG:
  • Lokalizacja:Polska
Offline

Napisano 16.01.2011 11:02

już dodałem jak zmienić moc ninjy,aby działała,zmienna x_speed też teraz będzie przydatna jako dodatek do /rune jako np. "Mikstura przyśpieszająca"Edytowałem ten temat,bo zrobiłem drobną optymalizację tego kodu.

Użytkownik PedoBear. edytował ten post 16.01.2011 11:03


#6 GoldeN

    Wszechmogący

  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 18.01.2011 02:13

Super mi optymalizacja, aby plugin co 60-70 razy na sekundę ustawiał szybkość. ;x Już moim zdaniem lepsze by było puścić taska jedno-sekundowego od RoundStart i raz w nim wywołać to. (O ile się nie mylę też by tak działało)

#7 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 18.01.2011 19:21

Super mi optymalizacja, aby plugin co 60-70 razy na sekundę ustawiał szybkość.

A no też fakt.

Już moim zdaniem lepsze by było puścić taska jedno-sekundowego od RoundStart i raz w nim wywołać to. (O ile się nie mylę też by tak działało)

Wydaje mi się, że można by to zrobić na tej samej zasadzie co leczenie co 5 sek. Czyli pod
set_task(5.0, "Timed_Healing", 0, "", 0, "b")

trzeba dodać
set_task(3.0, "ustaw_predkosc", 0, "", 0, "b")

i przed
public set_speedchange(id) {

dodać
public ustaw_predkosc() {
for(new i=1; i<=32; i++) if(is_user_alive(i)) set_speedchange(i);
}

Użytkownik sebul edytował ten post 18.01.2011 19:21

  • +
  • -
  • 3

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#8 GoldeN

    Wszechmogący

  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 24.01.2011 22:37

@Up

Albo zamiast wywoływać taska w plugin_init wywołać go w jakimś evencie startu rundy, np sekundę po starcie rundy wywołać ustawienie prędkości i tyle, czyli task tylko raz przy starcie rundy.

Użytkownik GoldeN edytował ten post 24.01.2011 22:38


#9 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 24.01.2011 23:20

No tak też można, ale myślę, że te rozwiązanie z tym taskiem w plugin_init nie jest takie złe (na pewno lepszy niż wykonywanie tego w "client_PreThink"), a tym bardziej, że u mnie funkcja ze zmianą prędkości zajmuje tylko 363 znaków (po znacznym przerobieniu), więc dużo do wykonania nie jest. No ale jak już zostało to wspomniane, to napiszę jak zrobić to z tym taskiem w "RoundStart".
Znajdź
public RoundStart(){
for (new i=0; i < 33; i++){

dodaj pod
set_task(get_cvar_float("diablo_klass_delay")+0.1, "ustaw_predkosc", i);

następnie znajdź
public set_speedchange(id) {

i dodaj przed
public ustaw_predkosc(id) {
if(is_user_alive(id)) set_speedchange(id);
}

Użytkownik sebul edytował ten post 04.05.2011 17:47

  • +
  • -
  • 4

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#10 GoldeN

    Wszechmogący

  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 25.01.2011 02:39

Ja nie mówię, że jest źle, bo przy moim ustawieniu, byłoby dobre:

public set_speedchange(id)
{
if(DemageTake[id]==1) agi=(BASE_SPEED / 2)
else agi=BASE_SPEED

if (is_user_connected(id) && freeze_ended)
{
new speeds = race_speed[player_class[id]] + floatround(player_dextery[id]*1.1)
set_user_maxspeed(id, agi + speeds)
}
}


Ale w prethinku zlagowałoby prawdopodobnie serwer.

#11 Pawlo^^

    Życzliwy

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:35
  • Imię:Paweł
  • Lokalizacja:lodz
Offline

Napisano 26.01.2011 08:38

Mógłby ktoś napisać jeszcze raz, tylko razem z ninją? Działa mi ta opcja pod healingiem, tylko wtedy buguje ninje. Próbowałem połączyć to z częścią drugą autora, ale nie dało się wtedy skompilować.
  • +
  • -
  • 0

#12 Divic

    Wszechpomocny

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:326
  • Lokalizacja:Polska
Offline

Napisano 17.04.2011 17:58

dołączam się do prośby
  • +
  • -
  • 0

#13 ::Gogiel::

    Zaawansowany

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:77
  • GG:
  • Imię:Hm... xD Patryk xD
  • Lokalizacja:Bydgoszcz
Offline

Napisano 18.04.2011 10:18

Sebul to daj kod od siebie jeżeli chce Ci się xD ;)

Bo twoje kody są niezawodne :)
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika
SERWER SA:MP 194.28.50.14:25064
Zapraszamy Do Gry http://cs-pobojowisko.eu

#14 Kapucha112

    Zaawansowany

  • Użytkownik

Reputacja: 92
Zaawansowany

  • Postów:135
  • Imię:Łukasz
  • Lokalizacja:Polska
Offline

Napisano 05.11.2011 00:54

Ustawianie taska z flagą "b" (infinite) powoduje większe zużycie CPU niż w przypadku zrobienia tego w PreThinku.

Mimo wszystko PreThink nie powinien być używany do ustawiania prędkości gracza.

Proponuję Ham_Item_PreFrame albo CurWeapon - są to najbardziej efektywne metody ustawiania prędkości.
  • +
  • -
  • 0
DiabloMod Reloaded? [90%]
Testowanie integracji poszczególnych sub-pluginów. Zwiększanie możliwości i optymalizacja kodu.
CodMod MW2 [100%]
Całkowicie nowy silnik z tworzeniem własnych klas z własnymi nazwami! Proste w obsłudze API, nie nawiązuje niczym do Codów podróbek [OGóLNODOSTĘPNYCH]. Nowy system killstreak, misje, rewardy xp, samochody, samoloty, bombowce, ekwipunek, zrzuty zaopatrzenia, npc
Testować można na moim forum :)





Również z jednym lub większą ilością słów kluczowych: Fix

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

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