Problem mit Haus-System

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
  • Hallo leute,
    Ich bin gerade dabei mein Haus-System mit Virtuellen Welten zu erweitern.
    Klappt eigentlich auch alles wunderbar, ausser das:


    Der Spieler kommt beim rausgehen IMMER an die Falsche Position.
    Ich habe es berreits mit ner VirtualWorld Abfrage versucht, bringt aber nichts.



    Vielleicht kann mir jemand von euch helfen:
    Code:


    for(new i = 0;i<sizeof(haussys);i++)
    {
    if(PlayerToPoint(2.0,playerid,haussys[i][a_x],haussys[i][a_y],haussys[i][a_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(strcmp(haussys[i][owner],name,false) == 0)
    {
    SetPlayerPos(playerid,haussys[i][i_x],haussys[i][i_y],haussys[i][i_z]);
    SetPlayerInterior(playerid,haussys[i][interi]);
    SetPlayerVirtualWorld(playerid,haussys[i][virtualw]);
    }
    else if(SpielerInfo[playerid][team]==1||SpielerInfo[playerid][hitman]==1)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast die Tür eingetreten!");
    SetPlayerPos(playerid,haussys[i][a_x],haussys[i][a_y],haussys[i][a_z]);
    SetPlayerInterior(playerid,haussys[i][interi]);
    SetPlayerVirtualWorld(playerid,haussys[i][virtualw]);
    }
    }
    if(PlayerToPoint(2.0,playerid,haussys[i][i_x],haussys[i][i_y],haussys[i][i_z]) && GetPlayerVirtualWorld(playerid) == haussys[i][virtualw])
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(strcmp(haussys[i][owner],name,false) == 0)
    {
    SetPlayerPos(playerid,haussys[i][a_x],haussys[i][a_y],haussys[i][a_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    else if(SpielerInfo[playerid][team]==1||SpielerInfo[playerid][hitman]==1)
    {
    SetPlayerPos(playerid,haussys[i][a_x],haussys[i][a_y],haussys[i][a_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    }
    }


    Die Cords die mit "a_" anfangen stehen für aussen. Die mit "i_" für innen.





    MfG Firer

  • for(new i = 0;i<sizeof(haussys);i++)
    {
    if(PlayerToPoint(2.0,playerid,haussys[i][a_x],haussys[i][a_y],haussys[i][a_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(strcmp(haussys[i][owner],name,false) == 0)
    {
    SetPlayerPos(playerid,haussys[i][i_x],haussys[i][i_y],haussys[i][i_z]);
    SetPlayerInterior(playerid,haussys[i][interi]);
    SetPlayerVirtualWorld(playerid,haussys[i][virtualw]);
    }
    else if(SpielerInfo[playerid][team]==1||SpielerInfo[playerid][hitman]==1)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast die Tür eingetreten!");
    SetPlayerPos(playerid,haussys[i][a_x],haussys[i][a_y],haussys[i][a_z]);
    SetPlayerInterior(playerid,haussys[i][interi]);
    SetPlayerVirtualWorld(playerid,haussys[i][virtualw]);
    }
    }
    else if(PlayerToPoint(2.0,playerid,haussys[i][i_x],haussys[i][i_y],haussys[i][i_z]) && GetPlayerVirtualWorld(playerid) ==
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(strcmp(haussys[i][owner],name,false) == 0)
    {
    SetPlayerPos(playerid,haussys[i][a_x],haussys[i][a_y],haussys[i][a_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    else if(SpielerInfo[playerid][team]==1||SpielerInfo[playerid][hitman]==1)
    {
    SetPlayerPos(playerid,haussys[i][a_x],haussys[i][a_y],haussys[i][a_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    }
    }


    Probier mal aus, ich weiß nicht obs geht nur else hinzugefügt wer weiß..


    Mfg Andy
    haussys[i][virtualw])

    Du suchst ein Scripter der für "maximal" 5€ für dich Scriptet?


    Dann bist du bei mir genau richtig.

  • Mach bei Enter
    SetPlayerVirtualWorld(playerid,hausid);
    Und bei Exit bei der if-Abfrage mit den HausExitKoords
    && GetPlayerVirtualWorld(playerid) == i

    Ist, habe das Problem erkannt.
    Liegt an der Speicherung.


    Das ganze wird in .txt dateien gespeichert.
    Pro Haus eine .txt


    Allerdings wird die VirtualWorld nicht richtig gespeichert.
    Und das kann nur an dieser Funktion liegen:


    stock savehouse(hid)
    {
    new str[128];
    format(str,sizeof str,"houses/haus_%d.txt",hid);
    dini_Set(str,"owner",haussys[hid][owner]);
    dini_IntSet(str,"preis",haussys[hid][hpreis]);
    dini_IntSet(str,"interior",haussys[hid][interi]);
    dini_IntSet(str,"virtualworld",haussys[hid][virtualw]);
    }


    "hid" ist die ID des hauses.
    Falls ihr nen Fehler findet oder mehr benötigt plz sagen^^





    MfG Firer