Beiträge von n0skillg3t

    Hmm..


    könntest es so machen:


    for(new i; i<MAX_PLAYERS; i++)
    {
    if(MedicBill[i] == 1)
    {
    new Float:posX, Float:posY, Float:posZ;
    GetPlayerPos(playerid,posX,posY,posZ);
    if(IsPlayerInRangeOfPoint(i,5.0,posX,posY,posZ))
    {
    TogglePlayerControllable(i,1);
    MedicBill[i] = 0;
    SendClientMessage(i,grau,"Ein Medic hat dich erfolgreich wiederbelebt");
    }
    }
    }

    Ist doch ganz easy :D


    Bei den anderen new's:

    new Float:deathX, Float:deathY, Float:deathZ;



    OnPlayerDeath(...)
    {
    GetPlayerPos(playerid,deathX,deathY,deathZ);
    SetTimerEx("TodTimer",5000,0,"d",playerid);
    }



    public TodTimer(playerid)
    {
    SendClientMessage(playerid, 0x00B9FFFF, "Der Medic war nicht schnell genug, du bist gestorben.");
    SetPlayerPos(playerid,deathX,deathY,deathZ);
    TogglePlayerControllable(playerid,0);
    }

    Also wenn ich das richtig verstehe, möchtest du, nachdem der Spieler gestorben ist, ihn
    wieder an die Position setzen, an der gespawnt ist und ihn freezen?

    ...
    Hier ein Beispiel:


    forward TodTimer(playerid);

    SetTimerEx("TodTimer",5000,0,"d",playerid);


    public TodTimer(playerid)
    {
    SendClientMessage(playerid, 0x00B9FFFF, "Der Medic war nicht schnell genug, du bist gestorben.");
    SpawnPlayer(playerid);
    }


    Bitteschön.

    So vielen Dank für deine großartige Hilfe :)


    So nun nurnoch eine letze Frage, der endgültige Code lautet also so:


    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(PlayerInfo[playerid][pContractValue] > 0)
    {
    if( killerid != INVALID_PLAYER_ID )
    {
    new string[256], hitman[MAX_PLAYER_NAME], opfer[MAX_PLAYER_NAME];
    GetPlayerName(playerid,opfer,sizeof(opfer));
    GetPlayerName(killerid,hitman,sizeof(hitman));
    format(string,sizeof(string),"Hitman %s hat den Auftrag auf %s erledigt und erhält %d€.",hitman,opfer,PlayerInfo[killerid][pHCValue]);
    SendHitmanMessage(0xFFE600FF,string);
    PlayerInfo[killerid][pContract] = 0;
    PlayerInfo[killerid][pHCValue] = 0;
    GetPlayerPos(playerid,tX,tY,tZ);
    SetPVarFloat(playerid,"lastx",tX);
    SetPVarFloat(playerid,"lasty",tY);
    SetPVarFloat(playerid,"lastz",tZ);
    SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
    SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
    SetPVarInt(playerid,"Tot",1);
    SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
    }
    }
    else if( killerid == INVALID_PLAYER_ID )
    {
    GetPlayerPos(playerid,tX,tY,tZ);
    SetPVarFloat(playerid,"lastx",tX);
    SetPVarFloat(playerid,"lasty",tY);
    SetPVarFloat(playerid,"lastz",tZ);
    SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
    SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
    SetPVarInt(playerid,"Tot",1);
    SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
    }
    return 1;
    }


    Bitte korrigieren, wenn es nicht stimmt, ich möchte nicht nochmal Fragen..


    MfG
    n0skillg3t

    Das wird geprinted:


    Code
    [15:49:34] OnPlayerDeath(0,65535,255)
    [15:49:34] killerid == INVALID_PLAYER_ID #1
    [15:49:34] killerid == INVALID_PLAYER_ID #2
    [15:49:34] killerid == INVALID_PLAYER_ID #3


    Komischer Weise geht es wenn ich keine Contract auf mich habe.
    Wenn ich nen Contract auf mich hab, wird das geprinted:


    Code
    [15:55:29] OnPlayerDeath(0,65535,255)
    [15:55:29] pContractValue > 0
    [15:55:29] killerid != INVALID_PLAYER_ID #1
    [15:55:29] killerid != INVALID_PLAYER_ID #2


    Heist dann ja, das es beim format abschmiert..


    Achso ich hab die Zeile kommentiert in der Abgefragt wird ob killerid != INVALID_PLAYER_ID ist
    damit ich mich selbst töten kann.

    Erstmal vielen Dank!


    Um genau zu sein müsste die Abfrage also so lauten, oder?


    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(PlayerInfo[playerid][pContractValue] > 0)
    {
    if( killerid != INVALID_PLAYER_ID )
    {
    new string[256], hitman[MAX_PLAYER_NAME], opfer[MAX_PLAYER_NAME];
    GetPlayerName(playerid,opfer,sizeof(opfer));
    GetPlayerName(killerid,hitman,sizeof(hitman));
    format(string,sizeof(string),"Hitman %s hat den Auftrag auf %s erledigt und erhält %d€.",hitman,opfer,PlayerInfo[killerid][pHCValue]);
    SendHitmanMessage(0xFFE600FF,string);
    PlayerInfo[killerid][pContract] = 0;
    PlayerInfo[killerid][pHCValue] = 0;
    GetPlayerPos(playerid,tX,tY,tZ);
    SetPVarFloat(playerid,"lastx",tX);
    SetPVarFloat(playerid,"lasty",tY);
    SetPVarFloat(playerid,"lastz",tZ);
    SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
    SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
    SetPVarInt(playerid,"Tot",1);
    SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
    }
    }
    else if( killerid == INVALID_PLAYER_ID )
    {
    GetPlayerPos(playerid,tX,tY,tZ);
    SetPVarFloat(playerid,"lastx",tX);
    SetPVarFloat(playerid,"lasty",tY);
    SetPVarFloat(playerid,"lastz",tZ);
    SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
    SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
    SetPVarInt(playerid,"Tot",1);
    SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
    }
    return 1;
    }

    Oder stehe ich gerade auf dem Schlauch?



    //Edit: Ich habs gerade getestet und es funktioniert immernoch nicht, wäre schön wenn mir jmd den
    Code zusammen setzen könnte.


    MfG

    Zu 1: Setz dem Spieler seine Position in die Nähe vom LSPD oder dort wo halt deine Kamera hin geht, so das die Objekte
    richtig laden können.


    Zu 2: Setz unter OnGameModeInit einen Timer der Abfragt wie viel HP er noch hat, wenn seine HP 10.0 sind, machste einfach
    die crack animation und freezt den Spieler.

    Also, ich frag ab, ob auf dem Spieler der stirbt ein Contract ist, wenn ja, dann passiert das und dass... wenn nicht dann stribt er ganz normal,
    nun, das Problem ist aber, das garnichts passiert >.>


    Er wird einfach neu gespawnt.


    Code:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(PlayerInfo[playerid][pContractValue] > 0)
    {
    new string[256], hitman[MAX_PLAYER_NAME], opfer[MAX_PLAYER_NAME];
    GetPlayerName(playerid,opfer,sizeof(opfer));
    GetPlayerName(killerid,hitman,sizeof(hitman));
    format(string,sizeof(string),"Hitman %s hat den Auftrag auf %s erledigt und erhält %d€.",hitman,opfer,PlayerInfo[killerid][pHCValue]);
    SendHitmanMessage(0xFFE600FF,string);
    PlayerInfo[killerid][pContract] = 0;
    PlayerInfo[killerid][pHCValue] = 0;
    GetPlayerPos(playerid,tX,tY,tZ);
    SetPVarFloat(playerid,"lastx",tX);
    SetPVarFloat(playerid,"lasty",tY);
    SetPVarFloat(playerid,"lastz",tZ);
    SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
    SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
    SetPVarInt(playerid,"Tot",1);
    SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
    }
    else if(PlayerInfo[playerid][pContractValue] < 1)
    {
    GetPlayerPos(playerid,tX,tY,tZ);
    SetPVarFloat(playerid,"lastx",tX);
    SetPVarFloat(playerid,"lasty",tY);
    SetPVarFloat(playerid,"lastz",tZ);
    SafetyLogoutDeath = SetTimerEx("Tot",60000,0,"d",playerid);
    SafetyLogoutDeath2 = SetTimerEx("TotSpawn",4000,0,"d",playerid);
    SetPVarInt(playerid,"Tot",1);
    SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));
    }
    return 1;
    }


    Ich wäre wirklich sehr Dankbar für eure Hilfe, den ich komm im Moment nicht weiter...


    flamer: Ich glaube es hat euch nicht zu interessieren wieso ich einen neuen Thread aufgemacht habe.


    MfG
    n0skillg3t

    Guten Tag,
    ich hänge hier fest, wahrscheinlich weil ich zu müde dafür bin ^^


    Naja es kommt immer der Error:


    Code
    error 035: argument type mismatch (argument 2)


    Hier ist mein Code:


    if(dialogid == 9870)
    {
    new input[256];
    format(input,sizeof(input),"%d",inputtext);
    anrufen(playerid,input);
    }


    stock anrufen(playerid,nummer)
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(nummer != PlayerInfo[i][pNummer])return SendClientMessage(playerid,grau,"Diese Nummer ist zurzeit nicht Verfügbar!");
    }
    return 1;
    }



    Hoffe auf Hilfe!


    MfG
    n0skillg3t