wiederbeleben

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Wieso funktioniert hier nix ?


    Spoiler anzeigen
    ocmd:wiederbeleben(playerid,params[])
    {
    if(isPlayerInFrakt(playerid,3))
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {

    Spoiler anzeigen
    if(GetPVarInt(i,"Friedhof")==1 &&
    IsPlayerInRangeOfPoint(i,3.0,GetPVarInt(i,"tx"),GetPVarInt(i,"ty"),GetPVarInt(i,"tz")))
    {
    new string[128];
    new pname[256];
    GetPlayerName(i, pname, 256);
    format(string, 256, "Du hast %s, wiederbelebt!",pname);
    SendClientMessage(playerid, BLAU, string);
    GetPlayerName(playerid, pname, 256);
    format(string, 256, "Arzt %s hat dich wiederbelebt!",pname);
    SendClientMessage(i, BLAU, string);
    DestroyPickup(TotenKopf[i]);
    SetPVarInt(i,"Friedhof",0);
    SetPlayerPos(i,GetPVarInt(i,"tx"),GetPVarInt(i,"ty"),GetPVarInt(i,"tz"));
    SetCameraBehindPlayer(i);
    SetPVarInt(i,"tx",0.0);
    SetPVarInt(i,"ty",0.0);
    SetPVarInt(i,"tz",0.0);
    new Float:tempheal;
    GetPlayerHealth(i,tempheal);
    SetPlayerHealth(i,15.0);
    return 1;
    }
    }
    }
    return 1;
    }


    //edit brauche immer noch hilfe :$

  • ocmd:wiederbeleben(playerid,params[])
    {
    if(isPlayerInFrakt(playerid,3))
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {


    if(GetPVarInt(i,"Friedhof")==1 &&
    IsPlayerInRangeOfPoint(playerid,3.0,GetPVarInt(i,"tx"),GetPVarInt(i,"ty"),GetPVarInt(i,"tz")))// Hier war dein Fehler da stand i und nicht Playerid
    {
    new string[128];
    new pname[256];
    GetPlayerName(i, pname, 256);
    format(string, 256, "Du hast %s, wiederbelebt!",pname);
    SendClientMessage(playerid, BLAU, string);
    GetPlayerName(playerid, pname, 256);
    format(string, 256, "Arzt %s hat dich wiederbelebt!",pname);
    SendClientMessage(i, BLAU, string);
    DestroyPickup(TotenKopf[i]);
    SetPVarInt(i,"Friedhof",0);
    SetPlayerPos(i,GetPVarInt(i,"tx"),GetPVarInt(i,"ty"),GetPVarInt(i,"tz"));
    SetCameraBehindPlayer(i);
    SetPVarInt(i,"tx",0.0);
    SetPVarInt(i,"ty",0.0);
    SetPVarInt(i,"tz",0.0);
    new Float:tempheal;
    GetPlayerHealth(i,tempheal);
    SetPlayerHealth(i,15.0);
    return 1;
    }
    }
    }
    return 1;
    }

  • funktioniert immer noch nicht


    onplayerdeath


    Spoiler anzeigen
    SetPVarInt(playerid,"Friedhof",1);
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid, pX, pY, pZ);
    TotenKopf[playerid] = CreatePickup(1254,1, pX, pY, pZ);
    SetPVarInt(playerid,"tx",pX);
    SetPVarInt(playerid,"ty",pY);
    SetPVarInt(playerid,"tz",pZ);


  • ocmd:wiederbeleben(playerid,params[])
    {
    #pragma unused params
    if(isPlayerInFrakt(playerid,3))
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(GetPVarInt(i,"Friedhof") == 1 && IsPlayerInRangeOfPoint(playerid,3.0,GetPVarFloat(i,"tx"),GetPVarFloat(i,"ty"),GetPVarFloat(i,"tz")))// Hier war dein Fehler da stand i und nicht Playerid
    {
    new string[128];
    new pname[24];
    GetPlayerName(i, pname, 24);
    format(string, sizeof(string), "Du hast %s, wiederbelebt!",pname);
    SendClientMessage(playerid, BLAU, string);
    GetPlayerName(playerid, pname, 24);
    format(string, sizeof(string), "Arzt %s hat dich wiederbelebt!",pname);
    SendClientMessage(i, BLAU, string);
    DestroyPickup(TotenKopf[i]);
    SetPVarInt(i,"Friedhof",0);
    SetPlayerPos(i,GetPVarFloat(i,"tx"),GetPVarFloat(i,"ty"),GetPVarFloat(i,"tz"));
    SetCameraBehindPlayer(i);
    SetPVarFloat(i,"tx",0.0);
    SetPVarFloat(i,"ty",0.0);
    SetPVarFloat(i,"tz",0.0);
    new Float:tempheal; // Wozu?
    GetPlayerHealth(i,tempheal); // Ok?
    SetPlayerHealth(i,15.0); // Und wozu jetzt tempheal?
    return 1;
    }
    }
    return SendClientMessage(playerid,ROT,"Du bist nicht in der Nähe eines Spielers!");
    }
    else return SendClientMessage(playerid,ROT,"Du bist kein Medic");
    }
    //OnPlayerDeath
    SetPVarInt(playerid,"Friedhof",1);
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid, pX, pY, pZ);
    TotenKopf[playerid] = CreatePickup(1254,1, pX, pY, pZ);
    SetPVarFloat(playerid,"tx",pX);
    SetPVarFloat(playerid,"ty",pY);
    SetPVarFloat(playerid,"tz",pZ);


    So Um jetzt noch zu erklären:


    Du hast für die Positionen Integers benutzt, also Ganzzahlen.
    Positionen haben aber Dezimalzahlen, daher musst du Float benutzen!
    Desweiteren hast du für namen einen 128-Size-Array benutzt. Der Name hat aber nur 24 verfügbare Zeichen.
    Daher reichen für pName 24.
    string hat 128 zeichen definiert bekommen, aber in format 256.
    Der Chat fasst nur 128 Zeichen, daher reichen 128!


    Und wozu tempheal?