←  Poradniki oraz Łatki

AMXX.pl: Support AMX Mod X i SourceMod

»

Dodatek
Item wallhack

  • +
  • -
góruś - zdjęcie góruś 15.06.2011

Wyciągnąłem kiedyś kod z jakiegoś pluginu GHW, dziś postanowiłem wam go opublikować.

Do poprawnego działania potrzebujemy biblioteki chr_engine czyli wrzucamy ją do naszego kompilatora oraz w .sma includujemy

#include <chr_engine>


Na początek deklarujemy nad

new bool:freeze_ended

to

new bool:esp[33]

następnie w plugin_init dodajemy nad register_plugin
to

register_forward(FM_PlayerPreThink,"FM_PreThink")

w casie itemu dodajemy

esp[id]=true

czyli np.

case 178:
{
player_item_name[id] = "Wallhack goru$'a"
esp[id]=true
ShowSyncHudMsg(id, SyncHudObj2, "Znalazles przedmiot: %s :: Masz wh", player_item_name[id]);
}

i na koniec waszego sma wklejamy

public FM_PreThink(id)
{
if(is_user_alive(id))
{
static Float:origin[3], players[32], num, num2, team
team = get_user_team(id)
arrayset(players,0,32)
if(esp[id]=true)
{
pev(id,pev_origin,origin)
get_players_distance(origin,players,num,"a")
static Float:hudpos[2]
static Float:distance
static Float:origin2[3]
num2=0
for(new i=0;i<num;i++)
{
if(players[i] && get_user_team(players[i])!=team)
{
pev(players[i],pev_origin,origin2)
if(get_hudmessage_locs(id,origin2,hudpos))
{
distance = vector_distance(origin,origin2)
num2++
set_hudmessage(255,0,0,hudpos[0],hudpos[1],0,6.0,0.2,0.1, 0.2,num2)
show_hudmessage(id, "%d",floatround(distance / 10.0))
if(num2==4) break;
}
}
}
}
else
{
esp[id]=false
}
}
}

i to wszystko.

Załączone pliki


Użytkownik góruś edytował ten post 15.06.2011 23:08
Odpowiedz

  • +
  • -
Stachuu :D ?? - zdjęcie Stachuu :D ?? 15.06.2011

hmm fajne ale to wymaga kilku poprawek

na początku naszego kodu dajemy
 #include <chr_engine> 

plik dam niżej


po co uywac bolla esp ?
dlc jest
if(player_item_id[id]==178)
Ja proponuje dać to tak .

public FM_PreThink(id)
{
	if(is_user_alive(id) && player_item_id[id]==178)
	{
		static Float:origin[3], players[32], num, num2, team
		team = get_user_team(id)
		arrayset(players,0,32)
		
		pev(id,pev_origin,origin)
		get_players_distance(origin,players,num,"a")
		static Float:hudpos[2]
		static Float:distance
		static Float:origin2[3]
		num2=0
		for(new i=0;i<num;i++)
		{
			if(players[i] && get_user_team(players[i])!=team)
			{
				pev(players[i],pev_origin,origin2)
				if(get_hudmessage_locs(id,origin2,hudpos))
				{
					distance = vector_distance(origin,origin2)
					num2++
					set_hudmessage(255,0,0,hudpos[0],hudpos[1],0,6.0,0.2,0.1, 0.2,num2)
					show_hudmessage(id, "%d",floatround(distance / 10.0))
					if(num2==4) break;
				}
			}
		}
	}
}


i w case itemku
case 178:
		{
			player_item_name[id] = "Wallhack"
			player_item_id[id] = 178
			
			ColorChat(0, GREEN, "^x04 %s^x01  Otrzymal ^x04 %s^x01 ", name, player_item_name[id])
		}

Działa na 100 %

Załączone pliki

Odpowiedz

  • +
  • -
góruś - zdjęcie góruś 15.06.2011

Przepraszam, robiłem na szybko a że nie ma od razu możliwości poprawki, to nie zwróciłem uwagi na błędy, poprawka pierwszego postu.


@up, po co w casie itemu deklarować jego numer?o.0
Użytkownik góruś edytował ten post 15.06.2011 23:08
Odpowiedz

  • +
  • -
Stachuu :D ?? - zdjęcie Stachuu :D ?? 16.06.2011

a po to

gry damy
player_item_id[id] = 178
lub
player_item_id[id] = rannum

zbedne jest używanie esp[id] i ciągłe zmienianie je na false .
Odpowiedz

  • +
  • -
