Beiträge von Jeffry

    Die 2 steht für 2 Teams.
    Für Team 0 kannst du es bei OnPlayerRequestSpawn so machen:
    if(teamCount[0] >= 20)
    {
    SendClientMessage(playerid, 0xFF0000FF, "Error: Team ist voll (maximal 20).");
    return 0;
    }


    Analog für Team 1.

    Keine der beiden Funktionen wurde ausgeführt. Bist du sicher, dass du die Funktionen auch aufrufen lässt?


    Eins ist mir grade noch aufgefallen:
    format(query, sizeof(query), "UPDATE `UPDATE `carmieten` SET `mPosX`='%f', `mPosY`='&f', `mPosZ`='&f', `mPosA`='&f', `mLocked`='%d', `mOwner`='%s', `mPreis`='%d', `mModellID`='%d' WHERE `mCarID`='%d'",
    carMieten[i][mPosX],carMieten[i][mPosY], carMieten[i][mPosZ], carMieten[i][mPosA], carMieten[i][mLocked], carMieten[i][mOwner], carMieten[i][mPreis], carMieten[i][mModellID] , i);

    zu:
    format(query, sizeof(query), "UPDATE `carmieten` SET `mPosX`='%f', `mPosY`='&f', `mPosZ`='&f', `mPosA`='&f', `mLocked`='%d', `mOwner`='%s', `mPreis`='%d', `mModellID`='%d' WHERE `mCarID`='%d'",
    carMieten[i][mPosX],carMieten[i][mPosY], carMieten[i][mPosZ], carMieten[i][mPosA], carMieten[i][mLocked], carMieten[i][mOwner], carMieten[i][mPreis], carMieten[i][mModellID] , i);


    Aber ausgeführt werden muss der Code schon. Deshalb wurde auch kein Error ausgegeben, da der Code gar nicht aufgerufen wurde.

    Callback für Callback mit der Kommentarfunktion /* */ auskommentieren.
    So lange, bis dein Compiler wieder was anzeigt. Dann hast du das Callback mit dem Fehler gefunden, oder die Funktion. Dort drinnen machst du dann das gleiche wieder, mit kleinen Stücken, bis du die Zeile gefunden hast.

    Oh, irgendwas scheint da bei dir nicht zu passen, mit GetTickCount.


    Mache es so:
    Ändere die GetTickCount's zu gettime.
    Und die +100's zu +1.


    Das macht wahrscheinlich auch so mehr Sinn, weil in einer zehntel Sekunde schafft man es kaum zu spammen, so ist es dann eine Sekunde.

    Das passt.
    Dann musst du es mal debuggen:
    if(GetTickCount() < Spieler[playerid][pLastSpamChat][0])
    zu:
    printf("GetTickCount: %d | pLastSpamChat %d", GetTickCount(), Spieler[playerid][pLastSpamChat][0]);
    if(GetTickCount() < Spieler[playerid][pLastSpamChat][0])


    Was wird dir so im Server Log geprintet, wenn du was im Chat eingibst, zwei Sekunden wartest, und nochmal was eingibst?

    Ahh, jetzt macht der Befehl Sinn, wie er aufgebaut ist.
    Eigentlich müsste es sogar klappen.


    Versuche es so:
    ocmd:createhouse(playerid,params[])
    {
    if(pInfo[playerid][pAdmin] == 5)
    {
    new p,r,int;
    if(sscanf(params,"iii",p,r,int))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /createhouse [Preis] [Zimmer (max. 6)] [Interior ID (Liste: /hints)]");
    {
    if(r <= 6)
    {
    if(int <= 10)
    {
    new st[16];
    format(st,sizeof st,"%d",r);
    mysql_pquery(dbHandle,"SELECT * FROM `haeuser`","OnQueryFinish","sdddsd","SELECT * FROM `haeuser`",QuerySelectAllHouse,playerid,p,st,int);
    SendClientMessage(playerid,COLOR_LIGHTGREEN,"Du hast das Haus erfolgreich erstellt!");
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Die InteriorID eines Hauses darf nicht größer als 10 sein!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Die Zimmer eines Hauses dürfen nicht mehr als 6 sein!");
    }
    }
    }
    return 1;
    }



    case QuerySelectAllHouse:
    {
    cache_get_data(rows,fields);
    if(rows >= MAX_HAEUSER) return 0;
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    format(query,sizeof query,"INSERT INTO `haeuser` (`ID`, `PosX`, `PosY`,\
    `PosZ`, `Level`, `Preis`, `Besitzer`, `Bought`, `Rooms`,`InteriorID`,`Interior`,`IntX`,`IntY`,`IntZ`,`Rentable`,\
    `RentPrice`, `Renter1`, `Renter2`, `Renter3`, `Renter4`, `Renter5`");
    format(query,sizeof query,"%s,`Renter6`)VALUES('%d', '%f', '%f', '%f', '5', '%d', 'Niemand','0', '%d',\
    '%d', '%d', '%f', '%f', '%f', '1', '100', 'Niemand', 'Niemand', 'Niemand', 'Niemand', 'Niemand', 'Niemand')"\
    ,query,rows,X,Y,Z,pID,strval(extrastr),extraid,hIntID[extraid][0],hInteriorList[extraid][0], hInteriorList[extraid][1], hInteriorList[extraid][2]);
    mysql_pquery(dbHandle,query);


    format(str,sizeof str,"SELECT * FROM `haeuser` WHERE `ID` = '%d'",rows);
    mysql_pquery(dbHandle, str, "OnQueryFinish", "sdd", str, QueryCallLoadHouse, playerid);
    }


    Falls das nicht klappt, dann schaue bitte im MySQL Log nach, was dir dort ausgegeben wird (gegebenenfalls zuvor löschen/leeren) und poste das mal.

    Unter den Includes:
    new teamCount[2];


    Bei OnPlayerRequestSpawn:
    switch(gTeam[playerid])
    {
    case TEAM_ARMY:
    {
    if(teamCount[0] > teamCount[1])
    {
    SendClientMessage(playerid, 0xFF0000FF, "Error: Team ist voll.");
    return 0;
    }
    teamCount[0]++;
    SetPlayerTeam(playerid, 0);
    SetPlayerColor(playerid, COLOR_BLUE);
    new rand = random(sizeof(UsaSpawn));
    SetPlayerPos(playerid, UsaSpawn[rand][0], UsaSpawn[rand][1], UsaSpawn[rand][2]);
    }
    case TEAM_TERRORIST:
    {
    if(teamCount[1] > teamCount[0])
    {
    SendClientMessage(playerid, 0xFF0000FF, "Error: Team ist voll.");
    return 0;
    }
    teamCount[1]++;
    SetPlayerTeam(playerid, 1);
    SetPlayerColor(playerid, COLOR_RED);
    new rand = random(sizeof(RusSpawn));
    SetPlayerPos(playerid, RusSpawn[rand][0], RusSpawn[rand][1], RusSpawn[rand][2]);
    }
    }
    Beachte, dass gTeam[playerid] einen korrekten Wert (1 oder 0) haben muss. Das musst du zuvor oder bei OnPlayerRequestClass anhand des Skins festlegen.


    Wenn du die Teams leerst:
    teamCount[0] = 0;
    teamCount[1] = 0;

    Ein Problem dieser Art liegt nicht am Compiler, sondern am Code.
    Du hast irgendwas am Code verändert, und das fehlerhaft, was den Compiler zum Absturz bringt (Syntax-Fehler der nicht erkannt werden kann).


    Wenn du willst kannst du mir den ganzen Server Ordner per PN schicken, dann schaue ich ihn mir an und behebe dir das Problem.


    Warum den ganzen Ordner? Weil ich deine Includes nicht habe.


    Alternativ, wie du es selbst machen kannst:
    Klammere Stück für Stück Code aus, so lange, bis der Compiler nicht mehr abstürzt. So kannst du dich an die Fehlerzeile hinarbeiten.

    Kommt die SendClientMessage im Chat, dass das Blaulicht angebracht wurde?


    Was steht im Server Log, wenn du, nach den CreateObject's das hier printest?
    printf("vehicleid: %d | %d / %d / %d / %d", vehicleid, sirene[0][vehicleid], sirene[1][vehicleid], sirene[2][vehicleid], sirene[4][vehicleid]);