Skocz do zawartości
MrAnonim111

Warunek sprawdzający

Rekomendowane odpowiedzi

Witajcie :D Proszę was o pilną pomoc. Co mam zrobić, żeby ten warunek sprawdzał się gdy gracz wejdzie na serwer:


if(Audio_IsClientConnected(playerid)) 

{ 

SendClientMessage(playerid, COLOR_GREEN, "[BOT]Audio Plugin został wykryty."); 

} 

else 

{ 

SendClientMessage(playerid, COLOR_RED, "[BOT]Audio Plugin nie został wykryty."); 

SendClientMessage(playerid, COLOR_RED, "[BOT]Możesz go ściągnąć za darmo z naszego forum."); 

} 

return 1; 

}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Mam tak:


public OnPlayerConnect(playerid)

{

    theme[playerid] = Audio_PlayStreamed(playerid, "http://www.solidfiles.com/d/6947a77876/download/");


    if(Audio_IsClientConnected(playerid))

    {

    SendClientMessage(playerid, DW_GREEN, "[BOT]Audio Plugin został wykryty.");

    }

    else

    {

    SendClientMessage(playerid, DW_RED, "[BOT]Audio Plugin nie został wykryty.");

    SendClientMessage(playerid, DW_RED, "[BOT]Możesz go ściągnąć za darmo z naszego forum.");

    }

    return 1;

}

I nie działa. Ciągle wyświetla, że nie mam klienta Audio :( A Risten1998 możesz jaśniej? :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki wam za wielką pomoc :D A możesz mi jeszcze przy okazji powiedzieć, gdzie mogę znaleźć listę wszystkich publiców Audio Plugina? Tego typu Audio_onPlayerConnect itd.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ten warunek jest bez sensu ponieważ callback Audio_OnClientConnect wykonuje się tylko dla graczy którzy mają tego klienta, innymi słowy mówiąc, niemożliwe jest by któryś z graczy ujrzał taką informację:

"[bOT]Audio Plugin nie został wykryty."

"[bOT]Możesz go ściągnąć za darmo z naszego forum."

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No to w sumie racja lepiej do OnPlayerConnect.

Tu callbacki. http://forum.sa-mp.com/showthread.php?t=82162

ehh.. tu nie tu to może tu, a może tam ?

Nie!

Najpierw gracz łączy się z serwerem normalnie i wykonuje się OnPlayerConnect dopiero po chwili audio klient łączy się z serwerem i wykonuje się Audio_OnClientConnect i dopiero po jego wykonaniu działa funkcja Audio_IsClientConnected

Jedynym sposobem na taki warunek byłby timer w OnPlayerConnect który po paru sekundach sprawdził by to

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A może, OnPlayerRequestClass/OnPlayerSpawn, wyjdzie na to samo, a nie obciążymy serwera zbędnym timer'em.

Jak ci timer uruchamiany tylko raz gdy gracz wchodzi na serwer bez powtarzania może obciążyć serwer ?! timer wykona się i jego pamięć się zwolni, tak samo jakbyś powiedział że PVar'y są obciążające ...

Co do callback'a ja bym dał OnPlayerRequestSpawn jak już bez timera

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ale OnPlayerRequestSpawn może wykonwac sie wiele razy dla tego samego gracza.

A OnPlayerRequestClass/OnPlayerSpawn to niby nie?!

OnPlayerRequestClass - gdy gracz wchodzi do wybierałki i przy każdej zmianie skinu

OnPlayerSpawn - wykonywany po spawnie gracza na mapie, po wybraniu skina w wybierałce oraz po każdej śmierci

OnPlayerRequestSpawn - wykonywany po wybraniu skina w wybierałce

Ale ogólnie tak trudno zrobić w OnPlayerConnect SetPVar a w jednym z tych callback'ów warunek z GetPVar i DeletePVar?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Problemowi jesteście.

tablica na górze:


gowno_klient[MAX_PLAYERS];

potem w tym callbacku od pluginu dajemy

gowno_klient[playerid] = 1;

potem możemy sprawdzić czy ma tego clienta.

if(gowno_klient[playerid] == 1) {

printf("ma");

}else{

printf("nie ma ");

}

gdy gracz opuszcza serwer

gowno_klient[playerid] = 1;

Edytowane przez Restorer

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Problemowi jesteście.

tablica na górze:


gowno_klient[MAX_PLAYERS];

potem w tym callbacku od pluginu dajemy

gowno_klient[playerid] = 1;

potem możemy sprawdzić czy ma tego clienta.

if(gowno_klient[playerid] == 1) {

printf("ma");

}else{

printf("nie ma ");

}

gdy gracz opuszcza serwer

gowno_klient[playerid] = 1;

OMG przecież ty napisałeś dokładnie to co posiada ten plugin, a mianowicie funkcję Audio_IsClientConnected

Tu chodzi by gracz otrzymał info że powinien zainstalować audio klienta lub że takiego posiada (wykryto go u niego)

A że informacja o tym że posiada tego klienta jest zapisywana po wykonaniu OnPlayerConnected to nie można tam dać takiego warunku

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
OMG przecież ty napisałeś dokładnie to co posiada ten plugin, a mianowicie funkcję Audio_IsClientConnected

Tu chodzi by gracz otrzymał info że powinien zainstalować audio klienta lub że takiego posiada (wykryto go u niego)

A że informacja o tym że posiada tego klienta jest zapisywana po wykonaniu OnPlayerConnected to nie można tam dać takiego warunku

Nie obchodzi mnie co ma ten plugin, podałem kod który można praktycznie wykorzystać. Wystarczy zrobić to co podałem w swoim poście i w OnPlayerConnect/OnPlayerSpawn stworzyć timer, a w nim ten warunek.

if(gowno_klient[playerid] == 1) {

printf("ma");

}else{

printf("nie ma ");

}

Edytowane przez Restorer

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Zmienna dla wszystkich graczy timer i gówno z optymlizacji,

Wiesz co to optymalizacja ?

ew. PVar ktory sprawdza czy gracz juz sie zrespawnowal.

Co to ma do tematowego problemu ?

OnPlayerRequestClass i tyle,

Jeżeli gracz pomija wybierałke skinów ?

Nie cierpię wchodzić w polemikę z typkami pokroju RistenGimb, zostawiam go dopie Termik.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×