property.cfg von gff ändern?

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 mal wieder
    hallo ich hab mal ne frage wie kann ich eine virtualword setzten für häuser aus der Property in gff denn ich will über 500 häuser machen

    Einmal editiert, zuletzt von Komet ()

  • Also erstmal will ich wissen ob die häuser in einem Interior sind. Und wen dan in welchem und ob alle in dem selben sind...
    Naja du kannst es auf jedenfall endweder so machen:

    if (GetPlayerInterior(playerid) == Inzerior ID)
    {


    oder du machst es mit:


    Hier musste dan nur ein viereck ums haus machen...

    if (IsPlayerInArea(i, gößter X, kleinster X, größter Y, kleinster Y)
    {


    stock IsPlayerInArea(playerid, Float:max_x, Float:min_x, Float:max_y, Float:min_y)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) return 1;
    return 0;
    }

    Einmal editiert, zuletzt von SkaterDenis ()

  • also ich habe die standart häuser von gf aber wenn ich ja noch nen haus machen nehme ich ja ein interior doppelt deswegen will ich die virtuale world machen damit sie so gesehn in unterschiedlichen interiors sind

  • Dan kann ich dir nur die 2. Variante forschlagen...


    Hier musste dan nur ein viereck ums haus machen...

    //ganz oben
    forward HausTimer();
    new bool:SpielerHaus[MAX_PLAYERS];


    //public OnGameModeInit() {
    SetTimer("HausTimer",500,1);


    //Der Timer
    public HausTimer()
    {
    for (new i=0; i<GetMaxPlayers(); i++) if (IsPlayerConnected(i))
    {
    if (IsPlayerInArea(i, größter X, kleinster X, größter Y, kleinster Y) && SpielerHaus[i] == false)
    {
    SpielerHaus[i] = true;
    SetPlayerVirtualWorld(i, WeltID);
    SetVehicleVirtualWorld(GetPlayerVehicleID(i), WeltID);
    }
    else if (!IsPlayerInArea(i, größter X, kleinster X, größter Y, kleinster Y) && SpielerHaus[i] == true)
    {
    SpielerHaus[i] = false;
    SetPlayerVirtualWorld(i, 0);
    SetVehicleVirtualWorld(GetPlayerVehicleID(i), 0);
    }
    }
    }


    //Das kommt ganz unten hin
    stock IsPlayerInArea(playerid, Float:max_x, Float:min_x, Float:max_y, Float:min_y)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) return 1;
    return 0;
    }


    Versuch es einfach mal so...
    Naja du musst praktisch in den Timer dan jedes haus prüfen...
    if (IsPlayerInArea(i, größter X, kleinster X, größter Y, kleinster Y)...

    Einmal editiert, zuletzt von SkaterDenis ()

  • aber was bring t das den
    ich muss die virtuale welt eines hauses sezten können

  • aber es soll nur in dem inertior die virtuale welt gesetzt werden nicht an dem haus

  • Das kommt ja ganz auf die kordinaten ein die du eingiebst!


    Am besten du kombinierst einfach beide möglichkeiten! Du prüfst nach int und wen spieler in nem int ist kommt der timer der die position prüft!



    //ganz oben
    forward HausTimer();
    new bool:SpielerHaus[MAX_PLAYERS];


    //public OnGameModeInit() {
    SetTimer("HausTimer",500,1);


    //Der Timer
    public HausTimer()
    {
    for (new i=0; i<GetMaxPlayers(); i++) if (IsPlayerConnected(i))
    {
    if (IsPlayerInArea(i, größter X, kleinster X, größter Y, kleinster Y) && SpielerHaus[i] == false)
    {
    if (GetPlayerInterior(playerid) == Interior ID in dem das Haus ist) {
    SpielerHaus[i] = true;
    SetPlayerVirtualWorld(i, WeltID);
    SetVehicleVirtualWorld(GetPlayerVehicleID(i), WeltID); }
    }
    else if (!IsPlayerInArea(i, größter X, kleinster X, größter Y, kleinster Y) && SpielerHaus[i] == true)
    {
    if (GetPlayerInterior(playerid) == 0) {
    SpielerHaus[i] = false;
    SetPlayerVirtualWorld(i, 0);
    SetVehicleVirtualWorld(GetPlayerVehicleID(i), 0); }
    }
    }
    }


    //Das kommt ganz unten hin
    stock IsPlayerInArea(playerid, Float:max_x, Float:min_x, Float:max_y, Float:min_y)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) return 1;
    return 0;
    }


    Versuchs eben so

    Einmal editiert, zuletzt von SkaterDenis ()

  • kann man nicht igrendiw die property.cdg ändern das man ka irgendwo noch virual word macht????
    also so
    public LoadProperty()
    {
    new arrCoords[29][64];
    new strFromFile2[256];
    new File: file = fopen("property.cfg", io_read);
    if (file)
    {
    new idx;
    while (idx < sizeof(HouseInfo))
    {
    fread(file, strFromFile2);
    split(strFromFile2, arrCoords, ',');
    HouseInfo[idx][hEntrancex] = floatstr(arrCoords[0]);
    HouseInfo[idx][hEntrancey] = floatstr(arrCoords[1]);
    HouseInfo[idx][hEntrancez] = floatstr(arrCoords[2]);
    HouseInfo[idx][hExitx] = floatstr(arrCoords[3]);
    HouseInfo[idx][hExity] = floatstr(arrCoords[4]);
    HouseInfo[idx][hExitz] = floatstr(arrCoords[5]);
    HouseInfo[idx][hHealthx] = strval(arrCoords[6]);
    HouseInfo[idx][hHealthy] = strval(arrCoords[7]);
    HouseInfo[idx][hHealthz] = strval(arrCoords[8]);
    HouseInfo[idx][hArmourx] = strval(arrCoords[9]);
    HouseInfo[idx][hArmoury] = strval(arrCoords[10]);
    HouseInfo[idx][hArmourz] = strval(arrCoords[11]);
    //printf("HouseInfo hEntrancez %f",HouseInfo[idx][hEntrancez]);
    strmid(HouseInfo[idx][hOwner], arrCoords[12], 0, strlen(arrCoords[12]), 255);
    strmid(HouseInfo[idx][hDiscription], arrCoords[13], 0, strlen(arrCoords[13]), 255);
    HouseInfo[idx][hValue] = strval(arrCoords[14]);
    HouseInfo[idx][hHel] = strval(arrCoords[15]);
    HouseInfo[idx][hArm] = strval(arrCoords[16]);
    HouseInfo[idx][hInt] = strval(arrCoords[17]);
    HouseInfo[idx][hLock] = strval(arrCoords[18]);
    HouseInfo[idx][hOwned] = strval(arrCoords[19]);
    HouseInfo[idx][hRooms] = strval(arrCoords[20]);
    HouseInfo[idx][hRent] = strval(arrCoords[21]);
    HouseInfo[idx][hRentabil] = strval(arrCoords[22]);
    HouseInfo[idx][hTakings] = strval(arrCoords[23]);
    HouseInfo[idx][hVec] = strval(arrCoords[24]);
    if(HouseInfo[idx][hVec] == 457)
    {
    HouseInfo[idx][hVec] = 411;
    }
    HouseInfo[idx][hVcol1] = strval(arrCoords[25]);
    HouseInfo[idx][hVcol2] = strval(arrCoords[26]);
    HouseInfo[idx][hDate] = strval(arrCoords[27]);
    HouseInfo[idx][hLevel] = strval(arrCoords[28]);
    printf("HouseInfo:%d Owner:%s hTakings %d hVec %d",idx,HouseInfo[idx][hOwner],HouseInfo[idx][hTakings],HouseInfo[idx][hVec]);
    idx++;
    }
    fclose(file);
    }
    return 1;
    }das ist normal
    public LoadProperty()
    {
    new arrCoords[29][64];
    new strFromFile2[256];
    new File: file = fopen("property.cfg", io_read);
    if (file)
    {
    new idx;
    while (idx < sizeof(HouseInfo))
    {
    fread(file, strFromFile2);
    split(strFromFile2, arrCoords, ',');
    HouseInfo[idx][hEntrancex] = floatstr(arrCoords[0]);
    HouseInfo[idx][hEntrancey] = floatstr(arrCoords[1]);
    HouseInfo[idx][hEntrancez] = floatstr(arrCoords[2]);
    HouseInfo[idx][hExitx] = floatstr(arrCoords[3]);
    HouseInfo[idx][hExity] = floatstr(arrCoords[4]);
    HouseInfo[idx][hExitz] = floatstr(arrCoords[5]);
    HouseInfo[idx][hHealthx] = strval(arrCoords[6]);
    HouseInfo[idx][hHealthy] = strval(arrCoords[7]);
    HouseInfo[idx][hHealthz] = strval(arrCoords[8]);
    HouseInfo[idx][hArmourx] = strval(arrCoords[9]);
    HouseInfo[idx][hArmoury] = strval(arrCoords[10]);
    HouseInfo[idx][hArmourz] = strval(arrCoords[11]);
    //printf("HouseInfo hEntrancez %f",HouseInfo[idx][hEntrancez]);
    strmid(HouseInfo[idx][hOwner], arrCoords[12], 0, strlen(arrCoords[12]), 255);
    strmid(HouseInfo[idx][hDiscription], arrCoords[13], 0, strlen(arrCoords[13]), 255);
    HouseInfo[idx][hValue] = strval(arrCoords[14]);
    HouseInfo[idx][hHel] = strval(arrCoords[15]);
    HouseInfo[idx][hArm] = strval(arrCoords[16]);
    HouseInfo[idx][hInt] = strval(arrCoords[17]);
    HouseInfo[idx][hvirtualworld]=strval(arrCoords[18]);
    HouseInfo[idx][hLock] = strval(arrCoords[19]);
    HouseInfo[idx][hOwned] = strval(arrCoords[20]);
    HouseInfo[idx][hRooms] = strval(arrCoords[21]);
    HouseInfo[idx][hRent] = strval(arrCoords[22]);
    HouseInfo[idx][hRentabil] = strval(arrCoords[23]);
    HouseInfo[idx][hTakings] = strval(arrCoords[24]);
    HouseInfo[idx][hVec] = strval(arrCoords[25]);
    if(HouseInfo[idx][hVec] == 457)
    {
    HouseInfo[idx][hVec] = 411;
    }
    HouseInfo[idx][hVcol1] = strval(arrCoords[26]);
    HouseInfo[idx][hVcol2] = strval(arrCoords[27]);
    HouseInfo[idx][hDate] = strval(arrCoords[28]);
    HouseInfo[idx][hLevel] = strval(arrCoords[29]);
    printf("HouseInfo:%d Owner:%s hTakings %d hVec %d",idx,HouseInfo[idx][hOwner],HouseInfo[idx][hTakings],HouseInfo[idx][hVec]);
    idx++;
    }
    fclose(file);
    }
    return 1;
    }
    enum hInfo
    {
    Float:hEntrancex,
    Float:hEntrancey,
    Float:hEntrancez,
    Float:hExitx,
    Float:hExity,
    Float:hExitz,
    hHealthx,
    hHealthy,
    hHealthz,
    hArmourx,
    hArmoury,
    hArmourz,
    hOwner[MAX_PLAYER_NAME],
    hDiscription[MAX_PLAYER_NAME],
    hValue,
    hHel,
    hArm,
    hInt,
    hvirtualworld,//halt das es definiert ist
    hLock,
    hOwned,
    hRooms,
    hRent,
    hRentabil,
    hTakings,
    hVec,
    hVcol1,
    hVcol2,
    hDate,
    hLevel,
    };


    if(house !=255)
    {
    if(SpawnChange[playerid]) //If 1, then you get to your house, else spawn somewhere else
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid,HouseInfo[house][hInt]);
    SetPlayerPos(playerid, HouseInfo[house][hExitx], HouseInfo[house][hExity],HouseInfo[house][hExitz]); // Warp the player
    PlayerInfo[playerid][pLocal] = house;
    PlayerInfo[playerid][pInt] = HouseInfo[house][hInt];
    return 1;
    }
    }hier auch was ändern?
    public OnPropUpdate()
    {
    new idx;
    new File: file2;
    while (idx < sizeof(HouseInfo))
    {
    new coordsstring[256];
    format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%d,%d,%d,%d,%d,%d,%s,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
    HouseInfo[idx][hEntrancex],
    HouseInfo[idx][hEntrancey],
    HouseInfo[idx][hEntrancez],
    HouseInfo[idx][hExitx],
    HouseInfo[idx][hExity],
    HouseInfo[idx][hExitz],
    HouseInfo[idx][hHealthx],
    HouseInfo[idx][hHealthy],
    HouseInfo[idx][hHealthz],
    HouseInfo[idx][hArmourx],
    HouseInfo[idx][hArmoury],
    HouseInfo[idx][hArmourz],
    HouseInfo[idx][hOwner],
    HouseInfo[idx][hDiscription],
    HouseInfo[idx][hValue],
    HouseInfo[idx][hHel],
    HouseInfo[idx][hArm],
    HouseInfo[idx][hInt],
    HouseInfo[idx][hLock],
    HouseInfo[idx][hOwned],
    HouseInfo[idx][hRooms],
    HouseInfo[idx][hRent],
    HouseInfo[idx][hRentabil],
    HouseInfo[idx][hTakings],
    HouseInfo[idx][hVec],
    HouseInfo[idx][hVcol1],
    HouseInfo[idx][hVcol2],
    HouseInfo[idx][hDate],
    HouseInfo[idx][hLevel]);
    if(idx == 0)
    {
    file2 = fopen("property.cfg", io_write);
    }
    else
    {
    file2 = fopen("property.cfg", io_append);
    }
    fwrite(file2, coordsstring);
    idx++;
    fclose(file2);
    }und hier?


    und dann halt bei dem enter und buyhouse usw

    Einmal editiert, zuletzt von Komet ()

  • 1. Habe auch erst später gecheckt das er GFF hat...
    2. Ich dachte er wollte genau das wissen! Da brauchst du nicht gleich mit so nen Spruch ankommen! :thumbdown:
    3. Ich schätze mal dafür ist das forum doch da! Das man mal jemand fragen kann der einem vileicht helfen kann! Wen mans alleine schaffen würde würde man ja nicht Fragen!!! :pinch:

    Einmal editiert, zuletzt von SkaterDenis ()

  • ich habs probiert aber sobald ich ein neues haus mach sind alle häuser bizze weg

  • Du brauchst nichts beim enum adden,wenn der spieler ein hausbetritt setzt du die virtuellewelt auf die hausid (also einfach die variabel i in den schleifen benutzen/behandeln wie die hausid)
    Auf diese weise brauch man keine VirtuelleWelt adden da die HäuserID's eh einzigartig sind überschneiden sie sich nicht.
    Verstanden? ;)

  • :pinch: So schwer ist das doch nicht... Du benutzt die hausid auch als Virtuellewelt,so brauchst du nichts adden und kannst trotzdem so viele häuser machen wie du willst.


    OnPlayerLogin:

    Spoiler anzeigen

    if(house !=255)
    {
    if(SpawnChange[playerid]) //If 1, then you get to your house, else spawn somewhere else
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerInterior(playerid,HouseInfo[house][hInt]);
    SetPlayerVirtualWorld(playerid,house);//weil "house" hier die ID ist
    SetPlayerPos(playerid, HouseInfo[house][hExitx], HouseInfo[house][hExity],HouseInfo[house][hExitz]); // Warp the player
    PlayerInfo[playerid][pLocal] = house;
    PlayerInfo[playerid][pInt] = HouseInfo[house][hInt];
    return 1;
    }
    }


    Dann SuFu im Script (STRG+F) nach "hInt" un überall wo man in häuser teleportiert wird bzw wo sic hdas interior ändernt(wie hier z.B)

    SetPlayerInterior(playerid,HouseInfo[i][hInt]);
    //das adden:
    SetPlayerVirtualWorld(playerid,i);//weil i die Variabel der HouseID ist

    Und so weiter und so weiter...

  • C:\Dokumente und Einstellungen\Timo v.D\Desktop\Gta Server1\gamemodes\GFF (1).pwn(16516) : error 017: undefined symbol "i"
    4 stück von denen

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