Wie kann man Einstellen, das alle Spieler die Level 1 sind nicht gekillt werden können?
Danke für eure Antworten!
Und wo sollte ich das dann im Script hinschreiben? Oben unten....?
Wie kann man Einstellen, das alle Spieler die Level 1 sind nicht gekillt werden können?
Danke für eure Antworten!
Und wo sollte ich das dann im Script hinschreiben? Oben unten....?
Mach das mit OnPlayerTakeDamage.
also z.B
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) // Parameter setzen
{
if[pInfo][level]==1
{
SetPlayerHealth(playerid, 100);
}
return 1;
}
War jetzt nix richtiges, war halt nur son "hingeklatsches Beispiel mitm Handy.
Danke für die Antwort, nur leider habe ich echt 0 Ahnung vom Scripten und könntest du mir vielleicht dann schon sowas fertiges schicken?
Ich möchte ja jetzt nicht so richtig als Scripter arbeiten, könntest du mir vielleicht das kurz fertig machen?
new Float:Leben // Das musst du oben im Script einfügen ( Variablen )
Und bei public OnPlayerUpdate(playerid) :
if(pInfo[playerid][level]==1
{
GetPlayerHealth(playerid, Leben);
if(Leben < 99.0)
{
SetPlayerHealth(playerid, 100);
}
return 1;
}
Musst es halt deinem Script anpassen , die Level Abfrage / Klammern richtig positionieren, habs vom Handy gemacht.
Falls was falsch ist , flamet mich nicht, bin kein Profi am Handy.
Alles anzeigen
Danke erstmal, bekomme aber die error Meldungen.
error 001: expected token: ";", but found "forward"
: error 028: invalid subscript (not an array or too many subscripts): "pInfo"
: error 001: expected token: ";", but found "]"
: error 010: invalid function or declaration
: error 021: symbol already defined: "M_SetPlayerHealth"
: error 010: invalid function or declaration
: warning 203: symbol is never used: "Leben"
CodeAlles anzeigennew Float:Leben // Das musst du oben im Script einfügen ( Variablen ) Und bei public OnPlayerUpdate(playerid) : if(pInfo[playerid][level]==1 { GetPlayerHealth(playerid, Leben); if(Leben < 99.0) { SetPlayerHealth(playerid, 100); } return 1; } Musst es halt deinem Script anpassen , die Level Abfrage / Klammern richtig positionieren, habs vom Handy gemacht. Falls was falsch ist , flamet mich nicht, bin kein Profi am Handy.
nutze nicht OnPlayerUpdate!
Das frisst nur ressourcen, nutze stattdessen einen Timer
Aber es gibt hier bereits nen Beitrag über OnPlayerUpdate.
JOa9 könntest du mir vielleicht das schreiben?
Und dann auch sagen was ich z.b. bei "new" eintragen muss und so?
Versuch das mal so, hab den Code von VAM etwas überarbeitet:
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
if(PlayerInfo[playerid][pLevel] == 1)
{
SetPlayerHealth(playerid, 100);
}
return 1;
}
Versuche das mal so einzusetzten.
Beachte, ich weiß nicht wie dein Spieler Enum aussieht, da müsstest du eventuell bei diesem Code halt ändern sonst sollte das so funktionieren.
Wenn nicht dann ersetzte playerid zu issureid.
Aber dieses Callback ist schon richtig.
Hier aber mal der Wiki eintrag zum nachlesen
( klicke hier )
//edit:
wegen dem Link formatiere ich es morgen wenn ich am Pc bin, sry ist mobil bisschen schwer
- Handy -
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
if(pInfo[playerid][pLevel] == 1)
{
new Float:leben;
GetPlayerHealth(playerid,leben);
SetPlayerHealth(playerid, leben);
}
return 1;
}
Eventuell +1 noch einfügen
Also
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
if(pInfo[playerid][pLevel] == 1)
{
new Float:leben;
GetPlayerHealth(playerid,leben);
SetPlayerHealth(playerid, leben+1);
}
return 1;
}
//edt
mit fällt gerade auf, dass man ja auch mit Waffen Schaden bekommen kann
Daher bringt +1 keinen Sinn
Habe das so eingetragen:
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
if(PlayerInfo[playerid][pLevel] == 1)
{
SetPlayerHealth(playerid, 100);
}
return 1;
}
Ich bekomme aber einen Error in der Zeile von Public
Error: function heading differs from prototype
Muss ich irgendwo noch was eintragen? Irgendwas bei new oder so?
Dann sag mir doch einfach einmal wie und wo ich das eintragen muss, und dann weiß ich es.
Es ist ja nicht normal das man alles weiß und dafür ist doch dieses Forum da oder nicht?
Namo,
du musst doch die Parameter richtig eintragen.
Bitte lern doch einfach mal die Grundlagen von PAWN, sonst kommst du NIE weiter.
Außerdem ist dieses Feature sowas von sinnlos.
Dann kann man ja mit Level 1 jeden Level 2er schlagen / töten, und kann nicht mal von Cops festgenommen werden / erschossen.
Doch kannst du in dem du Abfragst ob du jemanden angreifst etc. und ob der angreifer cop ist etc xD
Doch kannst du in dem du Abfragst ob du jemanden angreifst etc. und ob der angreifer cop ist etc xD
Die Funktion selber ist sinnlos. Man muss nicht unnötige Abfragen machen.
Geht nicht darum ob es nur Cop ist, es gibt auch andere Fraktionen ( Gangs etc ).
Erstens ist das schon mal das falsche public gewesen, da wenn der Spieler von einer Brücke springt würde er kein Leben verlieren.
Allerdings soll der Spieler kein Leben verlieren wenn er durch einen anderen Spieler verletzt wird, oder?
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{
if(damageid != INVALID_PLAYER_ID){
if(PlayerInfo[damagedid][pLevel] == 1 && !PlayerInfo[playerid][pCop]){ // PlayerInfo[playerid][pCop] - Variable ggf. ändern
new Float:HP; GetPlayerHealth(damagedid, HP);
SetPlayerHealth(damagedid, HP);
SendClientMessage(playerid, -1, "Du darfst keine Neulinge verletzen.");
}
}
return 1;
}
Alles anzeigen
So sollte es funktionieren, allerdings muss die eine Variable wahrscheinlich geändert werden.