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

[ROZWIĄZANE] Problem z czytaniem flagi


Najlepsza odpowiedź Rivit, 06.01.2020 17:36

adminchat odpowiada za pisanie dla adminow w hud

 

@paka hosty

 

@@ i takie tam

Przejdź do postu


  • Zamknięty Temat jest zamknięty
36 odpowiedzi w tym temacie

#1 Dabster

    Pomocny

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 09:54

Cześć, na wstępie dodam, że mam na serwerze VIP'a i SVIP'a z kompilatora.

Druga sprawa jest taka, że jak daje plugin na VIP'a aby działał od tej godziny do tej godziny to nie nadaje mi w pełni "flag"? albo coś takiego. Mam na myśli, że dostaje w hudzie [Status]: VIP/SVIP ale nie dostaje np. podwójnego skoku czy choćby menu z wyborem broni. Po nadaniu tego nocnego VIP'a jest dostęp tylko do menu wyboru skinów.

Taki sam problem mam z losowaniem VIP w danej rundzie, dostaję dostęp do skinów/oraz jest napis w hudzie nic więcej.

 

(Z podobnym problem borykam się po usługach w sklepie sms, że osoba która zakupiła coś przez sklep sms ma tylko napis hud/skiny)

Załączone pliki


  • +
  • -
  • 0

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.01.2020 12:20


Cześć, na wstępie dodam, że mam na serwerze VIP'a i SVIP'a z kompilatora.

 

no i to jest kluczowa rzecz. Vip z generatora działa tak, że sprawdza flage tylko gdy gracz wchodzi na serwer i na tej podstawie osądza czy gracz jest vipem czy nie

 

Rozwiazania są conajmniej 3:

  • dodać natyw w vipie, który by ustawiał (wymuszał), że gracz jest vipem. W momencie gdy dajesz graczowi freevipa to wywołać ten natyw. Po zmianie mapy wszystko wraca do normy.
  • przerobic vipa i svipa aby sprawdzaly caly czas czy gracz ma flage a nie tylko przy wejsciu na serwer
  • wywołać forward amxbans_admin_connect a reszta stanie się tak jak w punkcie 1. jest to o tyle lepsze ze nie trzeba nic w vipie grzebac, tylko dodac wywolanie forwardu gdy gracz otrzymuje freevipa

  • +
  • -
  • 1

#3 Dabster

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 13:33

 


Cześć, na wstępie dodam, że mam na serwerze VIP'a i SVIP'a z kompilatora.

 

no i to jest kluczowa rzecz. Vip z generatora działa tak, że sprawdza flage tylko gdy gracz wchodzi na serwer i na tej podstawie osądza czy gracz jest vipem czy nie

 

Rozwiazania są conajmniej 3:

  • dodać natyw w vipie, który by ustawiał (wymuszał), że gracz jest vipem. W momencie gdy dajesz graczowi freevipa to wywołać ten natyw. Po zmianie mapy wszystko wraca do normy.
  • przerobic vipa i svipa aby sprawdzaly caly czas czy gracz ma flage a nie tylko przy wejsciu na serwer
  • wywołać forward amxbans_admin_connect a reszta stanie się tak jak w punkcie 1. jest to o tyle lepsze ze nie trzeba nic w vipie grzebac, tylko dodac wywolanie forwardu gdy gracz otrzymuje freevipa

 

Jak wykonać drugą i trzecią kropkę?


  • +
  • -
  • 0

#4 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.01.2020 15:02

wystarczy jedną z tych 3 kropek zrobic

 

sposob z forwardami - powinnien zadziałać ale nie jestem pewny czy cos nie sknocilem:

nocny_vip.sma

Spoiler

  • +
  • -
  • 1

#5 Dabster

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 15:49

wystarczy jedną z tych 3 kropek zrobic

 

sposob z forwardami - powinnien zadziałać ale nie jestem pewny czy cos nie sknocilem:

nocny_vip.sma

Spoiler

Spróbuje i dam znać ;# 


  • +
  • -
  • 0

