Etwas einstellen

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
  • Hey Leute. Wie kann ich einstellen das man die Zone erst jede 2 Stunden einnehmen kann und das mindestens 1 der Gang der die Zone besitzt Online sein muss.
    Es ist sehr wichtig für mich.
    if(strcmp(cmd,"/zoneeinnehmen",true) == 0)
    {
    if(!IsPlayerInAnyGang(playerid))
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Gang, die Gangzonen einnehmen darf!");
    return 1;
    }
    new pgang = GetPlayerFrac(playerid);
    new pzone = GetPlayerCurrentZone(playerid);
    if(pzone == -1)
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist in keiner einnehmbaren Gangzone!");
    return 1;
    }
    if(Zonen[pzone][Angreifer] != -1)
    {
    SendClientMessage(playerid,COLOR_RED,"Die Gangzone wird bereits angegriffen!");
    return 1;
    }
    if(Zonen[pzone][CurrentOwner] == pgang)
    {
    SendClientMessage(playerid,COLOR_RED,"Diese Gangzone gehört bereits deine Gang!");
    return 1;
    }
    Zonen[pzone][Angreifer] = pgang;
    Zonen[pzone][AngriffsTimer] = SetTimerEx("OnAttackSuccess",320000,0,"d",pzone);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) &&!IsPlayerNPC(i))
    {
    if(GetPlayerFrac(i) == Zonen[pzone][CurrentOwner])
    {
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    SendClientMessage(i,COLOR_YELLOW," Eine Gangzone wird angegriffen. Begib dich schnell zur Zone und benutze /zoneverteidigen!");
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    }
    if(GetPlayerFrac(i) == Zonen[pzone][Angreifer])
    {
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    SendClientMessage(i,COLOR_YELLOW," Deine Gang nimmt gerade eine Gangzone ein. Helf ihnen dabei die Verteidiger auszuschalten!");
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    }
    }
    }
    SaveZones();
    UpdateZones();
    return 1;
    }
    Gruß,
    Ramiz

    Um es mit den Worten eines bestimmten Users zu sagen


    Halo kann i Armin werde bei euch ich habe auch teamspek un samp inslliert

  • Ganz am Anfang des Scriptes fügst du folgendes ein:
    new GangZonesFight[99];
    Also nicht Zeile 1, sondern eben dann Zeile 20 oder 30 ^^


    if(!strcmp(cmd, "/zoneeinnehmen", true))
    {
    new pgang = GetPlayerFrac(playerid),
    pzone = GetPlayerCurrentZone(playerid);
    if(!IsPlayerInAnyGang(playerid))
    return SendClientMessage(playerid, COLOR_RED, "Du bist in keiner Gang, die Gangzonen einnehmen darf!");
    if(pzone == -1)
    return SendClientMessage(playerid, COLOR_RED, "Du bist in keiner einnehmbaren Gangzone!");
    if(Zonen[pzone][Angreifer] != -1)
    return SendClientMessage(playerid, COLOR_RED, "Die Gangzone wird bereits angegriffen!");
    if(Zonen[pzone][CurrentOwner] == pgang)
    return SendClientMessage(playerid, COLOR_RED, "Diese Gangzone gehört bereits deine Gang!");
    if(GangZonesFight[pzone] >= gettime())
    return SendClientMessage(playerid, COLOR_RED, "Diese Gangzone wurde in den letzten 2 Stunden bereits angegriffen!");
    Zonen[pzone][Angreifer] = pgang;
    Zonen[pzone][AngriffsTimer] = SetTimerEx("OnAttackSuccess", 320000, 0, "d", pzone);
    GangZonesFight[pzone] = gettime() + (60 * 60 * 2);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
    if(GetPlayerFrac(i) == Zonen[pzone][CurrentOwner])
    {
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    SendClientMessage(i,COLOR_YELLOW," Eine Gangzone wird angegriffen. Begib dich schnell zur Zone und benutze /zoneverteidigen!");
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    }
    if(GetPlayerFrac(i) == Zonen[pzone][Angreifer])
    {
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    SendClientMessage(i,COLOR_YELLOW," Deine Gang nimmt gerade eine Gangzone ein. Helf ihnen dabei die Verteidiger auszuschalten!");
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    }
    }
    }
    SaveZones();
    UpdateZones();
    return 1;
    }

    Miete mich (nicht) :love:

  • Sorry.
    Hatte ich überlesen.


    if(!strcmp(cmd, "/zoneeinnehmen", true))
    {
    new pgang = GetPlayerFrac(playerid),
    pzone = GetPlayerCurrentZone(playerid),
    Counter = 0;
    if(!IsPlayerInAnyGang(playerid))
    return SendClientMessage(playerid, COLOR_RED, "Du bist in keiner Gang, die Gangzonen einnehmen darf!");
    if(pzone == -1)
    return SendClientMessage(playerid, COLOR_RED, "Du bist in keiner einnehmbaren Gangzone!");
    if(Zonen[pzone][Angreifer] != -1)
    return SendClientMessage(playerid, COLOR_RED, "Die Gangzone wird bereits angegriffen!");
    if(Zonen[pzone][CurrentOwner] == pgang)
    return SendClientMessage(playerid, COLOR_RED, "Diese Gangzone gehört bereits deine Gang!");
    if(GangZonesFight[pzone] >= gettime())
    return SendClientMessage(playerid, COLOR_RED, "Diese Gangzone wurde in den letzten 2 Stunden bereits angegriffen!");
    for(new x, x < MAX_PLAYERS; x++)
    if(GetPlayerFrac(x) == Zonen[pzone][CurrentOwner])
    Counter++;
    if(Counter < 1)
    return SendClientMessage(playerid, COLOR_RED, "Mindestens ein Gegner muss online sein!");
    Zonen[pzone][Angreifer] = pgang;
    Zonen[pzone][AngriffsTimer] = SetTimerEx("OnAttackSuccess", 320000, 0, "d", pzone);
    GangZonesFight[pzone] = gettime() + (60 * 60 * 2);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
    if(GetPlayerFrac(i) == Zonen[pzone][CurrentOwner])
    {
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    SendClientMessage(i,COLOR_YELLOW," Eine Gangzone wird angegriffen. Begib dich schnell zur Zone und benutze /zoneverteidigen!");
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    }
    if(GetPlayerFrac(i) == Zonen[pzone][Angreifer])
    {
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    SendClientMessage(i,COLOR_YELLOW," Deine Gang nimmt gerade eine Gangzone ein. Helf ihnen dabei die Verteidiger auszuschalten!");
    SendClientMessage(i,COLOR_YELLOW,"-------------------------------------------------------------------------------------------------");
    }
    }
    }
    SaveZones();
    UpdateZones();
    return 1;
    }

    Miete mich (nicht) :love:

    Einmal editiert, zuletzt von Bubelbub () aus folgendem Grund: [(Fix)]

  • Du bist Hammer Bubelbub :)
    Hast du eine Ahnung warum es immer nur 1 Zone Speichert? Undzwar die letzt eingenommene :
    public SaveZones()
    {
    new str[128];
    for(new z=0; z<ZONEN_ANZAHL; z++)
    {
    format(str,sizeof(str),"%s%d|\n",str,Zonen[z][CurrentOwner]);
    }
    new File: file = fopen(OWNER_DATEI,io_write);
    fwrite(file,str);
    fclose(file);
    return 1;
    }


    Außerdem Kommen Errors beim Compilen:
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : error 021: symbol already defined: "x"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : warning 206: redundant test: constant expression is non-zero
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17280) : error 017: undefined symbol "i"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : warning 203: symbol is never used: "x"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279 -- 17282) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    for(new x, x < MAX_PLAYERS; x++)
    if(GetPlayerFrac(i) == Zonen[pzone][CurrentOwner])



    /editiert

    Um es mit den Worten eines bestimmten Users zu sagen


    Halo kann i Armin werde bei euch ich habe auch teamspek un samp inslliert

  • public SaveZones()
    {
    new str[128];
    for(new z = 0; z < ZONEN_ANZAHL; z++)
    {
    format(str, sizeof str, "%s\n%d", str, Zonen[z][CurrentOwner]);
    }
    new File:file = fopen(OWNER_DATEI, io_write);
    fwrite(file, str);
    fclose(file);
    return 1;
    }
    Ist schwer zu sagen woran es da liegt.
    Lade mal die OWNER_DATEI hoch ^^


    for(new x, x < MAX_PLAYERS; x++)
    if(GetPlayerFrac(x) == Zonen[pzone][CurrentOwner])


    und vielleicht, da da ein Warning kommt, einfach noch:


    /* for(new x, x < MAX_PLAYERS; x++)
    if(GetPlayerFrac(x) == Zonen[pzone][CurrentOwner])*/

    Miete mich (nicht) :love:

  • Die Ownerdatei ist nichts als eine Ini Datei wo nichts drinnen ist
    PS: Oben ist ein Error gekommen:

    Code
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : error 021: symbol already defined: "x"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : warning 206: redundant test: constant expression is non-zero
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : warning 203: symbol is never used: "x"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279 -- 17282) : warning 225: unreachable code
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.


    //editiert

    Um es mit den Worten eines bestimmten Users zu sagen


    Halo kann i Armin werde bei euch ich habe auch teamspek un samp inslliert

  • Ich glaub mein Script mag dich irgendwie nicht xD
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : error 017: undefined symbol "x"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : error 017: undefined symbol "x"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17280) : error 017: undefined symbol "x"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.

    Um es mit den Worten eines bestimmten Users zu sagen


    Halo kann i Armin werde bei euch ich habe auch teamspek un samp inslliert

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Nächster Error X(


    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : error 021: symbol already defined: "x"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : warning 206: redundant test: constant expression is non-zero
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279) : warning 204: symbol is assigned a value that is never used: "x"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17279 -- 17282) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    //edit: Ich habe es bei allen X versucht immer unterschiedliche Errors oder wie der gerade oben 8|

    Um es mit den Worten eines bestimmten Users zu sagen


    Halo kann i Armin werde bei euch ich habe auch teamspek un samp inslliert

  • Das nur das Letzte Gebiet gespeichert wird liegt daran das du außerhalb der schleife In die Datei schreibst...
    Erst die Datei öffnen, dann mit der schleife formatieren und reinschreiben und nach der Schleife schließen


    Warum steht eig str mit in dem String der gespeichert werden soll? Man würde es doppelt schreiben was unsinnig wäre...


    //Edit Format fehler beseitigt

    public SaveZones()
    {
    new str[128];
    new File:file = fopen(OWNER_DATEI, io_write);
    for(new z = 0; z < ZONEN_ANZAHL; z++)
    {
    format(str, sizeof str, "%d|%s\n", z, Zonen[z][CurrentOwner]);
    fwrite(file, str);
    }
    fclose(file);
    return 1;
    }

    So würde in der Datei stehen:
    0|Niemand
    1|Balls
    oder wie sie alle heißen...

  • Leider nächster Error


    Code
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17282) : error 021: symbol already defined: "p"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17282) : warning 206: redundant test: constant expression is non-zero
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17282) : warning 203: symbol is never used: "p"
    C:\Dokumente und Einstellungen\LUPO\Desktop\GF-edit\gamemodes\DDG.pwn(17282 -- 17285) : warning 225: unreachable code
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.

    Um es mit den Worten eines bestimmten Users zu sagen


    Halo kann i Armin werde bei euch ich habe auch teamspek un samp inslliert