Beiträge von RedDragon

    /heilen ID ... funktioniert nur wenn der Spieler "tot" ist und man in der Nähe vom jeweiligen Spieler ist. (funktioniert nur im Zusammenhang mit dem Script, welches ich davor gepostet habe)


    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {


    if (strcmp("/kill", cmdtext, true, 10) == 0) //Zum Testen
    {
    SetPlayerHealth(playerid,0);
    return 1;
    }

    new cmd[30];
    new idx;
    cmd = strtok(cmdtext, idx);


    if(strcmp(cmd, "/heilen", true) == 0)
    {
    new tmp[30];
    tmp = strtok(cmdtext, idx);
    new otherplayer = strval(tmp);
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(otherplayer,X,Y,Z);
    if(IsPlayerConnected(otherplayer) == 1 && Dead[otherplayer] == 1 && IsPlayerInRangeOfPoint(playerid, 2.0, X, Y, Z) && playerid != otherplayer)
    {
    Dead[otherplayer] = 0;
    TogglePlayerControllable(otherplayer,1);
    KillTimer(DTimer[otherplayer]);
    SetPlayerHealth(otherplayer,50);
    SetCameraBehindPlayer(otherplayer);
    ApplyAnimation(playerid,"ped","getup",2.5,0,1,1,0,1);
    new Heilername[MAX_PLAYER_NAME];
    new Opfername[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(otherplayer, Opfername, sizeof(Opfername));
    format(string, sizeof(string), "Du hast %s (ID:%d) wiederbelebt.",Opfername,otherplayer);
    SendClientMessage(playerid,0xFFFF00AA, string);
    new stringz[128];
    GetPlayerName(playerid, Heilername, sizeof(Heilername));
    format(stringz, sizeof(stringz), "Du wurdest von %s (ID:%d) wiederbelebt.",Heilername,playerid);
    SendClientMessage(otherplayer,0xFFFF00AA, stringz);
    }
    return 1;
    }
    return 0;
    }


    Eventuell noch: Wenn man tot ist, kann man nicht den Chat benutzen^^


    public OnPlayerText(playerid, text[])
    {
    if(Dead[playerid] == 1)
    {
    SendClientMessage(playerid,0xFFFF00AA,"Tote können nicht reden.");
    return 0;
    }
    return 1;
    }

    Hmmmm.. Eine Idee wäre doch:


    Man stirbt. Position wird gespeichert. Man spawnt. gespeicherte Position wird geladen, man wird gefreezt, bekommt eine Animation, dass man auf dem Boden liegt, und einen Timer, der einen in ein paar Minuten entfreezt und respawnt.


    #include <a_samp>


    #define FILTERSCRIPT


    new Dead[MAX_PLAYERS], Float:DX[MAX_PLAYERS], Float:DY[MAX_PLAYERS],Float:DZ[MAX_PLAYERS],Float:DA[MAX_PLAYERS],DTimer[MAX_PLAYERS];
    public OnPlayerConnect(playerid)
    {
    Dead[playerid] = 0;
    return 1;
    }


    public OnPlayerDeath(playerid,killerid,reason)
    {
    Dead[playerid] = 1;
    GetPlayerPos(playerid,DX[playerid],DY[playerid],DZ[playerid]);
    GetPlayerFacingAngle(playerid,DA[playerid]);
    DTimer[playerid] = SetTimerEx("DSpawn", 180*1000, 0, "i",playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid,reason)
    {
    Dead[playerid] = 0;
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    if(Dead[playerid] == 1)
    {
    SetTimerEx("DSpawned", 100, 0, "i",playerid);
    }
    return 1;
    }


    forward DSpawn(playerid);
    public DSpawn(playerid)
    {
    if(Dead[playerid] == 1)
    {
    Dead[playerid] = 0;
    TogglePlayerControllable(playerid,1);
    ClearAnimations(playerid);
    SpawnPlayer(playerid);
    SetPlayerHealth(playerid,100);
    SetCameraBehindPlayer(playerid);
    }
    }


    forward DSpawned(playerid);
    public DSpawned(playerid)
    {
    if(Dead[playerid] == 1)
    {
    SetPlayerPos(playerid,DX[playerid],DY[playerid],DZ[playerid]);
    SetPlayerHealth(playerid,1); // Soll so aussehen, als ob man 0 Leben hätte^^
    SetPlayerCameraPos(playerid,DX[playerid],DY[playerid],DZ[playerid]+3);
    ResetPlayerWeapons(playerid);
    SetPlayerCameraLookAt(playerid,DX[playerid],DY[playerid],DZ[playerid]);
    SetPlayerFacingAngle(playerid,DA[playerid]);
    TogglePlayerControllable(playerid,0);
    ApplyAnimation(playerid,"PARACHUTE","FALL_skyDive_DIE",4.1,0,1,1,1,1);
    }
    }


    Getestet! Funktioniert perfekt. ^^

    #define icon1 0
    #define icon2 1


    public OnPlayerConnect(playerid)
    {


    {
    SetPlayerMapIcon( playerid, icon1, 2204.9468, 1986.2877, 16.7380, 52, 0 );
    SetPlayerMapIcon( playerid, icon2, -2026.1111, -101.111, 35.1111, 42, 0 );
    return 1;
    }
    ...
    return 1;
    }

    Ja die Person läuft ja auch richtig nur die Animation hört nicht mehr auf... Nur halt mit der Ftaste... Doch möchte das wenn ich WALK nicht mehr drücke das es aufhört...


    Ähm nee. Wenn du UsePlayerPedAnims(); benutzt, benutzen alle Skins (Frauen, Männer, Omas und Opas, usw) die Animation, die CJ benutzt. Wenn nicht, dann benutzen alle Skins ihre eigenen Animationen.

    Jede Textdraw musst du nur einmal "createn" also erstellen. Damit die Leute es sehen können, benutze TextDrawShowForPlayer(playerid, textdrawid) oder TextDrawShowForAll(textdrawid).

    public OnPlayerCommandText(playerid,cmdtext[])
    {
    if (strcmp("/spawn", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) == 1)
    {
    SetVehicleToRespawn(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid,0x05FF00FF,"Fahrzeug respawnt!");
    return 1;
    }
    SendClientMessage(playerid,0xFF0000FF,"Du sitzt in keinem Fahrzeug!");
    return 1;
    }
    return 0;
    }


    Funktion: Respawnt das Fahrzeug, in dem man gerade drin sitzt.