Beiträge von firestormZ

    du musst jedem Dialog auch ne Zahl zu weisen, sprich
    #define DIALOG_RADIO 23
    !WICHTIG!: Die Zahlen dürfen sich nicht überschneiden also nicht jetzt 10 Dailoge mit der ID 23 definieren, muss immer ne andere sein :)

    stürzt wieder ab :D also müsste ich den langen weg nehmen mit

    if(strlen(HausDaten[i][Mieter]) >0)
    {
    printf("Haus %d geladen & erstellt! [BESITZER: %s] [Mieter: %s]", i, HausDaten[i][Besitzer], HausDaten[i][Mieter]);
    }
    else...
    ? :(

    Tag Com,
    kurze Frage, warum stürzt der PawnCompiler ab?

    printf("Haus %d geladen & erstellt! [BESITZER: %s] [Mieter: %s]", i, HausDaten[i][Besitzer], HausDaten[i][Mieter][0] ? HausDaten[i][Mieter] : "/");

    Wenn ich das HausDaten[i][Mieter][0] zu HausDaten[i][Mieter[0]] mach bekomm ich die errors:


    (6324) : error 028: invalid subscript (not an array or too many subscripts): "Mieter"
    (6324) : warning 215: expression has no effect
    (6324) : error 001: expected token: ";", but found "]"
    (6324) : error 029: invalid expression, assumed zero
    (6324) : fatal error 107: too many error messages on one line

    so wie cihs jetzt gemacht hat, funktioniert es nicht, ich glaube hab mich falsch ausgedrückt :D
    bei onplayerspawn hab ich ja ne schleife, wenn ich dann zb 2 Häuser besitze mit der ID 120 und 129,
    dann möchte ich auch wenn ich auf die ID 129 klicke, dort drin spawnen(spawne aber in ID 120, da sie ja als erstes in den scriptfiles vorkommt)

    Abend,


    habn Problem,
    Es werden mir jetzt alle Häuser die man besitzt angezeigt, aber wie kann ich den jetzt in der jeweiligen HausID spawnen?
    Hier mein bisheriger Code:

    //OnPlayerSpawn
    new Haeuser[128], string[128];
    for(new i = 0;i<MAX_HH;i++)
    {
    format(Haeuser,sizeof(Haeuser),"/Häuser/%d.ini", HausDaten[i][ID]);
    if(dini_Exists(Haeuser))
    {
    if(!strcmp(HausDaten[i][Besitzer], SpielerName(playerid), false))
    {
    format(string, sizeof(string), "%s\nHausID: %d\n", string, HausDaten[i][ID]);
    ShowPlayerDialog(playerid,DIALOG_SpawnHaus,DIALOG_STYLE_LIST,"Spawn Orte",string,"Spawnen","");
    }
    }
    }
    //OnDialogResponse
    if(dialogid == DIALOG_SpawnHaus)
    {
    if(response==0)
    {
    SendClientMessage(playerid,ROT,"Du musst einen Spawnort auswählen!");
    new Haeuser[128], string[128];
    for(new i = 0;i<MAX_HH;i++)
    {
    format(Haeuser,sizeof(Haeuser),"/Häuser/%d.ini", HausDaten[i][ID]);
    if(dini_Exists(Haeuser))
    {
    if(!strcmp(HausDaten[i][Besitzer], SpielerName(playerid), false))
    {
    format(string, sizeof(string), "%s\nHausID: %d\n", string, HausDaten[i][ID]);
    ShowPlayerDialog(playerid,DIALOG_SpawnHaus,DIALOG_STYLE_LIST,"Spawn Orte",string,"Spawnen","");
    }
    }
    }
    return 1;
    }
    if(response==1)
    {
    if(listitem == 0)
    {
    new Haeuser[64];
    for(new i = 0;i<MAX_HH;i++)
    {
    format(Haeuser,sizeof(Haeuser),"/Häuser/%d.ini", HausDaten[i][ID]);
    if(dini_Exists(Haeuser))
    {
    if(!strcmp(HausDaten[i][Besitzer], SpielerName(playerid), false))
    {
    SetPlayerInterior(playerid,HausDaten[i][interior]);
    SetPlayerVirtualWorld(playerid,HausDaten[i][virtual_world]);
    SetPlayerPos(playerid,HausDaten[i][sx],HausDaten[i][sy],HausDaten[i][sz]);
    SetPlayerFacingAngle(playerid,HausDaten[i][sang]);
    SetCameraBehindPlayer(playerid);
    PlayerPlaySound(playerid, 1054, 0.0, 0.0, 0.0);
    break;
    }
    }
    }
    return 1;
    }
    if(listitem == 1)
    {
    //steht das selbe wie bei listitem 0
    }
    }
    return 1;
    }

    Kurze und knackige Frage:
    Muss ich irgendwas beachten wenn ich ne Dini Datei lösche per dini_Remove(filename[]);?
    Zum Beispiel vorher alle Variablen in der Datei auf 0 setzen oder die einzelnen Zeilen mit dini_Unset(filename[], key[]); löschen?
    mfg

    du hast bestimmt

    stock SpielerSpeichern(playerid);
    {
    ...
    }

    so ganz am ende muss aber ein return 1 hin

    stock SpielerSpeichern(playerid);
    {
    ...
    return 1;
    }

    Hab übersehen, das du die Variable hVarBesitzer hast :D jz müsste alles gehen, check mal und ersetz es :)



    #define MAX_HOUSES 50
    enum HausDaten
    {
    hBesitzer[MAX_PLAYER_NAME],
    hKaufpreis,
    hVarBesitzer,
    Float: hIconX,
    Float: hIconY,
    Float: hIconZ,
    hIconID,
    Float: hSpawnX,
    Float: hSpawnY,
    Float: hSpawnZ,
    hInteriorID,
    HausDB
    }
    new HausInfo[MAX_HOUSES][HausDaten];


    ocmd:kaufen(playerid,params[])
    {
    new query[1000], string[300], string2[500];
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,Float:X,Float:Y,Float:Z);
    for(new i=0;i<MAX_HOUSES;i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ])) return SendClientMessage(playerid,COLOR_BLASSRED,"Hier kannst du kein Haus kaufen, du musst dich vor einem Haus stellen.");
    if(HausInfo[i][hVarBesitzer] != 1) return SendClientMessage(playerid,COLOR_BLASSRED,"Das Haus ist schon verkauft.");
    if(GetPlayerMoney(playerid) <= HausInfo[i][hKaufpreis]) return SendClientMessage(playerid,COLOR_BLASSRED,"Du hast nicht genug Geld um dir dieses Haus zu kaufen.");
    if(GetPlayerScore(playerid) <= 3) return SendClientMessage(playerid,COLOR_BLASSRED,"Du benötigt mindestens Level 3 um dir ein eigenes Haus zu kaufen.");
    if(SpielerInfo[playerid][pHaus] != 1) return SendClientMessage(playerid,COLOR_BLASSRED,"Du besitzt schon ein eigenes Haus, bitte verkaufe es vorher. [Befehle: /befehle]");
    HausInfo[i][hVarBesitzer] = 1;
    HausInfo[i][hBesitzer] = PlayerName[playerid];
    format(query, sizeof(query), "UPDATE `Houses` SET `VarBesitzer`='%d' AND `Besitzer`='%s' WHERE `HausID` = '%d'",HausInfo[i][hVarBesitzer], PlayerName[playerid],HausInfo[i][HausDB]);
    mysql_query(query);
    format(query, sizeof(query), "UPDATE `Accounts` SET `Haus`='1' WHERE `Benutzername` = '%s'",PlayerName[playerid]);
    mysql_query(query);
    format(string,sizeof(string),"Du hast dir ein Haus für {FFCC00}$%d{FFFFFF} gekauft. Hausnummer |%d|",HausInfo[i][hKaufpreis],HausInfo[i][HausDB]);
    SendClientMessage(playerid,COLOR_WHITE,string);
    SendClientMessage(playerid,COLOR_WHITE,"Neue Befehle verfügbar [/befehle]");
    Delete3DTextLabel(HausLabel[i]);
    format(string2,sizeof(string2),"--== Verkauftes Haus ==--\nBesitzer: {FFCC00}%s{FFFFFF}",HausInfo[playerid][hBesitzer]);
    HausLabel[i] = Create3DTextLabel(string2,COLOR_WHITE,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ],15,0,1);
    Update3DTextLabelText(HausLabel[i],COLOR_WHITE,string2);
    GivePlayerMoney(playerid,-HausInfo[i][hKaufpreis]);
    return 1;
    }
    return 1;
    }