Pro Spieler 1haus !

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,


    Ich hab eine frage undzwar wie kann ich es machen das jeder spieler nur 1haus kaufen kann



    Was ist daran falsch



    27.03.2012=3408 Zeilen
    28.03.2012=3744

  • ocmd:hauskaufen(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)return SendClientMessage(playerid,0x00FF00,"Du hast schon ein haus!");
    }
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(GetPVarInt(playerid,"Haus",1);
    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)return SendClientMessage(playerid,0x00FF00,"Dieses Haus gehört dir bereits!");
    if(strcmp(HausInfo[haus][haus_besitzer],"Keiner",false))return SendClientMessage(playerid,0x00FF00,"Dieses Haus steht nicht zum Verkauf!");


    if(GetPlayerMoney(playerid) < HausInfo[haus][haus_preis])return SendClientMessage(playerid,0x00FF00,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid,-HausInfo[haus][haus_preis]);
    new pfad[50];
    format(pfad,50,"/haus/%d.txt",haus);
    dini_Set(pfad,"besitzer",name);
    KillHaus(haus);
    LoadHaus(haus);
    }
    else SendClientMessage(playerid,0x00FF00,"Du hast Bereits ein Haus!");
    }
    }
    return 1;
    }

  • ich würde es so probieren:
    ocmd:hausverkaufen(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
    {
    GivePlayerMoney(playerid,-floatround(HausInfo[haus][haus_preis]/2));
    SendClientMessage(playerid,0x00FF00,"Haus verkauft!");
    new pfad[50];
    format(pfad,50,"/haus/%d.txt",haus);
    dini_Set(pfad,"besitzer","Keiner");
    KillHaus(haus);
    LoadHaus(haus);
    return 1;
    }
    }
    SendClientMessage(playerid,0x00FF00,"Du besitzt kein Haus!");
    return 1;
    }


    edit: berichtigt

  • (1044) : error 017: undefined symbol "pfad"
    (1050) : warning 217: loose indentation


    1044 : dini_Set(pfad,"besitzer","Keiner");
    1050: SendClientMessage(playerid,0x00FF00,"Du besitzt kein Haus!");


    Bei "pfad" deine "SpielerDatei" oder wie es bei dir heißt eintragen. "10500 Falsch Eingedrückt" "1044" pfad wider die "SpielerDatei"Oder wie es bei dir heißt eintragen.

  • Ich habs so, aber bin gerade am testen kp obs geht..


    ocmd:sellhouse(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    new name[MAX_PLAYER_NAME];
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
    {
    new pfad[50];
    GivePlayerMoney(playerid,-floatround(HausInfo[haus][haus_preis]/2));
    SendClientMessage(playerid,0x00FF00,"Haus verkauft!");
    dini_Set(pfad,"besitzer","None");
    KillHaus(haus);
    LoadHaus(haus);
    return 1;
    }
    }
    SendClientMessage(playerid,0x00FF00,"Du besitzt kein Haus!");
    return 1;
    }


    //Edit


    falschen Code gepostet sorry ;D
    ich habs getestet, es geht, nur der Besitzer ändert sich nicht, man bekommt nur sein Geld zurück..

  • ehm



    Habs jetzt so aber wenn man /hausverkaufen macht ist das haus weg aber macht man es nochmal steht da nochmal haus verkauft und man bekommt geld ?



    27.03.2012=3408 Zeilen
    28.03.2012=3744

  • Also ich würde es über einen Dialog machen.


    /sellhouse


    Dialog
    [Haus Verkaufen [ Preis Zb 1000000 ]
    Username Auswählen
    [ Peter ]
    [ Hans ]
    So habe ich es bei meinem .
    Könnte die stelle raussuchen und auch posten :)


    Wenn dein Problem noch nicht gelöst wurde.

  • ocmd:hausverkaufen(playerid,params[])
    {
    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)
    {
    GivePlayerMoney(playerid,floatround(HausInfo[haus][haus_preis]/2));
    SendClientMessage(playerid,0x00FF00,"Haus verkauft!");
    new pfad[50];
    format(pfad,50,"/haus/%d.txt",haus);
    dini_Set(pfad,"besitzer","Keiner");
    KillHaus(haus);
    LoadHaus(haus);
    return 1;
    }
    }
    SendClientMessage(playerid,0x00FF00,"Du besitzt kein Haus!");
    return 1;
    }


    und kaufen:
    ocmd:hauskaufen(playerid,params[])
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)return SendClientMessage(playerid,0x00FF00,"Du hast schon ein haus!");
    }
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(GetPVarInt(playerid,"Haus",1);
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)return SendClientMessage(playerid,0x00FF00,"Dieses Haus gehört dir bereits!");
    if(strcmp(HausInfo[haus][haus_besitzer],"Keiner",false))return SendClientMessage(playerid,0x00FF00,"Dieses Haus steht nicht zum Verkauf!");


    if(GetPlayerMoney(playerid) < HausInfo[haus][haus_preis])return SendClientMessage(playerid,0x00FF00,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid,-HausInfo[haus][haus_preis]);
    new pfad[50];
    format(pfad,50,"/haus/%d.txt",haus);
    dini_Set(pfad,"besitzer",name);
    KillHaus(haus);
    LoadHaus(haus);
    }
    else SendClientMessage(playerid,0x00FF00,"Du hast Bereits ein Haus!");
    }
    }
    return 1;
    }


    edit: - weg.

  • GivePlayerMoney(playerid,-floatround(HausInfo[haus][haus_preis]/2));
    = Minus?


    Warum nicht
    GivePlayerMoney(playerid,floatround(HausInfo[haus][haus_preis]/2));
    Das er das Geld bekommt


    Falls falsch bitte nicht böse sein mit sowas habe ich nochnet gearbeitet :)