Zonen

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
  • Guten Abend,
    Ich mölchte eine Zone erstellen, wenn man dort in ein Pickup läuft, soll ein Timer erstellt werden...
    Wenn ich dort 10 Sekunden drin war ohne zu sterben soll dir Zone mir gehören.


    Fragen:


    1. Wie mache ich das die Zone für alle Angreifbar/Einnehmbar ist ?
    2. Wie mache ich es das wenn z.b. Team 1 die Zone hat Blau leutet & wenn sie Team 2 hat Grün leutet?
    3. Wie mache ich das die Zone während dem Einnehmen abwechselt mit dem Farben des Angreifers und des Verteidigers Blinkt?



    Würde mich über jede Antwort freuen.


    Mit freundlichen Grüßen
    BlackxSoul

  • 1. Die hast dir so gesehen oben schon beantwortest


    2. Du solltest die informationen der Zonen wer Owner ist in einem file oder per MySQL speichern etc... zu dem zum anzeigen der Zonen diese werden erstellt unter OnGameModeInit
    mit GangZoneCreate(Float:minx, Float:miny, Float:maxx, Float:maxy);
    http://wiki.sa-mp.com/wiki/GangZoneCreate
    um diese anzuzeigen kannst du wenn der Spieler auf deinen Server connected also beiOnPlayerConnect die Zone anzeigen lassen per
    GangZoneShowForPlayer(playerid, zone, color);
    http://wiki.sa-mp.com/wiki/GangZoneShowForPlayer


    3. Dazu gibt es wieder eine Fnktion die sich
    GangZoneFlashForAll((zone, flashcolor);
    http://wiki.sa-mp.com/wiki/GangZoneFlashForAll
    nennt das ganze kannst du auch wieder mit
    GangZoneStopFlashForPlayer(playerid, zone);
    http://wiki.sa-mp.com/wiki/GangZoneStopFlashForPlayer
    stoppen. Dabei blinkt die Zone mit der Grundfarbe der Zone also womit sie angezeigt wird auf der Map und der Farbe welche du bei der Parameter color rein schreibt dies sind
    umgestellt ARGB codes 0xFF000096 sollte RGBA sein .



    Zum ändern der Farbe benutzt du
    GangZoneShowForAll(zoneid,farbe); nur solltest du alle daten während des GMs in einem array Temporär speichern.


  • Wie speichere ich die Zonen am Besten dann über Dini ab?

  • Wärst du so nett und machst mir ein beispiel zu einer Zone?
    Wäre echt extrem nett von dir ;)


    in wie fern ein beispiel also ich würde das mit dem standart filesystem machen und dne inhalt splitten mit sscanf.



    #define STR_LEN 64
    new GFDATASTR[STR_LEN];
    stock LoadZoneInfo(){
    if(!fexist("File.txt"))return print("File.txt missing");
    new File:gfdata = fopen("File.txt", io_read),i;
    while(fread(gfdata,GFDATASTR)){
    sscanf(GFDATASTR,"....",GFInfo[i]);
    ++i;
    }
    fclose(gfdata);
    return print("Gangfightinfos loaded");
    }
    stock SaveZoneInfo(){
    new i,File:gfdata = fopen("File.txt", io_write);
    for(; i < MAX_ZONE; ++i){
    if (fexist("File.txt")){
    strdel(GFDATASTR,0,STR_LEN);
    format(GFDATASTR,STR_LEN,"%d|...\r\n",);
    fwrite(gfdata, GFDATASTR);
    }
    }
    fclose(gfdata);
    return print("Gangfightinfos saved");
    }


    ein beispiel



  • Ich meine ein Beispiel für eine komplette Zone das ich mal etwas habe um es dann selbst zu testen

  • Ich versteh grundlegend nicht wo jetzt dort speziel das problem sein sollte ich hab dir oben einen text geschrieben dort sind links enthalten und man hat die möglichkeit sich die Informationen zusammen zu suchen und sich das wissen auch selbst anzueignen

  • Ich versteh grundlegend nicht wo jetzt dort speziel das problem sein sollte ich hab dir oben einen text geschrieben dort sind links enthalten und man hat die möglichkeit sich die Informationen zusammen zu suchen und sich das wissen auch selbst anzueignen


    War ja nur eine Frage, musst du ja nicht machen ;)