[Ajuda] Detectar outras formas de dano sem ser Arma
#1

Entгo galera, to tentando me livrar dos hacks, consegui me livrar do meus infernal, aquele INVuneravel fazendo uma nova vida:
new vida[MAX_PLAYERS]...
Alйm disso com essa nova vida[playerid] e um novo onplayerdeath, me livrei de um fake kill, que poderia literalmente destruir meu servidor...

Usando onplayergivedamage consegui fazer todas as substituiзхes de dano do servidor, porйm ainda me resta mais 3 tipos de dano que estгo ridiculos no meu servidor...


detectar dano de queda
pegando fogo
dano de explosгo


Por exemplo, se um cara fica do lado de uma explosгo do carro ele nгo perde o vida[playerid], toma um tiro de RPG...
Se um cara pula de um aviгo, ele nгo morre (jб vi um servidor que vc perdia vida qnd caia dependendo da altura que vc caia, como eles fizeram isso?)
Se um cara passa num fogo ou toma uma molotov, ele fica sem perder dano enquanto pega fogo

Nгo achei nada sobre isso no fуrum...
Tentei fazer umas gambiarras, como por exemplo o dano de queda:
Код:
DanoQueda(playerid) {
	new danoqueda, dmgstring[10], anim = GetPlayerAnimationIndex(playerid);
	if(anim == 1029) { danoqueda = 10; }
	else if(anim == 1208) { danoqueda = 20; }
	else if(anim == 1129) { danoqueda = 5; }
	if(danoqueda > 0) {
		vida[playerid] -= danoqueda;
		ultimoplayerquemedeudano[playerid] = playerid;
		ultimaarmaquemedeudano[playerid] = 54;
		ApplyAnimation(playerid, "GYMNASIUM", "gym_jog_falloff", 4.1, 0, 1, 1, 0, 0);
		SetTimerEx("StopAnim", 1500, false, "i", playerid);
	}
}
Botei isso no OnPlayerUpdate, mas ficou horrivel...
Reply
#2

De uma olhada nisso:
https://sampwiki.blast.hk/wiki/OnPlayerTakeDamage
Reply
#3

Bem tem algumas includes ai no forum que te ajudam nisso.

Porem algumas delas tem alguns bugs e nem os proprios criadores delas querem fixar.

Anyway sao outras historias.

Eu tambem ando a estudar isso ai ( sim pq nao tenho mexido muito com pawn ) para o meu servidor de DM,
notei que existem alguns bugs nao fixados do proprio samp o que complica mais..

Exemplo se for passageiro de uma NGR 500 tu nao toma dano.. e como deve imaginar em sv de DM isso й uma treta.
Reply
#4

Quote:
Originally Posted by PT
Посмотреть сообщение
Exemplo se for passageiro de uma NGR 500 tu nao toma dano.. e como deve imaginar em sv de DM isso й uma treta.
No meu dei um jeito nisso bloqueando atirar de um veнculo sem motorista, ajudou muito na йpoca.
Reply
#5

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
No meu dei um jeito nisso bloqueando atirar de um veнculo sem motorista, ajudou muito na йpoca.
Sim eu ja tinha pensado nisso e talvez terei de fazer o mesmo.
Reply
#6

Quote:
Originally Posted by PT
Посмотреть сообщение
Bem tem algumas includes ai no forum que te ajudam nisso.

Porem algumas delas tem alguns bugs e nem os proprios criadores delas querem fixar.

Anyway sao outras historias.

Eu tambem ando a estudar isso ai ( sim pq nao tenho mexido muito com pawn ) para o meu servidor de DM,
notei que existem alguns bugs nao fixados do proprio samp o que complica mais..

Exemplo se for passageiro de uma NGR 500 tu nao toma dano.. e como deve imaginar em sv de DM isso й uma treta.
Ah isso й fбcil de resolver, eu resolvi assim:

Em:
OnPlayerKeyStateChange

Colocar essa parte de codigo:
Код:
if(newkeys & KEY_FIRE && IsPlayerInAnyVehicle(playerid)) {
		new vehid = GetPlayerVehicleID(playerid);
		if(GetVehicleDriver(vehid) == 65535) {
			RemovePlayerFromVehicle(playerid);
		}
	}
Eu nгo achei nenhuma include que detecta-se dano de:
- Player pegando fogo
- Player pegou numa explosгo
- Player caindo (pelo menos essa eu fiz um codigo podre, mas talvez tenha um mais bem feito como o do server de zumbi que eu joguei)

Tem como mostrar onde vocк achou essas includes?
Reply
#7

Alguйm sabe como detectar dano:
Player Pegando Fogo
Explosгo
Queda (com altura)
Reply
#8

Quote:
Originally Posted by weex
Посмотреть сообщение
Alguйm sabe como detectar dano:
Player Pegando Fogo
Explosгo
Queda (com altura)
Utilize a callback OnPlayerTakeDamage.
Reply
#9

Quote:
Originally Posted by RodrigoMSR
Посмотреть сообщение
Utilize a callback OnPlayerTakeDamage.
Nгo funciona dano de explosгo/rpg/hs-rocket, nem pegando fogo...
Reply
#10

Quote:
Originally Posted by weex
Посмотреть сообщение
Nгo funciona dano de explosгo/rpg/hs-rocket, nem pegando fogo...
Vocк tem que fazer altas gambiarras, estude o basico de programaзгo, й importante ter um conhecimento minimo de variantes, e tambйm leia na Wiki-SA:MP sobre Callbacks
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)