Beiträge von Cheevy.Shakur

    Danke dir, hab noch eine kleine Frage, dann war es das erstmal :b
    Hier wird mir trotz das ich der Besitzer bin angezeigt, dass ich nicht der Besitzer bin.
    for(new i=0;i<GetMaxPlayers();i++)
    {
    for(new slot=0;slot<MAX_PLAYER_VEHICLES;slot++)
    {
    if(veh == PrivateVehicle[i][slot][vehID])
    {
    if(vehicleid != PrivateVehicle[i][slot][vehID]) continue;
    GetVehiclePos(veh, pos[0], pos[1], pos[2]);
    GetVehicleParamsEx(PrivateVehicle[i][slot][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
    if(doors == VEHICLE_PARAMS_OFF || doors == VEHICLE_PARAMS_UNSET)
    {
    LockVehicle(PrivateVehicle[i][slot][vehID]);
    GameTextForPlayer(i, "~w~Privat-Fahrzeug~n~~r~Abgeschlossen", 3000, 6);
    PlaySoundInRange(pos[0], pos[1], pos[2], 10.0, 1027, 0, 0);
    return 1;
    }
    if(doors == VEHICLE_PARAMS_ON)
    {
    UnlockVehicle(PrivateVehicle[i][slot][vehID]);
    GameTextForPlayer(i, "~w~Privat-Fahrzeug~n~~g~Aufgeschlossen", 3000, 6);
    PlaySoundInRange(pos[0], pos[1], pos[2], 10.0, 1027, 0, 0);
    return 1;
    }
    }
    }
    return SendClientMessage(playerid,COLOR_GREY,"** Dies ist nicht dein Fahrzeug.");
    }


    /e:
    Jeffry hinzugefügt
    Jeffry:

    Er gibt mir zwar die Nachricht aus, dass ein Gangfight gestartet wurde sagt mir dann trotzdem, ich bin in keinem Gangfight Gebiet.
    CMD:gangfight(playerid)
    {
    new string[128];
    for(new i;i<MAX_GANGFIGHT;i++)
    {
    if(GangfightZone[i] == -1) continue;
    if(IsPlayerInArea(playerid,Gangfight[i][minX],Gangfight[i][minY],Gangfight[i][maxX],Gangfight[i][maxY]))
    {
    if(Gangfight[i][gBesitzer] == Spieler[playerid][pFraktion])return SendClientMessage(playerid,COLOR_GREY,"** Dieses Gangfight Gebiet gehörts bereits euch.");
    if(Gangfight[i][gAngriff] == 1)return SendClientMessage(playerid,COLOR_GREY,"** Es läuft bereits ein Gangfight.");
    format(string,sizeof(string),"Ein Gangfight im Gebiet [%s] wurde von %s gestartet.",Gangfight[i][gZone],GetFraktionName(Spieler[playerid][pFraktion]));
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    }
    return SendClientMessage(playerid,COLOR_GREY,"** Du bist in keinem Gangfight Gebiet.");
    }

    Meines Wissens nach überprüft er hier ja jedes Gangfight Gebiet, anstatt genau das, in welchem er sich befindet.
    Wie kann ich das ändern, dass nur das Gangfight Gebiet überprüft wird, in dem er steht?
    Jeffry:
    CMD:gangfight(playerid)
    {
    for(new i;i<MAX_GANGFIGHT;i++)
    {
    if(GangfightZone[i] == -1) continue;
    if(IsPlayerInArea(playerid,Gangfight[i][minX],Gangfight[i][minY],Gangfight[i][maxX],Gangfight[i][maxY]))
    {
    if(Gangfight[i][gBesitzer] == Spieler[playerid][pFraktion])return SendClientMessage(playerid,COLOR_GREY,"** Dieses Gangfight Gebiet gehörts bereits euch.");
    if(Gangfight[i][gAngriff] == 1)return SendClientMessage(playerid,COLOR_GREY,"** Es läuft bereits ein Gangfight.");
    }
    else
    {
    return SendClientMessage(playerid,COLOR_GREY,"** Du bist in keinem Gangfight Gebiet.");
    }
    }
    return 1;
    }


    //edit: Jeffry angesprochen

    Ich schreib nochmal kurz hier rein.
    In jedem Gebiet gibt es 3 Flaggen. Die 2 Gegner können die Flaggen immer einnehmen, also können höchstens 2 verschiedene Fraktions Namen an den 3 Flaggen stehen.
    Fraktion 1 besitzt z.B Flagge A. Fraktion 2 besitzt z.B Flagge B. Neben Flagge A besitzt Fraktion 1 noch Flagge C.
    Die Flaggen sind nur an dieser einen Position, habe die direkt ins Script integriert.

    Versteh ich jetzt nicht..
    Vielleicht gehört mein Thema ja gar nicht mehr hier hin, frage schon wieder viel zu viel.. :whistling:


    Habe ja die Zonen Besitzer hier definiert
    stock GetZoneBesitzer(faction)
    {
    new string[50];
    switch(faction)
    {
    case 2: string = "La Cosa Nostra";
    case 4: string = "Grove Street";
    case 6: string = "Yakuza";
    case 7: string = "Ballas";
    case 8: string = "Los Santos Vagos";
    }
    return string;
    }


    Die ändern sich ja stetig..

    Cheevy.Shakur: Steht das vor oder nach GangZoneCreate? Es muss danach stehen, also in dem Callback in dem du die Zonen erstellst.
    Außerdem erstellst du so an jeder der drei Stellen MAX_GANGFIGHT's Labels, da die Positionen fest angegeben sind, sprich für jeden Durchlauf ist es dieselbe Position.


    Mist, hast Recht. Aber wie kriege ich dann bitte den Besitzer heraus, wenn ich feste Position nicht mehrmals durchlaufen will sondern nur einmal?

    Kann mir jemand sagen, warum die TextLabels nicht angezeigt werden?
    for(new i;i<MAX_GANGFIGHT;i++)
    {
    if(GangfightZone[i] == -1) continue;
    format(string,sizeof(string),""COLOR_HEX_BLUE"Flag A\n"COLOR_HEX_BLUE"Besitzer: "COLOR_HEX_WHITE"%s\nTippe "COLOR_HEX_BLUE"/flag"COLOR_HEX_WHITE" um die Flagge einzunehmen.",GetZoneBesitzer(Gangfight[i][gBesitzer]));
    Create3DTextLabel(string,COLOR_WHITE,-1469.5957,1489.5872,8.2578,10.0,0);
    format(string,sizeof(string),""COLOR_HEX_BLUE"Flag B\n"COLOR_HEX_BLUE"Besitzer: "COLOR_HEX_WHITE"%s\nTippe "COLOR_HEX_BLUE"/flag"COLOR_HEX_WHITE" um die Flagge einzunehmen.",GetZoneBesitzer(Gangfight[i][gBesitzer]));
    Create3DTextLabel(string,COLOR_WHITE,-1364.9045,1489.3871,11.0391,10.0,0);
    format(string,sizeof(string),""COLOR_HEX_BLUE"Flag C\n"COLOR_HEX_BLUE"Besitzer: "COLOR_HEX_WHITE"%s\n"COLOR_HEX_WHITE"Tippe "COLOR_HEX_BLUE"/flag"COLOR_HEX_WHITE" um die Flagge einzunehmen.",GetZoneBesitzer(Gangfight[i][gBesitzer]));
    Create3DTextLabel(string,COLOR_WHITE,-1424.4171,1490.3320,1.8672,10.0,0);
    }

    Danke dir, werde sicherlich noch einige Fragen und Probleme für das System, hier im Thread verfassen.
    Würdest du mir zufällig erklären, was genau diese Änderung bewirkt?
    //e:
    Weißt du warum die Zone als Rosa angezeigt wird? Fraktion 7 obwohl in der Datenbank als Besitzer 2 eingetragen ist?
    stock GetZoneColor(faction)
    {
    if(faction == 2) return 0x5A5A5AFF;
    else if(faction == 4) return 0x00BC00FF;
    else if(faction == 6) return 0xDCDCDCFF;
    else if(faction == 7) return 0xFF00FFFF;
    else if(faction == 8) return 0xFFBE00FF;
    else return 0;
    }

    So, bei deinem ersten Code wird mir die Zone angezeigt.
    Habe das ganze also mal geprintet, hier mal die Log.


    Der Code wird auch 10 mal durchgegangen, weil ich MAX_GANGFIGHT für maximal 10 Zonen definiert habe.
    new GangfightZone[MAX_GANGFIGHT];
    enum g_GangfightData
    {
    gID,
    Float:minX,
    Float:minY,
    Float:maxX,
    Float:maxY,
    gAngriff,
    gPunkteTeam1,
    gPunkteTeam2,
    gFlag1,
    gFlag2,
    gFlag3,
    gBesitzer
    }
    new Gangfight[MAX_GANGFIGHT][g_GangfightData];

    Wie kriege ich die Nachricht untereinander, wenn mehrere online sind?
    CMD:members(playerid,params[])
    {
    if(!IsLoggedIn(playerid))return 1;
    if(Spieler[playerid][pFraktion] == 0)return SendClientMessage(playerid,COLOR_GREY,"** Du bist in keiner Fraktion.");
    new string[128];
    SendClientMessage(playerid,COLOR_GREEN,"__Members online:__");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][pFraktion] == Spieler[playerid][pFraktion])
    {
    format(string,sizeof(string),"%s: Rang: %d",GetName(i),Spieler[i][pRank]);
    }
    }
    }
    SendClientMessage(playerid,COLOR_DEPARTMENT, string);
    return 1;
    }


    Wird immer nur einer angezeigt, wenn ich den dann umschreibe werden die nur nacheinander angezeigt.
    Den Zeilenumbruch kann ich in einer SendClientMessage ja nicht verwenden..

    Kaliber:
    Dann gibt er mir den Fehler warning 225: unreachable code bei den returns aus.
    Bei den Fraktionsfahrzeugen funktioniert es, nur die anderen Kategorien wollen nicht so recht...


    CMD:motor(playerid)
    {
    if(!IsLoggedIn(playerid))return 1;
    new string[128];
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "** Du befindest dich in keinem Fahrzeug.");
    new vehicleid = GetPlayerVehicleID(playerid);
    if(pRefillVehicle[playerid] == 1)return SendClientMessage(playerid, COLOR_GREY, "** Du kannst den Motor nicht anschalten während du das Fahrzeug tankst!");
    if(IsAFahrrad(GetVehicleModel(vehicleid)))return SendClientMessage(playerid, COLOR_GREY, "** Dieses Fahrrad hat keinen Motor!");
    if(Vehicle[vehicleid][vehFuel] <= 0.0)return SendClientMessage(playerid, COLOR_GREY, "** Das Fahrzeug hat kein Benzin mehr!");
    if(!(IsAFraktionsVeh(vehicleid) == INVALID_VEHICLE_ID))
    {
    if(IsValidVehicle(vehicleid))
    {
    new fV = IsAFraktionsVeh(vehicleid);
    if(Spieler[playerid][pFraktion] == fVehicle[fV][vehFraktion])
    {
    if(Vehicle[fVehicle[fV][vehID]][vehMotor] == false)
    {
    Vehicle[fVehicle[fV][vehID]][vehMotor] = true;
    GetVehicleParamsEx(fVehicle[fV][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(fVehicle[fV][vehID], VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
    format(string, sizeof(string), "%s startet den Motor seines Fahrzeuges", GetName(playerid));
    SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 7500);
    Vehicle[fVehicle[fV][vehID]][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", fVehicle[fV][vehID]);
    return 1;
    }
    else if(Vehicle[fVehicle[fV][vehID]][vehMotor] == true)
    {
    Vehicle[fVehicle[fV][vehID]][vehMotor] = false;
    GetVehicleParamsEx(fVehicle[fV][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(fVehicle[fV][vehID], VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du stellst den Motor ab.");
    KillTimer(Vehicle[fVehicle[fV][vehID]][VehicleTimer]);
    return 1;
    }
    }
    return SendClientMessage(playerid, COLOR_GREY, "** Du besitzt keine Schlüssel für dieses Fahrzeug.");
    }
    }
    for(new slot,i=playerid; slot<MAX_PLAYER_VEHICLES; slot++)
    {
    if(vehicleid != PrivateVehicle[i][slot][vehID]) continue;
    GetVehicleParamsEx(PrivateVehicle[i][slot][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
    if(Vehicle[PrivateVehicle[i][slot][vehID]][vehMotor] == false)
    {
    Vehicle[PrivateVehicle[i][slot][vehID]][vehMotor] = true;
    SetVehicleParamsEx(PrivateVehicle[i][slot][vehID], VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
    format(string, sizeof(string), "%s startet den Motor seines Fahrzeuges", GetName(playerid));
    SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 7500);
    Vehicle[PrivateVehicle[i][slot][vehID]][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", PrivateVehicle[i][slot][vehID]);
    return 1;
    }
    Vehicle[PrivateVehicle[i][slot][vehID]][vehMotor] = false;
    SetVehicleParamsEx(PrivateVehicle[i][slot][vehID], VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du stellst den Motor ab.");
    KillTimer(Vehicle[PrivateVehicle[i][slot][vehID]][VehicleTimer]);
    return 1;
    }
    return SendClientMessage(playerid, COLOR_GREY, "** Du besitzt keine Schlüssel für dieses Fahrzeug.");
    if(vehicleid == Spieler[playerid][pBusID])
    {
    if(Vehicle[Spieler[playerid][pBusID]][vehMotor] == false)
    {
    Vehicle[Spieler[playerid][pBusID]][vehMotor] = true;
    GetVehicleParamsEx(Spieler[playerid][pBusID], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(Spieler[playerid][pBusID], VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
    format(string, sizeof(string), "%s startet den Motor seines Fahrzeuges", GetName(playerid));
    SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 7500);
    Vehicle[Spieler[playerid][pBusID]][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", Spieler[playerid][pBusID]);
    return 1;
    }
    else if(Vehicle[Spieler[playerid][pBusID]][vehMotor] == true)
    {
    Vehicle[Spieler[playerid][pBusID]][vehMotor] = false;
    GetVehicleParamsEx(Spieler[playerid][pBusID], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(Spieler[playerid][pBusID], VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du stellst den Motor ab.");
    KillTimer(Vehicle[Spieler[playerid][pBusID]][VehicleTimer]);
    return 1;
    }
    }
    //return SendClientMessage(playerid, COLOR_GREY, "** Du besitzt keine Schlüssel für dieses Fahrzeug.");
    if(vehicleid == Spieler[playerid][pBike])
    {
    if(Vehicle[Spieler[playerid][pBike]][vehMotor] == false)
    {
    Vehicle[Spieler[playerid][pBike]][vehMotor] = true;
    GetVehicleParamsEx(Spieler[playerid][pBike], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(Spieler[playerid][pBike], VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
    format(string, sizeof(string), "%s startet den Motor seines Fahrzeuges", GetName(playerid));
    SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 7500);
    Vehicle[Spieler[playerid][pBike]][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", Spieler[playerid][pBike]);
    return 1;
    }
    else if(Vehicle[Spieler[playerid][pBike]][vehMotor] == true)
    {
    Vehicle[Spieler[playerid][pBike]][vehMotor] = false;
    GetVehicleParamsEx(Spieler[playerid][pBike], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(Spieler[playerid][pBike], VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du stellst den Motor ab.");
    KillTimer(Vehicle[Spieler[playerid][pBike]][VehicleTimer]);
    return 1;
    }
    }
    //return SendClientMessage(playerid, COLOR_GREY, "** Du besitzt keine Schlüssel für dieses Fahrzeug.");
    if(vehicleid == Spieler[playerid][pFSVehicle])
    {
    if(IsValidVehicle(Spieler[playerid][pFSVehicle])){
    if(Vehicle[Spieler[playerid][pFSVehicle]][vehMotor] == false)
    {
    Vehicle[Spieler[playerid][pFSVehicle]][vehMotor] = true;
    GetVehicleParamsEx(Spieler[playerid][pFSVehicle], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(Spieler[playerid][pFSVehicle], VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
    format(string, sizeof(string), "%s startet den Motor seines Fahrzeuges", GetName(playerid));
    SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 7500);
    Vehicle[Spieler[playerid][pFSVehicle]][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", Spieler[playerid][pFSVehicle]);
    return 1;
    }
    else if(Vehicle[Spieler[playerid][pFSVehicle]][vehMotor] == true)
    {
    Vehicle[Spieler[playerid][pFSVehicle]][vehMotor] = false;
    GetVehicleParamsEx(Spieler[playerid][pFSVehicle], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(Spieler[playerid][pFSVehicle], VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du stellst den Motor ab.");
    KillTimer(Spieler[playerid][pFSVehicle]);
    return 1;
    }
    }
    }
    //return SendClientMessage(playerid, COLOR_GREY, "** Du besitzt keine Schlüssel für dieses Fahrzeug.");
    }

    Habe noch eine kleine Frage hierzu:
    for(new i=0;i<GetMaxPlayers();i++)
    {
    for(new slot = 0;slot<MAX_PLAYER_VEHICLES;slot++)
    {
    if(vehicleid == PrivateVehicle[i][slot][vehID])
    {
    if(Vehicle[PrivateVehicle[i][slot][vehID]][vehMotor] == false)
    {
    Vehicle[PrivateVehicle[i][slot][vehID]][vehMotor] = true;
    GetVehicleParamsEx(PrivateVehicle[i][slot][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(PrivateVehicle[i][slot][vehID], VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
    format(string, sizeof(string), "%s startet den Motor seines Fahrzeuges", GetName(playerid));
    SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 25.0, 7500);
    Vehicle[PrivateVehicle[i][slot][vehID]][VehicleTimer] = SetTimerEx("OnVehicleTimer", 1136, 1, "i", PrivateVehicle[i][slot][vehID]);
    return 1;
    }
    else if(Vehicle[PrivateVehicle[i][slot][vehID]][vehMotor] == true)
    {
    Vehicle[PrivateVehicle[i][slot][vehID]][vehMotor] = false;
    GetVehicleParamsEx(PrivateVehicle[i][slot][vehID], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(PrivateVehicle[i][slot][vehID], VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du stellst den Motor ab.");
    KillTimer(Vehicle[PrivateVehicle[i][slot][vehID]][VehicleTimer]);
    return 1;
    }
    return SendClientMessage(playerid, COLOR_GREY, "** Du besitzt keine Schlüssel für dieses Fahrzeug.");
    }
    }
    }


    Derzeit kann jeder mit privaten Fahrzeugen fahren. Ist der return falsch gesetzt?

    Warum geht das Tor bitte nicht auf? Die Server Log printet richtig.
    CMD:auf(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid, 10.0, 244.11, 72.45, 1002.00))
    {
    if(Spieler[playerid][pFraktion] != 1)return
    MoveDynamicObject(LSPDObj[1], 247.5598, 72.4479, 1002.0016, 3);
    SetTimer("LSPDTor2",5000,0);
    printf("Tor 2-2");
    }
    return 1;
    }


    public LSPDTor2()
    {
    MoveDynamicObject(LSPDObj[1], 244.11, 72.45, 1002.00, 3);
    printf("Tor 2");
    return 1;
    }


    Gruß,
    Cheevy

    Hier ist die MySQL-Log.