Beiträge von InternetInk aka Benjamin

    @ AlexandA Joa hatte keine Lust alles zu erklären :P Aber hat recht gehört mehr in Showroom ;)


    Zum Speichern,kann man eigentlich auch selbst drauf kommen...
    OnPlayerRegister:
    format(var, 64, "IstTot=%d\n",PlayerInfo[playerid][pTot]);fwrite(hFile, var);
    OnPlayerLogin:
    if( strcmp( key , "Ist Tot" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTot] = strval( val ); }
    OnPlayerUpdate:
    format(var, 32, "Ist Tot=%d\n",PlayerInfo[playerid][pTot]);fwrite(hFile, var);


    So und das man direkt am Anfang Stirbt:
    Ganz Oben ins Script
    new FirstSpawn[MAX_PLAYERS];
    Und Bei OnPlayerConnect
    FirstSpawn[playerid] = 1;
    Bei OnPlayerdeath das alte mit dem ersetzen:
    if(PlayerInfo[playerid][pTut] == 1 && FirstSpawn[playerid] == 0)
    {
    PlayerInfo[playerid][pTot] = 1;
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid, pX, pY, pZ);
    TotenKopf[playerid][0] = CreatePickup(1254,1, pX, pY, pZ);
    PlayerInfo[playerid][pTx] = pX;
    PlayerInfo[playerid][pTy] = pY;
    PlayerInfo[playerid][pTz] = pZ;
    }
    if(FirstSpawn[playerid] == 1)
    {
    FirstSpawn[playerid] = 0;
    }

    hm normalerweise müste das gehn guck ma obs so geht...
    if(PlayerInfo[playerid][pTot] == 1)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_YELLOW, "|________ Am Krankenhaus ________|");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Durch deine schweren Verletzungnen liegst du im Koma!");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Sie sind fü 2-3 Minuten im Krankenhaus! In 2-3 Minuten kommen Sie wieder raus, da Sie gearde behandelt werden!");
    ResetPlayerWeapons(playerid);
    return 1;
    }
    else if(PlayerInfo[playerid][pTot] == 0)
    {
    DestroyPickup(TotenKopf[playerid][0]);
    }
    return 1;//schon vorhanden NICHT doppelt reinmachen!
    }//schon vorhanden NICHT doppelt reinmachen!

    Geht alles Perfekt habe keine errors aber habe noch ne Frage.
    Der Spawnt während dem Tod bei mir im Himmel aber wie mache ich das wenn er versucht abzuhauen und zuweit weggeht das er mit diesem "World Bounse" oder wie das heißt zurück geschleudert wird wie so ne Gummi mauer ^^ Oder das er zurück geportet wird nach nehm bestimmten Radius.


    MFG Alex

    SetPlayerWorldBounds(playerid,max x,min x,max y,min y); 
    Musste mit/save und den X und Y werten ein viereck bzw rechteck bilden ;)
    um wieder zu reseten
    SetPlayerWorldBounds(playerid,20000.0000,-20000.0000,20000.0000,-20000.0000); //Reset world to player

    WARNUNG
    Dieses Tutorial ist Outdated!
    Funktionstüchtigkeit nicht garantiert!
    Benutzung nicht empfohlen.


    Aloha,
    Heute zeig ich euch das NachTot > Krankenhaus System das ich mal gemacht hab.
    Ich würde mich freuen wenn ihr mich im /credits cmd vermerken würdet,muss aber nicht ;)


    [>] Nach Tot Ins Krankenhaus
    Hinweis: "SuFu" im Script mit STRG+F


    SuFu nach enum pInfo und setzt folgende Variabeln ein:
    Hinweis: Fügt sie als letzte ein!
    p???, //Das komma bei der zuvor letzten Variable nicht vergessen!
    pTot,
    Float:pTx,
    Float:pTy,
    Float:pTz
    };//Klammer nicht doppelt einfügen ;)  
    Wo wir schonmal oben im Script sind added unter den ganzen anderen new's das:

    new TotenKopf[MAX_PLAYERS];
    new pIstTot[MAX_PLAYERS];
    forward TOTTimer();


    SuFu nach OnPlayerConnect und diesen Code einfügen
    Hinweis: einfach hinter die ganzen anderen

    PlayerInfo[playerid][pTot] = 0;
    PlayerInfo[playerid][pTx] = 0;
    PlayerInfo[playerid][pTy] = 0;
    PlayerInfo[playerid][pTz] = 0;
    pIstTot[playerid] = 0;


    Als nächstes SuFu nach onplayerdisconnect und das einfügen:

    public OnPlayerDisconnect(playerid)
    {
    DestroyPickup(TotenKopf[playerid]);

    Nun SuFu nach public SetPlayerSpawn und es so einfügen
    Hinweis: muss direkt ganz oben sein...

    public SetPlayerSpawn(playerid)
    {
    if(IsPlayerConnected(playerid))
    {//Sollte schon da stehen fügt den code einfach danach ein
    if(PlayerInfo[playerid][pTot] == 1)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "Durch deine schweren Verletzungen liegst du im Koma");
    TogglePlayerControllable(playerid, 0);
    ResetPlayerWeapons(playerid);
    SetPlayerPos(playerid,1162.871704, -1339.109619, 14.297291);
    SetPlayerCameraPos(playerid, 1223.379028, -1333.354126, 33.809105);
    SetPlayerCameraLookAt(playerid, 1178.824829, -1325.804077, 13.284119);
    SetPlayerInterior(playerid, 0);
    return 1;
    }
    // Rest Code 
    Weiter gehts,SuFu nach public OnPlayerDeath und diesen Code einfügen,wo ist egal aber am besten ebenfalls am Anfang
    PlayerInfo[playerid][pTot] = 1;
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid, pX, pY, pZ);
    TotenKopf[playerid] = CreatePickup(1254,1, pX, pY, pZ);
    PlayerInfo[playerid][pTx] = pX;
    PlayerInfo[playerid][pTy] = pY;
    PlayerInfo[playerid][pTz] = pZ; 
    SuFu nach public OnPlayerSpawn und diese Code am besten zuletzt einfügen!
    if(PlayerInfo[playerid][pTot] == 1)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_YELLOW, "|________ Am Krankenhaus ________|");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Durch deine schweren Verletzungen liegst du im Koma!");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Sie sind fü 2-3 Minuten im Krankenhaus! In 2-3 Minuten kommen Sie wieder raus, da Sie gearde behandelt werden!");
    ResetPlayerWeapons(playerid);
    return 1;
    }
    return 1;//schon vorhanden NICHT doppelt reinmachen!
    }//schon vorhanden NICHT doppelt reinmachen! 
    Nun Machen wir den Timer,
    Bein OngamemodeInit:
    SetTimer("TOTTimer",60000,1); 
    Unten Ins Script
    public TOTTimer()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pTot] == 1)
    {
    pIstTot[i] += 1;
    }
    if(PlayerInfo[i][pTot] == 1 && pIstTot[i] == 8)//die 8 ändern in die anzahl der minuten die ihr im KH sein wollt
    {
    PlayerInfo[i][pTot] = 0;
    pIstTot[i] = 0;
    SetPlayerVirtualWorld(i,0);
    SetPlayerSpawn(i);
    SpawnPlayer(i);
    SendClientMessage(i, COLOR_LIGHTGREEN, "Du bist aus dem Krankenhaus entlassen!");
    DestroyPickup(TotenKopf[i]);
    }
    }
    }

    So das wars,ich hoffe ich hab da nichts vergessen :D Nun zum /Wiederbeleben cmd:

    if (strcmp(cmd, "/wiederbeleben", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && PlayerInfo[i][pTot] == 1 && PlayerToPoint(5.0,playerid,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]))
    {
    new pname[256];
    GetPlayerName(i, pname, 256);
    format(string, 256, "Du hast %s, wiederbelebt!",pname);
    SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
    GetPlayerName(playerid, pname, 256);
    format(string, 256, "Arzt %s hat dich wiederbelebt!",pname);
    SendClientMessage(i, COLOR_LIGHTGREEN, string);
    PlayerInfo[i][pTot] = 0;
    pIstTot[i] = 0;
    SetPlayerPos(i,PlayerInfo[i][pTx],PlayerInfo[i][pTy],PlayerInfo[i][pTz]);
    SetCameraBehindPlayer(i);
    DestroyPickup(TotenKopf[i]);
    TogglePlayerControllable(i,1);
    PlayerInfo[i][pTx] = 0.0;
    PlayerInfo[i][pTy] = 0.0;
    PlayerInfo[i][pTz] = 0.0;
    new Float:tempheal;
    GetPlayerHealth(i,tempheal);
    SetPlayerHealth(i,15.0);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du bist kein Arzt!");
    }
    }
    return 1;
    }


    So das wars,ich hoffe ich hab nix vergessen,wenn Errors kommen postet sie einfach allerdings sollte es funzen,der Wiederbelben cmd ist ohne ID sofern der Arzt 5m bei nem totenkopf Symbol ist wieder der Spieler dorthin gehohlt.
    Lob und Kritik dürfen gerne sein drum Postets in dieses Tehma rein :D
    mfg Benjamin
    © 2009-2010 by Benjamin aka InternetInk