Befehl an bestimmter Uhrzeit benutzen - funktioniert nicht.

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
  • Hi, ich habe ein Problem mit nem Befehl der zwischen 12 und 14 Uhr sein soll, wenn es die Uhrzeit sein soll funktioniert es nicht.. wieso?


    Der Befehl:


    if(strcmp(cmdtext,"/gangwar",true)==0){
    new tmphour;
    if ((tmphour > ghour) || (tmphour > 12 && ghour < 14))
    {
    if(IsAFightFaction(GetPlayerFaction(playerid))){
    for(new fs;fs<sizeof(FightSystem);fs++){
    if((FightSystem[fs][fsOwnerFaction] == GetPlayerFaction(playerid) && FightSystem[fs][fsFightTime]) || FightSystem[fs][fsAttackFaction] == GetPlayerFaction(playerid))
    return SendClientMessage(playerid,FS_COL_GREY,"Dieses Gebiet wird bereits von deiner Fraktion angegriffen.");
    }
    new on[2];
    on[0] = 0;
    on[1] = 0;
    for(new fs;fs<sizeof(FightSystem);fs++){
    for(new p=0;p<MAX_PLAYERS;p++)
    {
    if(GetPlayerFaction(p) == FightSystem[fs][fsOwnerFaction]) {
    on[0]++;
    }
    if(GetPlayerFaction(p) == GetPlayerFaction(playerid))
    {
    on[1]++;
    }
    }
    }
    //if(testphase == 0) {
    // if(on[0] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Es sind nicht genügend Gegner Online (mindestens 3)");
    // if(on[1] <= 2) return SendClientMessage(playerid, COLOR_WHITE, "Es sind nicht genügend Mitglieder deiner Fraktion Online (mindestens 3)");
    //}
    new TempZone = GetPlayerFightzone(playerid);
    if(TempZone != -255){
    if(FightSystem[TempZone][fsFightTimeCool] != 0) {
    format(stringx, sizeof(stringx), "Das Gebiet kann erst wieder in ca. %d Minuten erobert werden.", FightSystem[TempZone][fsFightTimeCool]);
    return SendClientMessage(playerid, FS_COL_GREY,stringx);
    }


    if(!IsAFightFaction(FightSystem[TempZone][fsOwnerFaction]))
    return SendClientMessage(playerid,FS_COL_GREY,"Gebiet wurde ausgeschaltet.");
    if(FightSystem[TempZone][fsOwnerFaction] == GetPlayerFaction(playerid))
    return SendClientMessage(playerid,FS_COL_GREY,"** Man greift nicht seine eigenen Leute an.");
    if(FightSystem[TempZone][fsFightTime] || FightSystem[TempZone][fsAttackFaction] != -255)
    return SendClientMessage(playerid,FS_COL_GREY,"** In diesem Gebiet wird bereits geschossen.");
    if(FightSystem[TempZone][fsLastFight]){
    new fsText[178];
    format(fsText,sizeof(fsText),"Ganggebiet: Dieses Ganggebiet wurde bereits Angegriffen, wartet noch: '%d' Minuten.",FightSystem[TempZone][fsLastFight]);
    SendClientMessage(playerid,FS_COL_GREY,fsText);
    return 1;
    }
    for(new fs;fs<sizeof(FightSystem);fs++){
    if(FightSystem[fs][fsOwnerFaction] == FightSystem[TempZone][fsOwnerFaction] && (FightSystem[fs][fsFightTime] || FightSystem[fs][fsAttackFaction] != -255))
    return SendClientMessage(playerid,FS_COL_GREY,"Ganggebiet: Die Gang / Mafia der das Ganggebiet gehört hat bereits ein Kampf.");
    }
    new fsTextToOwner[255];
    format(fsTextToOwner,sizeof(fsTextToOwner),"Gangwar - Verteidiger");
    new fsName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,fsName,MAX_PLAYER_NAME);
    new fsTextToAttack[255];
    format(fsTextToAttack,sizeof(fsTextToAttack),"Gangwar - Angreifer");
    new fsText[64];
    format(fsText,sizeof(fsText),"~y~%s",GetFactionNameOfFaction(FightSystem[TempZone][fsOwnerFaction]));
    TextDrawSetString(FightSystem[TempZone][fsWinFaction],fsText);
    TextDrawSetString(FightSystem[TempZone][fsWinKills],"~y~00 Punkte");
    format(fsText,sizeof(fsText),"~y~%s",GetFactionNameOfFaction(GetPlayerFaction(playerid)));
    TextDrawSetString(FightSystem[TempZone][fsLoseFaction],fsText);
    TextDrawSetString(FightSystem[TempZone][fsLoseKills],"~y~00 Punkte");
    TextDrawSetString(FightSystem[TempZone][fsTime],"Verbl. Zeit: 30 Minuten");//ZEIT



    for(new i;i<MAX_PLAYERS;i++){
    if(IsPlayerConnected(i)){
    GangZoneFlashForPlayer(i,FightSystem[TempZone][fsZoneID],GetZoneColorOfFaction(GetPlayerFaction(playerid)));
    if(GetPlayerFaction(i) == FightSystem[TempZone][fsOwnerFaction]){
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,FS_COL_YELLOW,fsTextToOwner);


    TextDrawShowForPlayer(i,Fight);
    TextDrawShowForPlayer(i,FightUnderline);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinFaction]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinKills]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseFaction]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseKills]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsTime]);
    }
    if(GetPlayerFaction(i) == GetPlayerFaction(playerid)){
    PlayerPlaySound(i,1058,0.0,0.0,0.0);
    SendClientMessage(i,FS_COL_YELLOW,fsTextToAttack);


    TextDrawShowForPlayer(i,Fight);
    TextDrawShowForPlayer(i,FightUnderline);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinFaction]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsWinKills]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseFaction]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsLoseKills]);
    TextDrawShowForPlayer(i,FightSystem[TempZone][fsTime]);
    }
    }
    }
    FightSystem[TempZone][fsAttackFaction] = GetPlayerFaction(playerid);
    FightSystem[TempZone][fsKillsOfOwner] = 0;
    FightSystem[TempZone][fsKillsOfAttack] = 0;
    FightSystem[TempZone][fsFightTime] = 30;//ZEIT
    FightSystem[TempZone][fsFightTimeCool] = 60;//ZEIT
    FightSystem[TempZone][fsCTF][0] = -255;
    FightSystem[TempZone][fsCTF][1] = 0;
    FightSystem[TempZone][fsCTF][2] = 0;
    return 1;
    }return SendClientMessage(playerid,FS_COL_GREY,"** Du bist in keinem Gebiet!");
    }else SendClientMessage(playerid,FS_COL_GREY,"** Du bist in keiner Gang / Mafia.");
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY,"Du kannst den Befehl /gangwar nur zwischen 18 und 20 Uhr benutzen!");
    }
    return 1;
    }

    Mit freundlichen Grüßen,
    rndy

  • Damit fange ich in dem Zusammenhang nicht wirklich was an. Ich nehme an, du willst die echte Zeit nehmen, dann ändere:
    new tmphour;
    if ((tmphour > ghour) || (tmphour > 12 && ghour < 14))


    Zu
    new h, m, s;
    gettime(h, m, s);
    if(h >= 12 && h < 14)