Frage an die Scripter, pls help!

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
  • ich habe jetzt mein Haussystem fertig.
    Würde das system alles richtig abspeichern so wie der Befehl ist, oder muss ich was ändern?



    if(!strcmp(cmd1,"/chaus",true))
    {
    if(!IsPlayerAdmin(playerid))return 1;
    cmd1 = strtok(cmdtext,idx1);
    if(!cmd1[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze : /createhaus [kosten] [haus] [Virtual World]");
    new hkosten = strval(cmd1);
    cmd1 = strtok(cmdtext,idx1);
    if(!cmd1[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze : /createhaus [kosten] [haus] [Virtual World]");
    new hhaus = strval(cmd1);
    if(hhaus > sizeof(Typen) || hhaus < 0)return SendClientMessage(playerid,0xFF0000FF,"Ungültiges Haus!");
    cmd1 = strtok(cmdtext,idx1);
    if(!cmd1[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze : /createhaus [kosten] [haus] [Virtual World]");
    new hvw = strval(cmd1);
    new Float:ax,Float:ay,Float:az;
    new slotid = initSlot();
    new fullid = (slotid==-1) ? (MAX_HAUS) : (slotid);
    GetPlayerPos(playerid,ax,ay,az);
    HausInfo[fullid][hx] = ax;
    HausInfo[fullid][hy] = ay;
    HausInfo[fullid][hz] = az;
    HausInfo[fullid][hPreis] = hkosten;
    HausInfo[fullid][interior] = Typen[hhaus][interior];
    HausInfo[fullid][ix] = Typen[hhaus][haus_x];
    HausInfo[fullid][iy] = Typen[hhaus][haus_y];
    HausInfo[fullid][iz] = Typen[hhaus][haus_z];
    HausInfo[fullid][virtual_world] = hvw;
    HausInfo[fullid][hClosed] = 1;
    strmid(HausInfo[fullid][hOwner],"Keiner",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    HausInfo[fullid][pickid] = CreatePickup(1273,1,ax,ay,az,0);
    SaveHaus(fullid);
    return 1;
    }






    stock LoadHaus(hausid)
    {
    new Datei[50];
    format(Datei,50,"/haus/%d.txt",hausid);
    if(!fexist(Datei))return 0;


    HausInfo[hausid][hx] = dini_Float(Datei,"hx");
    HausInfo[hausid][hy] = dini_Float(Datei,"hy");
    HausInfo[hausid][hz] = dini_Float(Datei,"hz");
    HausInfo[hausid][ix] = dini_Float(Datei,"ix");
    HausInfo[hausid][iy] = dini_Float(Datei,"iy");
    HausInfo[hausid][iz] = dini_Float(Datei,"iz");
    HausInfo[hausid][hPreis] = dini_Int(Datei,"preis");
    format(HausInfo[hausid][hOwner],32,"%s",dini_Get(Datei,"besitzer"));
    HausInfo[hausid][pickid] = CreatePickup(1273 ,23,HausInfo[hausid][hx],HausInfo[hausid][hy],HausInfo[hausid][hz],0);
    HausInfo[hausid][interior] = dini_Int(Datei,"interior");
    HausInfo[hausid][virtual_world] = dini_Int(Datei,"virtual_world");
    HausInfo[hausid][Owned] = dini_Int(Datei,"owned");
    HausInfo[hausid][hClosed] = dini_Int(Datei,"closed");

    return print("Das Haus wurde erfolgreich geladen");
    }
    stock SaveHaus(hausid)
    {
    #pragma unused hausid
    new Datei[50];
    for(new i = 0;i<MAX_HAUS;i++)
    {
    format(Datei,50,"/haus/%d.txt",i);
    dini_FloatSet(Datei,"hx",HausInfo[i][hx]);
    dini_FloatSet(Datei,"hy",HausInfo[i][hy]);
    dini_FloatSet(Datei,"hz",HausInfo[i][hz]);
    dini_FloatSet(Datei,"ix",HausInfo[i][ix]);
    dini_FloatSet(Datei,"iy",HausInfo[i][iy]);
    dini_FloatSet(Datei,"iz",HausInfo[i][iz]);
    dini_IntSet(Datei,"preis",HausInfo[i][hPreis]);
    dini_Set(Datei,"besitzer",HausInfo[i][hOwner]);
    dini_IntSet(Datei,"pickid",HausInfo[i][pickid]);
    dini_IntSet(Datei,"interior",HausInfo[i][interior]);
    dini_IntSet(Datei,"virtual_world",HausInfo[i][virtual_world]);
    dini_IntSet(Datei,"owned",HausInfo[i][Owned]);
    dini_IntSet(Datei,"closed",HausInfo[i][hClosed]);
    LoadHaus(i);
    }
    return 1;
    }



    Danke euch :)

  • Hast du es denn Überhaupt getestet Dann soltest du das Auch Wissen ;P

  • ne noch nicht, aber weil ich ja beim /chaus befehl strmid habe mit MAX_PLAYER_NAME und sonst aber string, weiß nicht wie ich das ändern soll.

  • Ich habe mir jetzt mal grob angesehn, wenn der Code stimmen sollte, wird es gespeichert ja.


    #JoKér

  • Sollte eigentlich klappen Versuche es mal zu Testen dann hast du es 100%

  • //EDIT³:


    so, wenn ich /chaus mache kommt: /createhaus [kosten] [haus] [Virtual World]



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new idx1,cmd1[128];
    cmd1 = strtok(cmdtext,idx1);
    if(!strcmp(cmd1,"/chaus",true))
    {
    if(!IsPlayerAdmin(playerid))return 1;
    cmd1 = strtok(cmdtext,idx1);
    if(!cmd1[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze : /createhaus [kosten] [haus] [Virtual World]");
    new hkosten = strval(cmd1);
    cmd1 = strtok(cmdtext,idx1);
    if(!cmd1[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze : /createhaus [kosten] [haus] [Virtual World]");
    new hhaus = strval(cmd1);
    if(hhaus > sizeof(Typen) || hhaus < 0)return SendClientMessage(playerid,0xFF0000FF,"Ungültiges Haus!");
    cmd1 = strtok(cmdtext,idx1);
    if(!cmd1[0])return SendClientMessage(playerid,0xFF0000FF,"Nutze : /createhaus [kosten] [haus] [Virtual World]");
    new hvw = strval(cmd1);
    new Float:ax,Float:ay,Float:az;
    new slotid = initSlot();
    new fullid = (slotid==-1) ? (MAX_HAUS) : (slotid);
    GetPlayerPos(playerid,ax,ay,az);
    HausInfo[fullid][hx] = ax;
    HausInfo[fullid][hy] = ay;
    HausInfo[fullid][hz] = az;
    HausInfo[fullid][hPreis] = hkosten;
    HausInfo[fullid][interior] = Typen[hhaus][interior];
    HausInfo[fullid][ix] = Typen[hhaus][haus_x];
    HausInfo[fullid][iy] = Typen[hhaus][haus_y];
    HausInfo[fullid][iz] = Typen[hhaus][haus_z];
    HausInfo[fullid][virtual_world] = hvw;
    HausInfo[fullid][hClosed] = 1;
    format(HausInfo[fullid][hOwner],32,"Keiner");
    HausInfo[fullid][pickid] = CreatePickup(1273,1,ax,ay,az,0);
    SaveHaus(fullid);
    return 1;
    }
    //~~~~~~dcmd~~~~~~~~~~~~
    dcmd(kick,4,cmdtext);
    dcmd(setadmin,8,cmdtext);
    dcmd(ban,3,cmdtext);
    dcmd(sw,2,cmdtext);
    dcmd(restart,7,cmdtext);
    dcmd(alogin,6,cmdtext);
    dcmd(apanel,6,cmdtext);
    dcmd(ahilfe,6,cmdtext);
    dcmd(hilfe,5,cmdtext);
    dcmd(finfo,5,cmdtext);
    dcmd(spawn,5,cmdtext);
    dcmd(goto,4,cmdtext);
    dcmd(stats,5,cmdtext);
    dcmd(getlevel,8,cmdtext);
    dcmd(shilfe,6,cmdtext);
    dcmd(scheine,7,cmdtext);
    dcmd(navi,4,cmdtext);
    dcmd(tome,4,cmdtext);
    dcmd(say,3,cmdtext);
    dcmd(a,1,cmdtext);
    dcmd(f,1,cmdtext);
    dcmd(call,4,cmdtext);
    dcmd(p,1,cmdtext);
    dcmd(h,1,cmdtext);
    dcmd(an,2,cmdtext);
    dcmd(atm,3,cmdtext);
    dcmd(setrank,7,cmdtext);
    dcmd(kaufen,6,cmdtext);
    dcmd(enter,5,cmdtext);
    dcmd(exit,4,cmdtext);
    dcmd(verkaufen,9,cmdtext);
    dcmd(hlock,5,cmdtext);
    dcmd(delhaus,7,cmdtext);
    //~~~~~~~~~~~~~~~~~~~~~~
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    return 0;
    }

    2 Mal editiert, zuletzt von Scripter16 ()