Häuser im Dialog abfragen

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
  • 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;
    }

  • Warum machst du dir das Leben so schwer? Lade die Daten der Häuser unter OnGameModeInit!

  • new i,zahl;
    for(i<MAXIMALEANZAHLANHÄUSERN;i++)//geht von 0 bis maximale häuser anzahl (in dem beispiel 20)
    {
    new endzahl;//Die Finale listitem die auf die schleifen reihenfolge angepasst ist
    if(strcmp(HausDaten[Besitzer],SpielerName(playerid))!=0)//haus existiert nicht var zahl + 1
    {
    zahl+=1;
    }
    if(listitem==0)//spezieller fall item 0 == endzahl 0!
    {
    endzahl=0;
    }
    else//i-zahl=endzahl bsp. 5-3=2 (2 existierende häuser)
    {
    endzahl=i-zahl;
    }
    if(listitem==endzahl)//wenn listitem = 2 ist kommt code ansonsten gehts weiter
    {
    //code...
    break;
    }
    }

  • 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)