Beiträge von PrinceOfBelvedair

    Hallo, ich hätte gerne zu diesem Haussystem:


    [ SCRIPTING ] Simples Haussystem


    einen funktionsfähigen /Sellhaus (also Haus verkaufen) Befehl und den /Buyhouse Befehl (Haus kaufen) so das man sich nur ein Haus kaufen kann, ich denke das ist nichts großes aber ich komm damit nicht ganz klar :D


    deshalb biete ich 2,79€ (Mein letzes Paypal Guthaben :D) für den der den Befehl macht..


    Mfg: Atze_CJ


    //Edit


    Nur Paypal Bezahlung!. :pinch:

    Dann kommt das..


    C:\Users\Beny\Desktop\FUN.pwn(1484) : warning 202: number of arguments does not match definition
    C:\Users\Beny\Desktop\FUN.pwn(1499) : warning 209: function "ocmd_hauskaufen" should return a value
    C:\Users\Beny\Desktop\FUN.pwn(1500) : error 010: invalid function or declaration


    kann den Code mal jemand übergehen und schreiben wie es von Anfang bis Ende richtig sein muss ? :(

    Also bei mir haut das alles nicht hin, ich bekomm die Errors..


    C:\Users\Beny\Desktop\FUN.pwn(1484) : warning 202: number of arguments does not match definition
    C:\Users\Beny\Desktop\FUN.pwn(1484) : error 001: expected token: ")", but found ";"
    C:\Users\Beny\Desktop\FUN.pwn(1484) : error 036: empty statement
    C:\Users\Beny\Desktop\FUN.pwn(1499) : warning 209: function "ocmd_hauskaufen" should return a value
    C:\Users\Beny\Desktop\FUN.pwn(1500) : error 010: invalid function or declaration


    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.


    Die liegen in der Zeile:


    Zeile 1484 if(GetPVarInt(playerid,"Haus",1);


    Zeile 1499 } // Ist die letze Klammer vor dem return ganz unten..


    Und der Letze Error liegt bei dem return..


    Bitte kann mir jemand helfen ? es ist wirklich sehr wichtig..

    Hallo,


    Ich wollte machen das ich das Haus was mir gehört auch verkaufen kann, und da man sich nur ein Haus kaufen darf.. allerdings geht das alles nicht :(


    ocmd:sellhouse(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    EinHaus[playerid] = 0;
    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","None");
    KillHaus(haus);
    LoadHaus(haus);
    return 1;
    }
    }
    SendClientMessage(playerid,0x00FF00,"Du besitzt kein Haus!");
    return 1;
    }
    ocmd:buyhouse(playerid,params[])
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(EinHaus[playerid] == 0)
    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(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],"None",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;
    }


    Keine Errors, aber wenn ich ingame /Sellhouse eingebe kann ich das immer machen, also auch wenn ich kein Haus habe.. und wenn ich ein Haus kaufen will und keins habe steht da "Du hast bereits ein Haus" wo ist der Fail ?


    Mfg_ ATze

    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..

    Ok, ich habs jetzt so, aber dann passiert ingame ganix..



    ocmd:kaufen(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(NurEinHaus[playerid] != 0)
    {
    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],"None",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]); // Geld abziehen
    NurEinHaus[playerid] = 1;
    new pfad[50];
    format(pfad,50,"/haus/%d.txt",haus); // Pfad formatieren
    dini_Set(pfad,"besitzer",name); // Besitzer überschreiben
    KillHaus(haus); // Hauspickup löschen
    LoadHaus(haus); // Haus laden
    }
    else SendClientMessage(playerid,0x00FF00,"You have already a house!"); // wenn der Spieler nicht der Besitzer ist
    }
    }
    return 1;
    }

    Hallo,


    Ich weiß nicht ob das so auf dauer funktioniert, aber ich habe es so gemacht das man sich nur ein Haus kaufen kann, dies geht auch soweit, aber wenn man sich sein erstes Haus kauft steht da "You have already a House" man bekommt das Haus dann zwar trotztem aber wie mach ich es das das dann nicht mehr da steht wenn man sein erstes kauft?
    bei der Gelegenheit könnt ihr mir auch gleich sagen ob das so auf dauer abgespeichert wird das man schon ein Haus hat..


    Mfg: Atze_CJ


    ocmd:kaufen(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(NurEinHaus[playerid] == 1) return SendClientMessage(playerid,ROT,"You have already a house!"); // HIer ist die Zeile
    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],"None",false))return SendClientMessage(playerid,0x00FF00,"Dieses Haus steht nicht zum Verkauf!");
    // wenn das Haus frei ist dann kaufen:
    if(GetPlayerMoney(playerid) < HausInfo[haus][haus_preis])return SendClientMessage(playerid,0x00FF00,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid,-HausInfo[haus][haus_preis]); // Geld abziehen
    NurEinHaus[playerid] = 1;
    new pfad[50];
    format(pfad,50,"/haus/%d.txt",haus); // Pfad formatieren
    dini_Set(pfad,"besitzer",name); // Besitzer überschreiben
    KillHaus(haus); // Hauspickup löschen
    LoadHaus(haus); // Haus laden
    }
    }
    return 1;
    }

    if(strcmp(cmdtext,"/dienst",true)==0)
    {
    SetPlayerHealth(playerid,100);
    //Dein restliches Zeug
    new s[128];
    format(s,sizeof(s),"*** %s {F50A0A}Geht jetzt als Cop in dem Dienst!***", SpielerName(playerid));
    SendClientMessageToAll(COLOR_YELLOW,s);
    return 1;
    }