#6 Dabster

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 16:26

Free vip mi działa.

No a pytanie jakbym chciał dodać ten forward do loswania vip co którąś tam rundę czy też by mi to przeszło?

Drugie pytanie dodając ten forward do VIP'a / SVIP'a zakup przez sklep sms działał by prawidłowo?


  • +
  • -
  • 0

#7 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.01.2020 16:29

tak, generalnie ten forward wystarczy dodac w miejscu gdzie uzywasz set_user_flags

pamiętaj tylko, żeby w ExecuteForward znalazło się prawidłowe id, żeby kto inny nie dostał

 

 

jesli korzystasz z amxx 1.9 to mozesz chyba tak zrobic:

new iForwardOne;
ExecuteForward(g_ForwardOne, iForwardOne, id);

->

ExecuteForward(g_ForwardOne, _, id);

Użytkownik TibacK edytował ten post 05.01.2020 16:35

  • +
  • -
  • 0

#8 Dabster

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 17:22

 

tak, generalnie ten forward wystarczy dodac w miejscu gdzie uzywasz set_user_flags

pamiętaj tylko, żeby w ExecuteForward znalazło się prawidłowe id, żeby kto inny nie dostał

 

 

jesli korzystasz z amxx 1.9 to mozesz chyba tak zrobic:

new iForwardOne;
ExecuteForward(g_ForwardOne, iForwardOne, id);

->

ExecuteForward(g_ForwardOne, _, id);

 

W którym miejscu robię źle? (załączam .sma)

Korzystam z 1.8.3.

Załączone pliki


Użytkownik Dabster edytował ten post 05.01.2020 17:24

  • +
  • -
  • 0

#9 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.01.2020 17:38

To o czym mowilem, patrz na id gracza, któremu ustawiasz flage. To samo id musi byc w executeforward

		set_user_flags(iPlayer, get_user_flags(iPlayer) | FLAGA);
		new iForwardOne;
		ExecuteForward(g_ForwardOne, iForwardOne, id);

id -> iPlayer


  • +
  • -
  • 1

#10 Dabster

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 17:50

To o czym mowilem, patrz na id gracza, któremu ustawiasz flage. To samo id musi byc w executeforward

		set_user_flags(iPlayer, get_user_flags(iPlayer) | FLAGA);
		new iForwardOne;
		ExecuteForward(g_ForwardOne, iForwardOne, id);

id -> iPlayer

Nawet nie wiesz ile przy Tobie się da nauczyć.

 

Teraz pytanie czy takie forward  jak tu i z takim samym id (te co jest napisane w VIP/SVIPIE) naprawi mi problem ze sklepem sms przy zakupie?


  • +
  • -
  • 0

#11 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.01.2020 18:07

nie wiem, po prostu to sprawdz


  • +
  • -
  • 0

#12 Dabster

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 18:35

W którym miejscu tutaj dodać forwarda? (dodam, że w vipie z kompilatora jest owy "forward amxbans_admin_connect(id);" i nie działa on za bardzo prawidłowo.) 

 

 

Załączone pliki


Użytkownik Dabster edytował ten post 05.01.2020 18:42

  • +
  • -
  • 0

#13 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.01.2020 18:45

no nie, wlasnie po to jest ten forward, zeby go wywolac. ten forward jest wywolywany gdy jakis admin czy ktos kto ma flagi wchodzi na serwer (funkcjonalnosc amxbansa)

 

wlasnie to co ja ci kazalem zrobic. dodanie tego executeforward to jest taki 'fake', żeby cie poprawnie zautoryzowalo jako vip.

 

edit:

nie widzialem ze edytowales.

 

Ale vipa nie ruszasz, zmieniasz tylko pluginy, które dają vipa. bo to co chcesz zrobic to wywolac forward amxbans admin connect ale z innego pluginu, tak,żeby plugin vip ponowil sprawdzenie flag


Użytkownik TibacK edytował ten post 05.01.2020 18:48

  • +
  • -
  • 1

#14 Dabster

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 19:08

