Jump to content

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

Posted Image Posted Image

Guest Message by DevFuse
 

Photo
Fix

Ustawienie danej szybkosci po zmianie broni

Fix

  • You cannot start a new topic
  • Please log in to reply
13 replies to this topic

#1 Drewno.

    Banned

  • Zbanowany

Reputacja: 36
Życzliwy

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

Posted 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
}

Edited by PedoBear., 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

Posted 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.

Edited by sebul, 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

Posted 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

Posted 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

Posted 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.

Edited by PedoBear., 16.01.2011 11:03.


#6 GoldeN

    Wszechmogący

  • Zbanowany

Reputacja: 69
Pomocny

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

Posted 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

Posted 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);
}

Edited by sebul, 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

Posted 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.

Edited by GoldeN, 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

Posted 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);
}

Edited by sebul, 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

Posted 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

Posted 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

Posted 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

Posted 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

Posted 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 :)





Also tagged with one or more of these keywords: Fix

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users