3 Probleme: Haus Spawn | Haus mieter | Haus lock

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
  • Hey Leute,


    also ich habe 3 Probleme, ich benutze das Haussystem nach diesem Tutorial: simples Haussystem


    Ich habe schon einiges editiert, bekomme aber den Haus spawn und Lock befehl nicht hin, und außerdem funktioniert mein einmiete Befehl nicht :S


    1) Spawn Haus:


    Ja wie gesagt, ich möchte, dass wenn man /spawn eingibt und ein Haus besitzt im Haus spawnen soll. Das hab ich auch schon hinbekommen und es funktioniert auch, aber man kommt nach dem Spawn nicht mehr aus dem Haus raus...


    Hier mal der Befehl:


    ocmd:spawn(playerid,params[])
    {
    SetPVarInt(playerid,"Spawn",2);
    SendClientMessage(playerid,COLOR_GRÜN1,"Du spawnst ab jetzt in deinem Haus.");
    return 1;
    }


    Okay der ist nicht schwer, die Abfrage ob der Spieler Hausbesitzer ist lasse ich erstmal weg.


    Wenn er im Haus spawnen soll:


    Bei OnPlayerSpawn:


    if(GetPVarInt(playerid,"Spawn")==2)
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
    {
    new innenraum = HausInfo[haus][haus_innenraum];
    SetPlayerPos(playerid,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]);
    SetPlayerInterior(playerid,HausInnenraum[innenraum][innen_interior]);
    }
    }
    }


    Das Problem ist nicht das Spawnen, ich komme nicht wieder raus aus dem Haus.... beim /enter & /exit Befehl funktioniert es aber:
    ocmd:exit(playerid,params[])
    {
    if(inHaus[playerid] == -1)return SendClientMessage(playerid,COLOR_GRAU,"Du bist in keinem Haus!");
    if(GetPVarInt(playerid,"ImHaus")==1)
    {
    new haus = inHaus[playerid];
    new innenraum = HausInfo[haus][haus_innenraum];
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]))return SendClientMessage(playerid,0x00FF00,"Du bist nicht am Ausgang!");
    SetPlayerPos(playerid,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SendClientMessage(playerid,COLOR_WEISS,"Du hast das Haus verlassen!");
    inHaus[playerid] = -1;
    }
    return 1;
    }


    ocmd:enter(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
    if(strcmp(HausInfo[haus][haus_mieter],name,false) == 0)
    {
    new innenraum = HausInfo[haus][haus_innenraum];
    SetPlayerPos(playerid,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]); SetPlayerInterior(playerid,HausInnenraum[innenraum][innen_interior]);
    SetPlayerVirtualWorld(playerid,HausInnenraum[innenraum][innen_virtualworld]);
    inHaus[playerid] = haus;
    }
    else SendClientMessage(playerid,0x00FF00,"Du bist nicht der Besitzer! Du darfst hier nicht rein!");
    }
    }
    return 1;
    }


    Das Problem ist, wenn ich im Haus spawne und dann raus gehe, spawne ich in dem dorf hinter Dillimore, also dort, wo man spawnt wenn keine Koordinaten angegeben werden.
    Normal mit /enter und dann /exit funktioniert es aber...


    2) Lock befehl


    Okay, der Befehl funktioniert einfach gar nicht erst...


    ocmd:lock(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    new pfad[50];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 1 || strcmp(HausInfo[haus][haus_mieter],name,false) == 1) {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    if(HausInfo[haus][haus_locked], dini_Int(pfad,"locked") == 1)
    {
    GameTextForPlayer(playerid, "~g~Haus aufgeschlossen!", 3000, 6);
    dini_IntSet(pfad,"locked",0);
    return 1;
    }
    if(HausInfo[haus][haus_locked], dini_Int(pfad,"locked") == 1)
    {
    GameTextForPlayer(playerid, "~r~Haus abgeschlossen!", 3000, 6);
    dini_IntSet(pfad,"locked",1);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAU, "Du bist nicht bei deinem Haus!");
    return 1;
    }
    }
    }
    return 1;
    }



    und 3) der einmiete Befehl:


    Auch dieser Befehl funktioniert gar nicht erst, bzw er funktioniert nur wenn man auch der Besitzer des Hauses ist... abgefragt wird aber das aber nicht...


    ocmd:einmieten(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    //if(GetPVarInt(playerid, "eingemietet")== 1)return SendClientMessage(playerid,COLOR_GRAU,"Du bist bereits woanders eingemietet!");
    //{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)return SendClientMessage(playerid,COLOR_GRAU,"Dieses Haus gehört dir bereits!");
    if(strcmp(HausInfo[haus][haus_mieter],name,true))return SendClientMessage(playerid,COLOR_GRAU,"Du hast dich bereits in diesem Haus eingemietet!");
    if(strcmp(HausInfo[haus][haus_besitzer],"Niemand",false)== 0)return SendClientMessage(playerid,COLOR_GRAU,"Du kannst dich nicht in das Haus einmieten, da es keinen Eigentümer gehört!");
    //if(strcmp(HausInfo[haus][haus_mieter],"Niemand",false))
    if(GetPlayerMoney(playerid) < HausInfo[haus][haus_mieter])return SendClientMessage(playerid,COLOR_GRAU,"Du hast nicht genug Geld bei dir!");
    if(strcmp(HausInfo[haus][haus_mieter],"Niemand",true))
    {
    GivePlayerMoney(playerid,-100); // Geld abziehen


    new pfad[50];
    format(pfad,50,"/Haus/%d.txt",haus); // Pfad formatieren
    dini_Set(pfad,"mieter",name); // Besitzer überschreiben
    dini_IntSet(pfad,"mieteinnahmen",HausInfo[haus][haus_mieteinnahmen]+100);
    SetPVarInt(playerid, "eingemietet", 1);
    SendClientMessage(playerid,COLOR_GRÜN1,"Du hast dich erfolgreich in das Haus eingemietet.");
    }
    }
    }
    return 1;
    }


    Okay, ich bitte auch wirklich inständig mir zu helfen... ich verzweifle schon dadran... ihr seid meine letzte Hoffnung ;(
    Wenn ihr mehr Infos bracht sagt bescheid :)


    MFG
    Marco




    //EDIT: Rechtschreibung


    //EDIT: Enter-, Exit Befehl


    //push Kann mir wirklich niemand helfen? Konnte das Problem immer noch nicht lösen :S

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

    3 Mal editiert, zuletzt von [MM]Marco ()