virtualworld und interior speichern und wiedergeben

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
  • Guten tag


    Wenn man stirbt wird die position, das interior und die welt gespeichert. wenn er spawnt und vorher gespawnt wird, soll alles wiedergegeben werden. die position wird wiedergegeben, doch das interior und die welt bleiben gleich. hier mal ein scriptausschnitt:


    enum Sinfo
    {
    Float:posx,
    Float:posy,
    Float:posz,
    virtualw,
    interior,
    Verletzt,
    Tot
    }
    new Spieler[MAX_PLAYERS][Sinfo];


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SendClientMessage(playerid,0xFF9190FF,"Du bist schwerverletzt, rufe mit /service einen Notarzt!");
    GetPlayerPos(playerid,Spieler[playerid][posx],Spieler[playerid][posy],Spieler[playerid][posz]);
    Spieler[playerid][interior] = GetPlayerInterior(playerid);
    Spieler[playerid][virtualw] = GetPlayerVirtualWorld(playerid);
    Spieler[playerid][Verletzt] = 1;
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    if(Spieler[playerid][Verletzt] == 1)
    {
    KillTimer(todtimer1[playerid]);
    KillTimer(todtimer2[playerid]);
    SetPlayerPos(playerid,Spieler[playerid][posx],Spieler[playerid][posy],Spieler[playerid][posz]);
    SetPlayerInterior(playerid,Spieler[playerid][interior]);
    SetPlayerVirtualWorld(playerid,Spieler[playerid][virtualw]);
    TogglePlayerControllable(playerid,0);
    todtimer1[playerid] = SetTimerEx("tot1",180000,0,"i",playerid);
    Spieler[playerid][Spawn]--;
    ClearAnimations(playerid);
    ApplyAnimation(playerid,"CRACK","crckdeth2",3.0,1,1,1,1,0);
    }
    return 1;
    }

  • [quote='>>>SA!MN<<<',index.php?page=Thread&postID=426200#post426200]Guten tag


    >>>>>>doch das interior und die welt bleiben gleich. hier mal ein scriptausschnitt:<<<<<<<< // Das Hier braucht er ...

  • ja.. aber die virtuale welt und das interior werden nicht verändert. ich muss mal testen ob sie abgespeichert werden aber sicher ist das sie nicht wiedergegeben werden.
    warum sie nicht wiedergegeben weiß ich nicht. ich habe in der .ini die virtuale welt auf "2" und das interior auf 4 (ammu) und die passende position vom ammu eingetragen.


    er wurde zu der pos hingeportet, aber net ins interior 4 und auch nicht in die virtuale welt 2.

  • Sry, verlesen X(


    Kommt
    "Du bist schwerverletzt, rufe mit /service einen Notarzt!"

    Wenn du Stirbst?



    Edit: Frage ungültig, hast gerade noch vor mir gepostet.
    Ich schau eben

  • Such mal nach PLAYER_STATE_WASTED
    Gibts das in deniem Script?

  • Das Müsste aber Funktionieren, wird das Interior irgendwo anderst in deinem Script verändert?

  • interrior und world sind was anderes so weit ich weiß
    man kann jemanden in interrior 1 setzen und world 0 dann is das normal
    man kann aber auch jemanden in interror 1 setzen und in world 1 sie wären selber interrior aber könnten sich nicht sehen da sie in der anderen world sind


    interrior = ein haus z.B: SFPD oder so wenn du den interrior setzt is der da
    world = einfach eine andere world auf der selben map


    Aber das mit dem Speichern und ausgeben dürfte doch so stimmen wie ich das sehe...
    //EDIT: Lass es dir ausgeben und schau was passiert dan siehste obs saved:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    new TOTstring[64];
    SendClientMessage(playerid,0xFF9190FF,"Du bist schwerverletzt, rufe mit /service einen Notarzt!");
    GetPlayerPos(playerid,Spieler[playerid][posx],Spieler[playerid][posy],Spieler[playerid][posz]);
    Spieler[playerid][interior] = GetPlayerInterior(playerid);
    Spieler[playerid][virtualw] = GetPlayerVirtualWorld(playerid);
    Spieler[playerid][Verletzt] = 1;
    format(TOTstring,sizeof TOTstring,"Du bist im Interior: %d und in World: %d gestorben!",Spieler[playerid][interior],Spieler[playerid][virtualw]);
    SendClientMessage(playerid,0xFF9190FF,TOTstring);
    return 1;
    }

    dasn schauste obs stimmt dan weißte das es saved

    Einmal editiert, zuletzt von bad_company ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • beim sterben und beim ausloggen.


    wenn man gestorben ist spawnt man. deswegen wird beim sterben alles gespeichert und dann beim spawn wiedergegeben vorrausgesetzt man ist verletzt


    beim ausloggen wirds auch gespeichert, wenn man sich wieder einloggt und spawnt und man noch verletzt ist passiert das selbe wie oben genannt.


    ich glaube ich habe den fehler gefunden ich muss es nachprüfen