Skocz do zawartości

Rekomendowane odpowiedzi

Od razu mówię nie moje ! :D 

 

Działa na każdej wersji bodajże :D Tak jak w temacie anty sobeit xd 

#include a_samp.inc

new Float:CameraPosEx[MAX_PLAYERS];
new sprawdz_sobeitTimer[MAX_PLAYERS];
new Sobek_1_timer[MAX_PLAYERS];
new Sobek_2_timer[MAX_PLAYERS];
new Sobek_3_timer[MAX_PLAYERS];
new sprawdz_gracza[MAX_PLAYERS];

public OnPlayerDisconnect(playerid, reason)
{
    KillTimer(sprawdz_sobeitTimer[playerid]);
    KillTimer(Sobek_1_timer[playerid]);
	KillTimer(Sobek_2_timer[playerid]);
	KillTimer(Sobek_3_timer[playerid]);
	sprawdz_gracza[playerid] = 0;
	return 1;
}

public OnPlayerSpawn(playerid)
{
    if(sprawdz_gracza[playerid] == 0)
    {
        sprawdz_sobeitTimer[playerid] = SetTimerEx("sprawdz_sobeit", 3000, false, "i", playerid);
	    Sobek_1_timer[playerid] = SetTimerEx("sobek_1", 50, true, "i", playerid);
	    TogglePlayerControllable(playerid, false);
 	}
	return 1;
}
forward sprawdz_sobeit(playerid);
public sprawdz_sobeit(playerid)
{
	SetCameraBehindPlayer(playerid);
	Sobek_2_timer[playerid] = SetTimerEx("sobek_2", 1000, false, "i", playerid);
	return 1;
}

forward sobek_1(playerid);
public sobek_1(playerid)
{
    if(sprawdz_gracza[playerid] == 0) TogglePlayerControllable(playerid, false);
	return 1;
}

forward sobek_2(playerid);
public sobek_2(playerid)
{
    if(sprawdz_gracza[playerid] == 0)
    {
	    new Float:Camerax, Float:Cameray, Float:Cameraz;
	    GetPlayerCameraFrontVector(playerid, Camerax, Cameray, Cameraz);
	    CameraPosEx[playerid] = Cameraz;
    	Sobek_3_timer[playerid] = SetTimerEx("sobek_3", 1000, false, "i", playerid);
	}
	return 1;
}

forward sobek_3(playerid);
public sobek_3(playerid)
{
    new string[128], Float:Camerax, Float:Cameray, Float:Cameraz;
    if(sprawdz_gracza[playerid] == 0)
    {
	    GetPlayerCameraFrontVector(playerid, Camerax, Cameray, Cameraz);
	    if(CameraPosEx[playerid] == 0) Sobek_3_timer[playerid] = SetTimerEx("sobek_3", 1000, false, "i", playerid);
	    if(CameraPosEx[playerid] != Cameraz)
		{
		    format(string, sizeof(string), "* {A40000}Odinstaluj S0beita jeśli chcesz tu grać!");
			SendClientMessage(playerid, -1, string);
			SetTimerEx("KickPlayer", 100, false, "i", playerid);
		}
		KillTimer(Sobek_1_timer[playerid]);
		TogglePlayerControllable(playerid, true);
		sprawdz_gracza[playerid] = 1;
	}
	return 1;
}

