Guten Tag,
kann man sich irgendwie ein Callback/If Abfrage machen, ob der Player Gerade geschlagen/beschossen wird?
Wäre nett.Danke
MFG,Cedi
Guten Tag,
kann man sich irgendwie ein Callback/If Abfrage machen, ob der Player Gerade geschlagen/beschossen wird?
Wäre nett.Danke
MFG,Cedi
jedenfalls ein etwas verbuggtes.
jedenfalls ein etwas verbuggtes.
Wäre nett wenn du es mir mal geben/posten/Pmen könntest ;).
MFG,Cedi
Du kannst abfragen wie viel Health er verloren hat, geht locker durch OnPlayerUpdate aber nicht mit was er beschossen wird bzw. warum er Energie verliert
ansonsten wäre MTA wohl die bessere Wahl für dein vorhaben
naja so als anfang
OnPlayerKeyStateChange
GetPlayerWeapon
for...GetPlayerPos, IsPlayerInRangeOfPoint
Jo
Jedes mal wenn der spieler HP verliert (also auch wenn er runterfællt,geschlagen wird,beschossen wird,wenn er bei einer explosion steht und so):
new Float:lastHP[MAX_PLAYERS];
new ActivateHP[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
ActivatedHP[playerid] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
ActivatedHP[playerid] = 1;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
ActivatedHP[playerid] = 0;
return 1;
}
public OnPlayerUpdate(playerid)
{
if(ActivatedHP[playerid] == 1)
{
new Float:currentHP[MAX_PLAYERS];
GetPlayerHealth(playerid, currentHP[playerid]);
if(currentHP[playerid] < lastHP[playerid])
{
CallLocalFunction("OnPlayerLoseHealth","uff",playerid,lastHP[playerid],currentHP[playerid]);
lastHP[playerid] = currentHP[playerid];
}
}
return 1;
}
und das ist das neue callback den du ganz unten einfügst:
public OnPlayerLoseHealth(playerid, Float:oldhealth, Float:newhealth)
{
/******** BEISPIELS SCRIPT ********/
new string[64];
new Float:lost_hp = oldhealth-newhealth;
format(string,sizeof(string),"Du hast %.2f gesundheit verloren !",lost_hp);
SendClientMessage(playerid,0xAFAFAFAA,string);
/******** BEISPIELS SCRIPT ********/
return 0;
}
so könnte man auch einen Anti-Health hack machen
so würde es doch gehn, oder?
Anti Energie Hack , geht nicht das Skript könnte nichts überprüfen bzw. was möchtest du dort überprüfen
ah ja und wie kleinerOpa es gesagt hat, können wir auch abfragen ob der spieler nahe einem spieler ist und die feuertaste drückt
Aber so würden es auch klitzekleine bugs geben
und das gibts hier:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_FIRE)
{
if(GetPlayerWeapon(playerid) == 0) //so wird diese funktion nur aufgerufen, wenn der spieler keine waffen hat
{
new Float:iX,Float:iY,Float:iZ;
for(new i = 0; i<MAX_PLAYERS; i++)
{
GetPlayerPos(i,iX,iY,iZ);
if(IsPlayerInRangeOfPoint(playerid, 2.0, iX, iY, iZ)
{
CallLocalFunction("OnPlayerPunchPlayer","uu",playerid,i);
}
}
}
}
}
und das hier das callback, ganz unten ins script:
public OnPlayerPunchPlayer(playerid, punchedplayerid)
{
new string[64],playername[MAX_PLAYER_NAME],punchedplayername[MAX_PLAYER_NAME];
/******************************************** BEISPIELS SCRIPT ********************************************/
GetPlayerName(playerid,playername,sizeof(playername));
GetPlayerName(punchedplayerid,punchedplayername,sizeof(punchedplayername));
format(string,sizeof(string),"Du hast %s geschlagen !",punchedplayername);
SendClientMessage(playerid,0xFFFFFFAA,string);
format(string,sizeof(string),"Du wurdest von %s geschlagen !",playername);
SendClientMessage(punchedplayerid,0xFFFFFFAA,string);
/******************************************* BEISPIELS SCRIPT *******************************************/
return 1;
}
auch kP ob das so funzt xD
Das würde nichts nützen stell dir vor jemand nimmt ein Scharfschützen Gewehr außerdem müsste er die Richtige Ausrichtung haben so das er wirklich den Spieler abschießt
wie gesagt in Sa-mp sind einfach nicht die nötigen Funktionen das um sowas eig. kleines hinzukriegen da wärst du bei MTA besser dran
versuchen wir dann mal Anti-HP-Hack
new Float:lastHP[MAX_PLAYERS];
new ActivateHP[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
ActivatedHP[playerid] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
ActivatedHP[playerid] = 1;
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
ActivatedHP[playerid] = 0;
return 1;
}
public OnPlayerUpdate(playerid)
{
if(ActivatedHP[playerid] == 1)
{
new Float:currentHP[MAX_PLAYERS];
GetPlayerHealth(playerid, currentHP[playerid]);
if(currentHP[playerid] > lastHP[playerid])
{
CallLocalFunction("OnPlayerRestoreHealth","uff",playerid,lastHP[playerid],currentHP[playerid]);
lastHP[playerid] = currentHP[playerid];
}
}
return 1;
}
public OnPlayerRestoreHealth(playerid, Float:oldhealth, Float:newhealth)
{
/****************************** BEISPIEL ******************************/
SetPlayerHealth(playerid,oldhealth); //macht seine energie wieder auf den alten stand
/****************************** BEISPIEL ******************************/
return 1;
}
aber man müsste die SetPlayerHealth und so funktionen ein bisschen ændern und auch wenn man das macht, wenn man die originalen NPC's im BSN zum essen benutzt, könnte das das essen verhindern
Anti Health Hack :
forward CheckFuckinHealth();
public CheckFuckinHealth();
{
for(new i = 0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i))continue;
new Floath:health;
GetPlayerHealth(i,health);
SetPlayerHealth(i,health+1);
if(health!=health+1)Kick(i); // Hack
SetPlayerHealth(i,health-1);
}
return 1;
}
Unter OnGameModeInit
SetTimer("CheckFuckinHealth",1000,1);
Spieler kriegt einmal mehr Health , kann der nicht gesetzt werden wird es als Hack erkannt
Ne soviel ich weiß gibt es doch in s***it ein hack womit man seine energie auffüllen kann, der sich "Restore Health" nennt.
mein Anti-HP-Hack war für den Restore Health.
Deins ist fürs godmode, aber sehr sehr sehr nützlich du profi
Oder was ganz kluges von mir :>
public FillHP(playerid)
{
SetPlayerHealth(playerid,99);
return 1;
}
und
public CheckHP(playerid)
{
new Floath:health;
GetPlayerHealth(playerid,health);
if(health > 99) return Kick(playerid); //hack XD
SetPlayerHealth(playerid,health+1);
if(health!=health+1) return Kick(playerid); // Hack
else return SetPlayerHealth(playerid,health-1);
return 1;
}
So Simple wie auch Genial :> xD
€dit :
Noch etwas hinzugefügt thx 2 BFX
Bringt aber so nichts, der Sinn in der Sache bei mir war das geschaut wurde ob man drauf setzen kann sprich die neuen Health Hacks frieren den Speicher ein so wird derjenige schnell erwischt