HausSystem: Speicher Stock = Error!! MYSQL

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
    ich bin grade dabei ein Haussystem zu schreiben.
    und bei der Speicherfunktion kommen erros
    Also hie rmal der Stock
    stock SaveHaus()
    {
    for(new i; i<MAX_HAUSER;i++)
    {
    mysql_SetString("hauser", "Besitzer", Haus[i][Owner], "ID", i);
    mysql_SetFloat("hauser", "ax", Haus[i][ax], "ID", i);
    mysql_SetFloat("hauser", "ay", Haus[i][ay], "ID", i);
    mysql_SetFloat("hauser", "az", Haus[i][az], "ID", i);
    mysql_SetFloat("hauser", "ix", Haus[i][ix], "ID", i);
    mysql_SetFloat("hauser", "iy", Haus[i][iy], "ID", i);
    mysql_SetFloat("hauser", "iz", Haus[i][iz], "ID", i);
    mysql_SetInt("hauser", "interior", Haus[i][interior], "ID", i);
    mysql_SetInt("hauser", "virtual_world", Haus[i][vworld], "ID", i);
    mysql_SetInt("hauser", "kosten", Haus[i][kosten], "ID", i);
    mysql_SetInt("hauser", "nicht_zum_kauf", Haus[i][kaufen], "ID", i);
    mysql_SetInt("hauser", "verschlossen", Haus[i][schloss], "ID", i);
    mysql_SetInt("hauser", "Heal", Haus[i][heal], "ID", i);
    mysql_SetInt("hauser", "Armour", Haus[i][armour], "ID", i);
    }
    return 1;
    }
    und überall wo mysql_.,.. steht kommt der error
    error 035: argument type mismatch (argument 5)

    Einmal editiert, zuletzt von HoneyKing ()


  • stock SaveHaus()
    {
    new str[2];
    for(new i; i<MAX_HAUSER;i++)
    {
    valstr(i,str);
    mysql_SetString("hauser", "Besitzer", Haus[i][Owner], "ID",str);
    mysql_SetFloat("hauser", "ax", Haus[i][ax], "ID", str);
    mysql_SetFloat("hauser", "ay", Haus[i][ay], "ID", str);
    mysql_SetFloat("hauser", "az", Haus[i][az], "ID", str);
    mysql_SetFloat("hauser", "ix", Haus[i][ix], "ID", str);
    mysql_SetFloat("hauser", "iy", Haus[i][iy], "ID", str);
    mysql_SetFloat("hauser", "iz", Haus[i][iz], "ID", str);
    mysql_SetInt("hauser", "interior", Haus[i][interior], "ID", str);
    mysql_SetInt("hauser", "virtual_world", Haus[i][vworld], "ID", str);
    mysql_SetInt("hauser", "kosten", Haus[i][kosten], "ID", str);
    mysql_SetInt("hauser", "nicht_zum_kauf", Haus[i][kaufen], "ID",str);
    mysql_SetInt("hauser", "verschlossen", Haus[i][schloss], "ID", str);
    mysql_SetInt("hauser", "Heal", Haus[i][heal], "ID", str);
    mysql_SetInt("hauser", "Armour", Haus[i][armour], "ID",str);
    }
    return 1;
    }

  • Okay noch 1 error jetzt
    error 035: argument type mismatch (argument 1)
    wegen
    valstr(i,str);

  • Okay habs auch bemerkt wo ich genau hibgeschazt habe.
    //edit so habe alle shingekricht mal testen obs geht


    /edit
    geht nicht wenn ich hauserstellen mache sag er mir direkt ich erstelle das 500e haus obwohl das das erste ist


    Frage:
    Wie mach eich das wenn in der db 0 Hauser sind er nix laden muss bzw. wenn in der db 2 Hauser sind auch nur 2 lädt und nicht 500
    weil ich habe den code so
    stock LoadHaus()
    {
    new str[3];
    for(new i; i<sizeof(Haus);i++)
    {
    valstr(str,i);
    Haus[i][ID] = mysql_GetInt("hauser", "ID", "ID", str);
    Haus[i][Owner] = mysql_GetString("hauser", "Besitzer", "ID", str);
    Haus[i][ax] = mysql_GetFloat("hauser", "ax", "ID", str);
    Haus[i][ay] = mysql_GetFloat("hauser", "ay", "ID", str);
    Haus[i][az] = mysql_GetFloat("hauser", "az", "ID", str);
    Haus[i][ix] = mysql_GetFloat("hauser", "ix", "ID", str);
    Haus[i][iy] = mysql_GetFloat("hauser", "iy", "ID", str);
    Haus[i][iz] = mysql_GetFloat("hauser", "iz", "ID", str);
    Haus[i][interior] = mysql_GetInt("hauser", "interior", "ID", str);
    Haus[i][vworld] = mysql_GetInt("hauser", "virtual_world", "ID", str);
    Haus[i][kosten] = mysql_GetInt("hauser", "kosten", "ID", str);
    Haus[i][kaufen] = mysql_GetInt("hauser", "nicht_zum_kauf", "ID", str);
    Haus[i][schloss] = mysql_GetInt("hauser", "verschlossen", "ID", str);
    Haus[i][heal] = mysql_GetInt("hauser", "Heal", "ID", str);
    Haus[i][armour] = mysql_GetInt("hauser", "Armour", "ID", str);
    hausid++;
    }
    return 1;
    }mit hausid arbeit eich dann bei /hauserstellen
    und so sieht es da ausif(strcmp(strget(cmdtext,0),"/hauserstellen",true) == 0)
    {
    new Float:x, Float:y, Float:z;
    if(IsPlayerConnected(playerid))
    {
    if(pDaten[playerid][AdminLevel] >= 2000 || IsPlayerAdmin(playerid))
    {
    if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2)))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /hauserstellen [Type1-12] [Kosten]");
    return 1;
    }
    new HausType;
    new money;
    HausType = strval(strget(cmdtext,1));
    money = strval(strget(cmdtext,2));
    if (pDaten[playerid][AdminLevel] >= 2000 || IsPlayerAdmin(playerid))
    {
    if(IsPlayerConnected(playerid))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "AdminSystem: %s hat das %d' erstellt!",sendername,hausid);
    SendAdminMessage(COLOR_LIGHTRED,string);
    GetPlayerPos(playerid,x,y,z);
    hausid++;
    strmid(Haus[hausid][Owner],"Keiner",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    Haus[hausid][ax] = x;
    Haus[hausid][ay] = y;
    Haus[hausid][az] = z;
    Haus[hausid][ix] = HausInterior [HausType][xx];
    Haus[hausid][iy] = HausInterior [HausType][yy];
    Haus[hausid][iz] = HausInterior [HausType][zz];
    Haus[hausid][interior] = HausInterior [HausType][Inter];
    Haus[hausid][vworld] = hausid+100;
    Haus[hausid][kosten] = money;
    Haus[hausid][kaufen] = 0;
    Haus[hausid][schloss] = 1;
    Haus[hausid][heal] = 0;
    Haus[hausid][armour] = 0;
    Haus[hausid][pickid] = CreatePickup(1273,1,x,y,z,0);
    format(cmd,sizeof(cmd),"Besitzer : %s\nKosten : %d",Haus[hausid][Owner],money);
    Haus[hausid][lbl_haus] = Create3DTextLabel(cmd,COLOR_GREEN,Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az]+1,15.0,0);
    Haus[hausid][icon_id] = iAddStreamIcon(x,y,z,31,0);
    SaveHaus();
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Das darfst du nicht tun!");
    }
    }
    return 1;
    } Hier sagt er mir nur Bla hat das 500 Haus erstellt obwohl das das erste ist udn speichern tut er das dann auch nicht


    //edit Wie kann ich hichzählen nur wenn er was in der db findet und wenn er nix findet auf der stelle x dann soll er nicht mehr hochzählen . weis wer was ich meine oder wie es geht

    3 Mal editiert, zuletzt von HoneyKing ()