[HILFE] Spieler spawnen alle im selben Haus

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
  • Haussystem (HILFE)




    Guten Tag liebe Community,



    Ich habe ein Haussystem gescriptet auf MYSQL und wollte nun das die Spieler in ihren Häusern spawnen.



    Habe jetzt nur das Problem das alle Spieler im selben Haus spawnen...



    Vielleicht habe ich ja vergessen eine Abfrage einzubauen oder soetwas :(




    Wäre nett wenn ihr mir helfen könntet


    enum hausEnumerator
    {
    hID,
    hPreis,
    hBesitzer[MAX_PLAYER_NAME],
    hInterior,
    Float:hX,
    Float:hY,
    Float:hZ,
    hCpID,
    Text3D:h3DText
    };











    public OnPlayerSpawn(playerid)
    {
    if(!isPlayerInFrakt(playerid, 0))
    {
    if(sInfo[playerid][spawnchange]==1)
    {
    new fID;
    fID = sInfo[playerid][fraktion];
    SetPlayerPos(playerid, fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
    SetPlayerFacingAngle(playerid,fInfo[fID][f_r]);
    SetPlayerInterior(playerid, fInfo[fID][f_inter]);
    SetPlayerVirtualWorld(playerid, fInfo[fID][f_world]);
    SetPlayerColor(playerid, fInfo[fID][f_color]);
    return 1;
    }
    }
    for(new i = 0; i != MAX_HOUSES; i++)
    {
    if(sInfo[playerid][spawnchange]==2)
    {
    new haID;
    haID = hausInfo[playerid][hID];
    SetPlayerPos(playerid,hausInteriorData[hausInfo[haID][hInterior]][iX], hausInteriorData[hausInfo[haID][hInterior]][iY], hausInteriorData[hausInfo[haID][hInterior]][iZ]);
    SetPlayerInterior(playerid, hausInteriorData[hausInfo[haID][hInterior]][iInterior]);
    SetPlayerVirtualWorld(playerid, hausInfo[haID][hID]);
    break;
    }
    }
    return 1;
    }



    Danke schonmal!


    liebe grüße,


    Benne von NoMercy :)

  • Ich hab was vergessen :D


    ocmd:spawnchange(playerid,params[])
    {
    ShowPlayerDialog(playerid,SPAWN,DIALOG_STYLE_LIST,"Spawnpunkte","Noobspawn\nFraktion\nHaus","Akzeptieren", "Abbrechen");
    return 1;
    }





    if (dialogid == SPAWN)
    {
    if(response)
    {
    if(listitem == 0)
    {
    sInfo[playerid][spawnchange]=0;
    return 1;
    }
    if(listitem == 1)
    {
    sInfo[playerid][spawnchange]=1;
    return 1;
    }
    if(listitem == 2)
    {
    sInfo[playerid][spawnchange]=2;
    return 1;
    }
    }
    }

  • Du hast deinen Code so angelegt, dass er IMMER im Haus spawnt. Ganz egal, welche Variablen vergeben sind.
    Pawno arbeitet von oben nach unten.
    Du könntest es so machen:
    public OnPlayerSpawn(playerid)
    {
    if(sInfo[playerid][spawnchange] == 1)
    {
    SetPlayerPos(Fraktionsid zeug halt);
    //oder
    switch(sInfo[playerid][fraktion])
    {
    case 0:{SetPlayerPos(playerid,zivispawn zeug halt);}
    case 1:{SetP,layerPos(playerid,fraktions1);}
    }
    }
    else if(sInfo[playerid][spawnchange] == 0)
    {
    SetPlayerPOs(noobspawnzeug halt);
    }
    else if(sInfo[playerid][spawnchange == 2)
    {
    //Das Zeug für dein Haus ^^
    }
    return 1;
    }

  • Also bei mir spawnt man nicht immer im Haus, sondern an dem Ort den man auswählt bei "/spawnchange".


    Ich spawne in der Fraktion wenn ich das möchte.
    Ich spawne am Noobspawn wenn ich das möchte.


    Ich hab nur das Problem das ALLE Leute die HAUS als spawn wählen in einem Haus spawnen, nicht in verschiedenen.

  • Hast du eventuell die selben VirtuellenWelten ausgewählt oder?
    Und das mit der Fraktion und dem Haus kann nicht sein:
    for(new i = 0; i != MAX_HOUSES; i++)
    {
    if(sInfo[playerid][spawnchange]==2)
    {
    new haID;
    haID = hausInfo[playerid][hID];


    zu:


    for(new i = 0; i != MAX_HOUSES; i++)
    {
    if(sInfo[playerid][spawnchange]==2 && hausInfo[playerid][hID] == i)
    {
    new haID;
    haID = hausInfo[playerid][hID];