Beiträge von Cheevy.Shakur

    Die Funktion um die Zone zu erstellen unter OnPlayerSpawn.
    Desweiteren mal Farben eingefügt.
    stock GetZoneColor(faction)
    {
    if(faction == 1) return 0xA349A466;
    else if(faction == 2) return 0xFF7BFFFF;
    else return 0;
    }

    Der Code wird 10 mal durchgegangen, weil ich MAX_GANGFIGHTS für die maxmiale Anzahl an Gangfight Gebieten zu 10 definiert habe.
    for(new i;i<MAX_GANGFIGHT;i++)
    {
    GangZoneShowForPlayer(playerid, GangfightZone[i], Gangfight[i][gZonecolor]);
    printf("Zone: %d ZoneColor: %d",GangfightZone[i], Gangfight[i][gZonecolor]);
    }
    Irgendwie wird mir aber kein Gebiet angezeigt, das gibts doch nicht..


    Log:

    Code
    [14:25:39] Zone: 0 ZoneColor: 53
    [14:25:39] Zone: 0 ZoneColor: 0
    [14:25:39] Zone: 0 ZoneColor: 0
    [14:25:39] Zone: 0 ZoneColor: 0
    [14:25:39] Zone: 0 ZoneColor: 0
    [14:25:39] Zone: 0 ZoneColor: 0
    [14:25:39] Zone: 0 ZoneColor: 0
    [14:25:39] Zone: 0 ZoneColor: 0
    [14:25:39] Zone: 0 ZoneColor: 0
    [14:25:39] Zone: 0 ZoneColor: 0

    Hallo,


    derzeit bin ich dabei ein Gangfight System für mein Selfmade zu entwickeln. (MySQL)
    Das ganze funktioniert aber noch nicht so, wie ich will. Erstmal bin ich dabei, dass die Zonen geladen und auf der Map angezeigt werden.


    Die Zone wird geladen, wie man aus der Server Log entnehmen kann. Derzeit ein Gangfight, da in der Datenbank bis jetzt auch nur ein Eintrag existiert.

    Code
    [13:47:57] [LOAD] Gangfights geladen: 1/10


    Wenn der Server startet, lasse ich eine eigenständige Funktion aufrufen. Diese Funktion sollte alle Gebiete laden, was meines Wissens nach auch funktioniert.
    mysql_function_query(myCon, "SELECT * FROM `script_gangfight`", true, "LoadGangfight", "");
    public LoadGangfight()
    {
    new rows,fields,count;
    cache_get_data(rows,fields);
    for(new i=0;i<rows;i++)
    {
    new gGangfightID = cache_get_field_content_int(i, "ID");
    if(gGangfightID < MAX_GANGFIGHT)
    {
    Gangfight[gGangfightID][gID] = cache_get_field_content_int(i, "ID");
    Gangfight[gGangfightID][minX] = cache_get_field_content_float(i, "minX");
    Gangfight[gGangfightID][minY] = cache_get_field_content_float(i, "minY");
    Gangfight[gGangfightID][maxX] = cache_get_field_content_float(i, "maxX");
    Gangfight[gGangfightID][maxY] = cache_get_field_content_float(i, "maxY");
    Gangfight[gGangfightID][gAngriff] = cache_get_field_content_int(i, "Angriff");
    Gangfight[gGangfightID][gZonecolor] = cache_get_field_content_int(i, "Zonecolor");
    Gangfight[gGangfightID][gPunkteTeam1] = cache_get_field_content_int(i, "PunkteTeam1");
    Gangfight[gGangfightID][gPunkteTeam2] = cache_get_field_content_int(i, "PunkteTeam2");
    Gangfight[gGangfightID][gFlag1] = cache_get_field_content_int(i, "Flag1");
    Gangfight[gGangfightID][gFlag2] = cache_get_field_content_int(i, "Flag2");
    Gangfight[gGangfightID][gFlag3] = cache_get_field_content_int(i, "Flag3");
    Gangfight[gGangfightID][gBesitzer] = cache_get_field_content_int(i, "Besitzer");
    count++;
    GangfightZone[i] = GangZoneCreate(Gangfight[i][minX],Gangfight[i][minY],Gangfight[i][maxX],Gangfight[i][maxY]);
    }
    }
    printf("[LOAD] Gangfights geladen: %d/%d", count, MAX_GANGFIGHT);
    return 1;
    }


    Den Besitzer sowie die Farbe der Zone speichere ich als Integer, da ich gerne die normalen SAMP Color ID's verwenden möchte.
    In der Ladefunktion ist ebenso die Funktion, dass die Gebiete erstellt werden.
    Sobald sich der Spieler einloggt, lasse ich die Gangfight Gebiete auch für playerid anzeigen.
    for(new i;i<MAX_GANGFIGHT;i++)
    {
    GangZoneShowForPlayer(playerid, GangfightZone[i], Gangfight[i][gZonecolor]);
    }


    Mir wird jedoch kein Gebiet auf der Karte angezeigt.. Kennt vielleicht jemand das Problem oder sieht den Fehler?


    Gruß,
    Cheevy


    Jeffry:
    //edit: Jeffry hinzugefügt, der weiß alles

    Diese hier
    else if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11))


    Nein TVPikachu, so wäre die Funktion die ich erlangen will nicht gegeben.

    Hier mal der ganze Code.
    for(new i=0;i<sizeof(fVehicleShop);i++)
    {
    if(vehicleid == fShopVehicles[i])
    {
    if(!Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11))
    {
    if(Spieler[playerid][pRank] == RANG_LEADER)
    {
    new Float:Pos[3];
    GetVehicleModelInfo(fVehicleShop[i][fVmodelid], VEHICLE_MODEL_INFO_SIZE, Pos[0], Pos[1], Pos[2]);
    InterpolateCameraPos(playerid,fVehicleShop[i][fVposX],fVehicleShop[i][fVposY],fVehicleShop[i][fVposZ],fVehicleShop[i][fVposX]+Pos[0],fVehicleShop[i][fVposY]-Pos[1],fVehicleShop[i][fVposZ],2500,CAMERA_MOVE);
    InterpolateCameraLookAt(playerid,fVehicleShop[i][fVposX]+Pos[0],fVehicleShop[i][fVposY]-Pos[1],fVehicleShop[i][fVposZ],fVehicleShop[i][fVposX],fVehicleShop[i][fVposY],fVehicleShop[i][fVposZ],2500,CAMERA_MOVE);
    FreezePlayer(playerid);
    strdel(DialogString, 0, sizeof(DialogString));
    format(DialogString, sizeof(DialogString), COLOR_HEX_BLUE"Wang Cars - Fraktionsfahrzeuge\n\n");
    format(DialogString, sizeof(DialogString), "%s"COLOR_HEX_BLUE"Fahrzeug: "COLOR_HEX_WHITE"%s\n"COLOR_HEX_BLUE"Preis: "COLOR_HEX_WHITE"$%d\n"COLOR_HEX_BLUE"Tankverbrauch: "COLOR_HEX_WHITE"%.2fL/KM\n", DialogString, fVehicleShop[i][fVName], fVehicleShop[i][fVPreis], VehicleData[fVehicleShop[i][fVmodelid]-400][vehTankVerbrauch]);
    format(DialogString, sizeof(DialogString), "%s"COLOR_HEX_BLUE"Tankgröße: "COLOR_HEX_WHITE"%.2fL\n\nWenn du dieses Fahrzeug kaufen möchtest, klicke auf den entsprechenden Button.\n", DialogString, VehicleData[fVehicleShop[i][fVmodelid]-400][vehMaxTank]);
    strcat(DialogString, COLOR_HEX_WHITE"Das Geld wird von deiner Hand abgehoben, und das Fahrzeug gehört dann automatisch zur Fraktion an!\nDieses lässt sich nicht auf die privaten Fahrzeuge übertragen, und lässt sich nur durch die Hälfte des Kaufpreises verkaufen!\nÜberleg gut, ob es dir Wert ist!");
    ShowPlayerDialog(playerid, DIALOG_BUYFRAKVEHICLE, DIALOG_STYLE_MSGBOX, "Fraktions Fahrzeug - Kaufen", DialogString, "Kaufen", "Abbrechen");
    return 1;
    }
    }
    else if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11))
    {
    FreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    UnfreezePlayer(playerid);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"** Diese Fahrzeuge können nur Gangs und Mafien kaufen.");
    }
    }
    }

    Code
    C:\Users\Alex\Desktop\**\gamemodes\reallife.pwn(6612) : error 029: invalid expression, assumed zero
    C:\Users\Alex\Desktop\**\gamemodes\reallife.pwn(6612) : warning 215: expression has no effect
    C:\Users\Alex\Desktop\**\gamemodes\reallife.pwn(6612) : error 001: expected token: ";", but found "if"
    C:\Users\Alex\Desktop\**\gamemodes\reallife.pwn(6612) : error 029: invalid expression, assumed zero
    C:\Users\Alex\Desktop\**\gamemodes\reallife.pwn(6612) : fatal error 107: too many error messages on one line

    else if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11)


    So sollte es funktionieren, du hast immer Spieler[playerid][pFraktion] == 0) //) darf nur am ende sein gemacht


    Funktioniert leider nicht.

    Finde hier keinen Zeichenfehler etc.. kann mir jemand mal helfen?
    else if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0) || Spieler[playerid][pFraktion] == 3) || Spieler[playerid][pFraktion] == 5) || Spieler[playerid][pFraktion] == 9) || Spieler[playerid][pFraktion] == 10) || Spieler[playerid][pFraktion] == 11))