forward KickPlayer(playerid);
public KickPlayer(playerid)
{
	Kick(playerid);
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Słyszałem :P Ale po co mam udostępniać to na pawno ? NP na forum samp'a jak wystawił skrypt z ukrytymi funkcjami wyłapał bym bana, więc może i tu bym wyłapał więc wole nie ryzykować :D 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dla podstawowych wersji sobka może zadziałać, dla pozostałych nie.

Wasze 'tajne' funkcje zostały wyłączone w wersji 0.3z, były tylko do krótkich testów AC w sampie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

więcej tych timerów nie mogłeś zrobić, co?

zrób jeden, który inicjujesz w OnGameModeInit, niech interval = 1000, repeat = true

 

i po prostu używaj foreach lub samego fora, pokażę Ci przykład

public OnGameModeInit()
{
	SetTimer("OnSecondTimer",1000,true);
	return 1;
}

public OnSecondTimer()
{
	for(new i = 0 ; i < MAX_PLAYERS; i++)
	{
		//instrukcje
	}
	
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Działa, ale po co wystawiać nie swoje skrypty? Gdzie jest sens tego? Też mogę pobrać zaraz 10 skryptów i stworzyć 10 tematów z innym skryptem.

 

btw. Wgrałem skrypt i nie działa.  :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

WGRAŁEM > dopisałem do server.cfg po czym się serwer uruchomił.

NIE DZIAŁA > przy korzystaniu z jakiejś opcji z nie wykonuje się nic przy czym obciąża mi serwer.

 

Mam zawsze tak jasno pisać ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

strajger, są mody na lepszą grafikę (HD) ? Bo ja znalazłem jeden, ale na SA-MP'ie on nie działa :( Możesz podesłać linka do Swojej grafiki  HD ?

 

Majster sprawdź to. :) Dostałem to od któregoś użytkownika pawno. Napisał, że mam napisać że to moje nie należę do takich. Więc mówię to jest któregoś użytkownika z pawno. 

#include a_samp

enum(<<= 1)
{
	NULL = 0,
	SOBEIT = 0x5E8606,
};

forward OnClientCheckResponse(playerid, actionid, memaddr, retndata);
native SendClientCheck(playerid, actionid, memaddr, memOffset, bytesCount);

public OnPlayerConnect(playerid) {

	new actionid = 0x5, memaddr = SOBEIT, retndata = 0x4;
	SendClientCheck(playerid, actionid, memaddr, NULL, retndata);
	return 1;
}

public OnClientCheckResponse(playerid, actionid, memaddr, retndata) {

        new Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, sizeof(Name));
	switch(retndata)
	{
		case 0xA0: printf("*** GTA Gracza %s jest czyste! ***", Name[playerid]);
		default:
	    {
			ShowPlayerDialog(playerid, 12, DIALOG_STYLE_MSGBOX, "WYRZUCONY", "Otrzymałeś kicka\nAdmin: Ochrona\nPowód: Serwer wykrył u Ciebie niedozwolone pliki..Folderze GTA", "Okey", "");
			printf("*** SOBEIT - %s ***", Name[playerid]), Kick(playerid);
		}
	}
}

Edytowane przez _NexuS_

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

#include a_samp
#pragma tabsize 0
enum(<<= 1)
{
NULL = 0,
SOBEIT = 0x5E8606,
};
 
forward OnClientCheckResponse(playerid, actionid, memaddr, retndata);
native SendClientCheck(playerid, actionid, memaddr, memOffset, bytesCount);
 
public OnPlayerConnect(playerid) {
 
new actionid = 0x5, memaddr = SOBEIT, retndata = 0x4;
SendClientCheck(playerid, actionid, memaddr, NULL, retndata);
return 1;
}
forward KickPlayer(playerid);
public KickPlayer(playerid)
{
Kick(playerid);
return 1;
}
 
public OnClientCheckResponse(playerid, actionid, memaddr, retndata) {
 
        new Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, sizeof(Name));
switch(retndata)
{
case 0xA0: printf("*** GTA Gracza %s jest czyste! ***", Name[playerid]);
default:
   {
ShowPlayerDialog(playerid, 12, DIALOG_STYLE_MSGBOX, "WYRZUCONY", "Otrzymałeś kicka\nAdmin: Ochrona\nPowód: Serwer wykrył u Ciebie niedozwolone pliki..Folderze GTA", "Okey", "");
printf("*** SOBEIT - %s ***", Name[playerid]), SetTimerEx("KickPlayer", 100, false, "i", playerid);
}
}
}

trochę poprawione pod 0.3z / 0.3x 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
#include a_samp
#pragma tabsize 0
enum(<<= 1)
{
NULL = 0,
SOBEIT = 0x5E8606,
};
 
forward OnClientCheckResponse(playerid, actionid, memaddr, retndata);
native SendClientCheck(playerid, actionid, memaddr, memOffset, bytesCount);
 
public OnPlayerConnect(playerid) {
 
new actionid = 0x5, memaddr = SOBEIT, retndata = 0x4;
SendClientCheck(playerid, actionid, memaddr, NULL, retndata);
return 1;
}
forward KickPlayer(playerid);
public KickPlayer(playerid)
{
Kick(playerid);
return 1;
}
 
public OnClientCheckResponse(playerid, actionid, memaddr, retndata) {
 
        new Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, sizeof(Name));
switch(retndata)
{
case 0xA0: printf("*** GTA Gracza %s jest czyste! ***", Name[playerid]);
default:
   {
ShowPlayerDialog(playerid, 12, DIALOG_STYLE_MSGBOX, "WYRZUCONY", "Otrzymałeś kicka\nAdmin: Ochrona\nPowód: Serwer wykrył u Ciebie niedozwolone pliki..Folderze GTA", "Okey", "");
printf("*** SOBEIT - %s ***", Name[playerid]), SetTimerEx("KickPlayer", 100, false, "i", playerid);
}
}
}

Mi to nie działa :P.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie działa, bo SendClientCheck i OnClientCheckResponse zostały wyłączone w 0.3z.

A tam nie działa, działa. Tylko deweloper w funkcji SendClientCheck w argumencie actionid wyłączył(?) wykonywanie dalszego kodu, jeżeli wartość tego argumentu wynosi 5. Edytowane przez l0nger

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

×