[ROZWIĄZANE] Usuniecie celownika,message_b...
ogieR8
19.12.2014
~ WItam.
[...] blablabla. Usuwam graczowi celownik na X (np. 10) sekund. Sprawa wygląda tak, w momencie ustawienia ofiara_delcel[index] = 1 wywołuje tego X sekundowego taska, w którym wartość zeruje. Sprawa wyglądała na 'zadowalającą' mnie, jednak jeden z testerów skarżył się dziś, że nie ma zoom'a w sniperkach (tej nakładki crosshair z sprites/weapon_nazwa.txt -> sztywne kreski są wychodzące z 4 horyzontów, jednak nie ma tego dodatku na sam środek, z uwypukleniami i czerwoną kropką.
Kod jest w evencie CurWeapon:
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("HideWeapon"), _, id) ofiara_delcel[id] ? write_byte(1<<6) : write_byte(0); message_end()
Ogólnie rzecz biorąc spisywał się bardzo, jednak została 'odkryta' pewna wada, może inną wartość przypisać write_byte() ? Nie mam pojęcia, próbowałem już kilku i nic.
Dorzucę w sumie screeny..
Tak jest
Tak być powinno
Usunąłem ten kod dla pewności - tak to jego wina
Dodam jeszcze tylko wypis bytów
1 (1<<0) - crosshair, ammo, weapons list
2 (1<<1) - flashlight, +
4 (1<<2) - ALL
8 (1<<3) - radar, health, armor, +
16 (1<<4) - timer, +
32 (1<<5) - money, +
64 (1<<6) - crosshair
128 (1<<7) - +
+ oznacza, że doda nam wtedy celownik z spectator, takie 4 kropki żółto-pomarańczowe na znak krzyża (wierzchołki kwadratu, gdzie 1 bok kwadratu tworzy z płaszczyzną poziomą kąt 45* )
grankee
23.12.2014
Nacisniecie klawisza mouse2 wiec chyba tylko w prethinku, poszukaj, ostatnio ktos pytaniach/problemach amxmodx/scripting pisał o wykryciu zooma.
ogieR8
23.12.2014
Ale teoretycznie write_byte ustawione na 0 przy hideweapon powinno oddawać celownik (i oddaje, oprócz zooma).. Dobrze rozumiem, że muszę go jeszcze raz oddać w momencie użycia zoom'a ?
grankee
24.12.2014
Podałeś tylko message_begin, a nie wiadomo jak i kiedy sie to wykonuje. Załącz obszerniejszy fragment kodu.
ogieR8
24.12.2014
Juz wszystko wrzuciłem odnośnie tego:
Kod jest w evencie CurWeapon, gdy stajemy sie ofiara i gdy czas mija (wszedzie ten sam kod):
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("HideWeapon"), _, id) ofiara_delcel[id] ? write_byte(1<<6) : write_byte(0); message_end()
No i mam moc w diablo do itemu/klasy, Dzięki ktorej mamy 1/value przy strzale, aby usunąć przeciwnikowi celownik, wtedy pobierane jest ID ofiary, przypuśćmy victim i wtedy jest ustawiana zmienna ofiara_delcel[victim]=true; Wrzucam następnie tam taska na X sekund, w którym ustawiam znów ofiara_delcel[victim]=false;
A sprawdzenie (ustawianie i chowanie) celownika umieściłem tylko w momencie:
1 zmiany broni
2 gdy gracz staje sie ofiara (aby mu odswiezylo od razu)
3 gdy czas usuniecia celownika (w tasku) mija, aby odswiezyc mu znow
To cały opis, no oczywiście przy connect'cie zeruje zmienną ofiary
I ogólnie działą wszystko na te celowniki, co do sekundy, zmiana broni nie resetuje tego, od razu nie ma celownika i po dokłądnie odliczonych sekundach automatycznie celownik się pojawia.. tylko nie na zoom'ach W tym problem
grankee
26.12.2014
no to daj warunek, że jak broń to snajperka (obojetie czy scout czy awp czy pepeszka) to dajesz celownik a nie zabierasz, po co zabierac skoro przy snajperce i tak go nie ma, a unikniesz problemu z zoomem
Użytkownik grankee edytował ten post 26.12.2014 15:37
ogieR8
14.01.2015
Nie widziałem Twojej odpowiedzi, teraz dopiero chciałem wrócić do tematu, czy ktoś ma rozwiązanie jakieś.. Przyznam, że nie wpadłem na ten pomysł nawet -,- Na pewno zadziała, można zamknąć i + leci.
radim
14.01.2015
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