Rozumiem, a da się zrobić tego forwarda jako osobny plugin aby właśnie normalnie autoryzowało VIP/SVIPA? 

 

(Co do losowania VIP od 3 rundy działa i też dzięki za pomoc)


  • +
  • -
  • 0

#15 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.01.2020 19:23

jasne ze sie da, ale to juz takie obejscie chamskie

mozna zrobic zeby co spawn sprawdzalo po prostu czy masz odpowiednie flagi, jesli tak to wywolac ten forward wlasnie.

 

ale jak mowie, badziewne to rozwiazanie.

 

jak masz wiele pluginów co ustawiaja vipa itp to lepiej bedzie przerobic to tak jak mowilem ci w pierwszym poscie;

  • przerobic vipa i svipa aby sprawdzaly caly czas czy gracz ma flage a nie tylko przy wejsciu na serwer

  • +
  • -
  • 0

#16 Dabster

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 19:30

Na serwerze odnośnie VIP i SVIPA posiadam:

-losowanie VIP (tutaj ten forward)

-nocny VIP (tutaj ten forward)

-VIP

-SVIP

-fixvipds.

 

 

 

  • przerobic vipa i svipa aby sprawdzaly caly czas czy gracz ma flage a nie tylko przy wejsciu na serwer

 

No to w jaki sposób mógłbym to przerobić?


  • +
  • -
  • 0

#17 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.01.2020 19:37

najprostrzy sposob na vipy:

 

otwierasz sobie vip.sma

 

szukasz:

g_Vip[id]=true;
g_Vip[id]=false;
bool:g_Vip[33]

i usuwasz

 

 

potem szukasz w pliku wystąpień: g_Vip

 

jak masz np 

g_Vip[id]

 to zamieniasz to na:

(get_user_flags(id) & FLAGA_VIP)

Zwróć uwage na id, zebys nie dal innego niz bylo w g_Vip

 

no i analogicznie jakbys mial

!g_Vip[id]

to zamieniasz na:

!(get_user_flags(id) & FLAGA_VIP)

Rivit (05.01.2020 19:37):
jak przerobisz sobie te vipy to nie potrzebujesz juz w takim losowaniu tych wywolan forwardow co na poczatku uzywales

  • +
  • -
  • 0

#18 Dabster

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 19:56

Po usunięci g_VIP dostaję błędy przy kompilacji.

Tutaj pokaże Ci zwykłego VIP oraz VIPA w którym zmieniałem g_VIP

Załączone pliki


Użytkownik Dabster edytował ten post 05.01.2020 20:01

  • +
  • -
  • 0

#19 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 05.01.2020 20:05

kurde źle podmieniasz... mowie ci co i jak

patrz:

if(is_user_alive(i) && g_Vip[i]){

zamieniles na:

if(is_user_alive(i) && (get_user_flags(id) & FLAGA_VIP){

ma byc tak: 

if(is_user_alive(i) && (get_user_flags(i) & FLAGA_VIP)){

mowilem - patrz na id jakie dałeś.

 

 

poza tym, zamiast FLAGA_VIP tam miala byc twoja flaga 

alze zeby nie dawac za kazdym razem mozesz tam pisac FLAGA_VIP, a na samej górze pod ostatnim #include dodać:

#define FLAGA_VIP ADMIN_LEVEL_H

to spowoduje, że wszystkie wystąpienia FLAGA_VIP zostaną zamienione na ADMIN_LEVEL_H, więc bedziesz mogl sterowac z jednego miejsca

 


Rivit (05.01.2020 20:08):
nie zmieniaj na pałe, tylko popatrz co jest w kwadratowych nawiasach. analogicznie do przykladu ktory ci dalem

  • +
  • -
  • 0

#20 Dabster

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:69
Offline

Napisano 05.01.2020 20:28

Zrobiłem poprawiłem ale jedna linijka dalej krzyczy:

Spoiler
 

 

    if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){ <== ta linijka

Spoiler

Użytkownik Dabster edytował ten post 05.01.2020 20:34

  • +
  • -
  • 0




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

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