/enter Funzuniert nicht ( Haussystem )

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,
    undzwar habe ich ein Haussystem und soweit funzuniert auch alles. Wenn ich ein Haus kaufen wird hInterior auf 0 gesetzt. Und wenn man /enter eingibt kommt ein DIalog. Aber wenn ich jetzte ein Interior kaufen und dann zum hausgehe und dann /enter eingebe steht dort SERVER: Unkown Command. Code: ocmd:enter(playerid, params[])
    {
    new string[200];
    for(new i = 0; i != MAX_HOUSES; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,hausInfo[i][hX],hausInfo[i][hY],hausInfo[i][hZ]))
    {
    if(hausInfo[i][hGekauft] == 1)
    {
    if(hausInfo[i][hInterior] == 0)
    {
    format(string,sizeof(string),"Dieses Haus besitzt noch kein Interior\nBitte gehe zum Hausshop und kaufe dir dort ein Interior");
    ShowPlayerDialog(playerid,DIALOG_HAUSINFO,DIALOG_STYLE_MSGBOX,"Haussystem",string,"Ok","");
    }
    else
    {
    SetPlayerPos(playerid, hausInteriorData[hausInfo[i][hInterior]][iX], hausInteriorData[hausInfo[i][hInterior]][iY], hausInteriorData[hausInfo[i][hInterior]][iZ]);
    SetPlayerVirtualWorld(playerid, hausInfo[i][hID]);
    SetPlayerInterior(playerid, hausInteriorData[hausInfo[i][hInterior]][iInterior]);
    }
    }
    else if(hausInfo[i][hGekauft] == 0)
    {
    SendClientMessage(playerid,GRAU,"Dieses Haus wurde noch nicht gekauft, deshalb kannst du auch nicht reingehen.");
    }
    break;
    }
    }
    return 1;
    }

  • ocmd:enter(playerid, params[])
    {
    new string[200];
    for(new i = 0; i != MAX_HOUSES; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,hausInfo[i][hX],hausInfo[i][hY],hausInfo[i][hZ]))
    {
    if(hausInfo[i][hGekauft] == 1)
    {
    if(hausInfo[i][hInterior] != 1)
    {
    format(string,sizeof(string),"Dieses Haus besitzt noch kein Interior\nBitte gehe zum Hausshop und kaufe dir dort ein Interior");
    ShowPlayerDialog(playerid,DIALOG_HAUSINFO,DIALOG_STYLE_MSGBOX,"Haussystem",string,"Ok","");
    }
    else
    {
    SetPlayerPos(playerid, hausInteriorData[hausInfo[i][hInterior]][iX], hausInteriorData[hausInfo[i][hInterior]][iY], hausInteriorData[hausInfo[i][hInterior]][iZ]);
    SetPlayerVirtualWorld(playerid, hausInfo[i][hID]);
    SetPlayerInterior(playerid, hausInteriorData[hausInfo[i][hInterior]][iInterior]);
    }
    }
    else if(hausInfo[i][hGekauft] == 0)
    {
    SendClientMessage(playerid,GRAU,"Dieses Haus wurde noch nicht gekauft, deshalb kannst du auch nicht reingehen.");
    }
    break;
    }
    }
    return 1;
    }


    versuchs mal so

  • ocmd:enter(playerid,params[])
    {
    for(new i=0;i!=MAX_HOUSES;i++){
    if(IsPlayerInRangeOfPoint(playerid,3,hausInfo[i][hX],houseInfo[i][hY],hausInfo[i][hZ)){
    if(hausInfo[i][hGekauft] == 1)return SendClientMessage(playerid,GRAU,"Dieses Haus wurde noch nicht gekauft, deshalb kannst du auch nicht reingehen,");
    if(hausInfo[i][hInterior] == 0)return ShowPlayerDialog(playerid,DIALOG_HAUSINFO,DIALOG_STYLE_MSGBOX,"Haussystem","Dieses Haus besitzt noch kein Interior\bBitte gehe zum Hausshop und kaufe dir dort ein Interior","Ok","");
    else SetPlayerPos(playerid,hausInteriorData[hausInfo[i][hInterior]][iX],hausInteriorData[hausInfo[i][hInterior]][iY],hausInteriorData[hausInfo[i][hInterior]][iZ]);SetPlayerVirtualWorld(playerid, hausInfo[i][hID]);SetPlayerInterior(playerid, hausInteriorData[hausInfo[i][hInterior]][iInterior]);
    }
    else continue;
    }
    return 1;
    }


    Probier das mal aus.

    Einmal editiert, zuletzt von AirM4X ()


  • Mit break brichst du schleife ab , was soll das denn bitteschön bringen?

  • Ich habe in den Code geschrieben, wenn er nicht an dieser Position ist, bricht er die Schleife ab.
    Was soll da denn falsch dran sein? ( MrPawn)

  • Versuchs mal so:


    Spoiler anzeigen
    ocmd:enter(playerid, params[])
    {
    new string[256];
    for(new i = 0; i != MAX_HOUSES; i++) {
    if(!IsPlayerInRangeOfPoint(playerid,3.0,hausInfo[i][hX],hausInfo[i][hY],hausInfo[i][hZ])) continue;
    if(hausInfo[i][hGekauft] == 1) {
    if(hausInfo[i][hInterior] == 0) {
    format(string,sizeof(string),"Dieses Haus besitzt noch kein Interior\nBitte gehe zum Hausshop und kaufe dir dort ein Interior");
    return ShowPlayerDialog(playerid,DIALOG_HAUSINFO,DIALOG_STYLE_MSGBOX,"Haussystem",string,"Ok","");
    }
    SetPlayerPos(playerid, hausInteriorData[hausInfo[i][hInterior]][iX], hausInteriorData[hausInfo[i][hInterior]][iY], hausInteriorData[hausInfo[i][hInterior]][iZ]);
    SetPlayerVirtualWorld(playerid, hausInfo[i][hID]);
    SetPlayerInterior(playerid, hausInteriorData[hausInfo[i][hInterior]][iInterior]);
    return 1;
    }
    return SendClientMessage(playerid,GRAU,"Dieses Haus wurde noch nicht gekauft, deshalb kannst du auch nicht reingehen.");
    }
    return SendClientMessage(playerid,GRAU,"Du befindest dich nicht in der Nähe von einem Haus!");
    }


    Wenn das nicht funktioniert downloade dir mal CrashDetect und poste den Fehler ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Danke erstmal für deine antwort, aber selber fehler. CrashDetect kann ich nicht benutzen da MSVCP120.dll nicht für Windows XP funzuniert.


    ich denke da ja alle fehlermeldungen kommen das es ab dieser stelle nicht mehr funzuniert
    SetPlayerPos(playerid, hausInteriorData[hausInfo[i][hInterior]][iX], hausInteriorData[hausInfo[i][hInterior]][iY], hausInteriorData[hausInfo[i][hInterior]][iZ]);
    SetPlayerVirtualWorld(playerid, hausInfo[i][hID]);
    SetPlayerInterior(playerid, hausInteriorData[hausInfo[i][hInterior]][iInterior]);


    das mit "Dieses haus besitzt noch kein..." funzuniert ja. Ich zeige dir mal hausInteriorData
    enum hausInteriorDataEnumerator {
    Float:iX,
    Float:iY,
    Float:iZ,
    iInterior
    };


    new hausInteriorData[][hausInteriorDataEnumerator] =
    {
    {318.564971,1118.209960,1083.882812, 5}


    };