góruś - zdjęcie góruś 16.06.2011

zmieniając tylko na player_item_id[id] = 178, będzie się tyczyło tylko jednego itemu, często ludzie używają jednej mocy w kilku bądź dają takie moce dla klasy i wtedy po co stawiać przykładowo 3 warunki?
Odpowiedz

  • +
  • -
Stachuu :D ?? - zdjęcie Stachuu :D ?? 16.06.2011

to już lepiej tak jak ty mówisz dać

new esp[33]

i esp[id] = 1

niż na bool .

if(is_user_alive(id) && esp[id] > 0)

a to usunąć bo zbędne
else
                {
                        esp[id]=false
                }
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 16.06.2011

to już lepiej tak jak ty mówisz dać

new esp[33]

i esp[id] = 1

niż na bool .

if(is_user_alive(id) && esp[id] > 0)

a to usunąć bo zbędne
else
                {
                        esp[id]=false
                }

A co to za różnica? Bool też może być, wtedy warunek można napisać jeszcze krócej, zresztą przy normalnej zmiennej też tak można
if(esp[id]) // ma exp
Odpowiedz

  • +
  • -
::Gogiel:: - zdjęcie ::Gogiel:: 20.06.2011

Sebul to wrzuć od siebie dobrze napisane :D

Zapewne pomoże wielu osobą :)
A itemek fajny kumpel na swoim diablo miał taki sam :D tylko odległość miała lekkie opóźnienie :)

Góruś jeżeli to ty goruś to nie wstawiaj nie swoich itemków :D bo to hefcio pisał :)
Odpowiedz

  • +
  • -
góruś - zdjęcie góruś 20.06.2011

A tu Cię zaskoczę, .sma hefcia nie ma nikt, tylko on, wszystko co udostępniam robię sam. Następny super elo hajt ze śmietniska który uważa, że wszystko wie, pozdro ;*
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 20.06.2011

Dołączona grafika
Takie "wh" prezentuje się lepiej ;]
Odpowiedz

stasiu - zdjęcie stasiu 20.06.2011

Fajne fajne + leci ;d
Odpowiedz

Infernal - zdjęcie Infernal 22.07.2011

no fajne ale niema do pobrania do coda lub osobny jako do coda?;/
Odpowiedz

  • +
  • -
mozor - zdjęcie mozor 04.05.2012

A jak zrobić żeby była poświata taka jaką ma Sebul na ss?
Odpowiedz

  • +
  • -
ogieR8 - zdjęcie ogieR8 04.05.2012

Nie jestem pewny, bo nawet nie wiem jak te ESP dziala, ja mam wersje z kwadratem i poświatą, ale jeśli to ta z poświaty, to w :

public FM_PreThink(id){
if(is_user_alive(id))
{
static Float:origin[3], players[32], num, num2, team
team = get_user_team(id)
arrayset(players,0,32)
if(esp[id]=true)
{
pev(id,pev_origin,origin)
get_players_distance(origin,players,num,"a")
static Float:hudpos[2]
static Float:distance
static Float:origin2[3]
num2=0
for(new i=0;i<num;i++)
{
if(players[i] && get_user_team(players[i])!=team)
{
pev(players[i],pev_origin,origin2)
if(get_hudmessage_locs(id,origin2,hudpos))
{
distance = vector_distance(origin,origin2)
num2++
set_hudmessage(255,0,0,hudpos[0],hudpos[1],0,6.0,0.2,0.1, 0.2,num2)
show_hudmessage(id, "%d",floatround(distance / 10.0))
if(num2==4) break;
}
}
}
}
else
{
esp[id]=false
}
}
}


Masz linijkę :

set_hudmessage(255,0,0,hudpos[0],hudpos[1],0,6.0,0.2,0.1, 0.2,num2)


255 - red
0 - green
0 - blue

Sprobuj 255,0,0 zmienic na 0,0,255
Użytkownik ogieR- edytował ten post 04.05.2012 19:32
Odpowiedz

  • +
  • -
mozor - zdjęcie mozor 04.05.2012

Nie działa tak...
Teraz mam tak że Ci co nie mają tego itemku to widzą to wh a raczej ten dystans -.-
Odpowiedz

  • +
  • -
MuSerr - zdjęcie MuSerr 25.02.2013

Może ktoś poda plik sma i plugin tego ? :D
Użytkownik MuSerr edytował ten post 25.02.2013 15:31
Odpowiedz