Beiträge von TehEbil

    Test und Tor, dann mit einer anderen Funktion diese nutzen, bsp.:


    #define Test Tor
    GangZoneFlashForAll(Gebiet[Test], GetFarbe()); // ähnlich aus meinem script, wird ein Gebiete(gangfight)script.


    Und mithilfe der Funktion soll das dann geregelt werden, jedoch wenn ich statt #define die Funktion nehme, geht es nicht, obwohl die funktion stimmen müsste.

    genau das habe ichi gemacht :D


    in manchen Fällen auch gut gegangen, nur bei einem Fall hab ich halt ein Problem, und zwar ich möchte es dynamisch machen:


    Spieler gibt was ein, dann wird durch funktion ein Wert unter gewissen Umständen zurückgegeben.


    meine Variable / Array sieht so aus:


    Geld[Benutzer][Objekt] // frei erfunden.


    das Objekt ist das Resultat der Funktion, oben habe ich ein enum, mit verschiedenen Objekten. Nehmen wir als Beispiel: Tor.


    Geld[Benutzer][Tor]


    jetzt möchte ich meine Funktion "Tor" returnen lassen, daher habe ich es so versucht:


    #define Test Tor // ganz am Anfang, sonst kommt ne Fehlermeldung.


    dann wird vor der 1. Abfrage dieser Var die Funktion aufgerufen, diese sieht in etwa wie in folgt aus:


    stock funktion()
    {
    if...
    #undef Test
    #define Test Tor
    ...
    }


    und Abfrage anstatt Tor dann halt [Test].


    Bei diesem ist es noch möglich, aber ich habe irgendwie bemerkt, dass die defines innerhalb der Funktion bleiben, //durch austesten i.v.m anderen Funktionen, kann aber auch sein, dass es einfach nur diese Funktion war, in der es nicht geht oder sonstiger Fehler
    daher brauch ich eine andere Variante. Habe es auch schon versucht, mithilfe einer Var zu lösen, jedoch ebenfalls ohne Erfolg. Außerdem ist vieles in meinem Script überflüssig, ich mache immer so viele Variablen, und weiß nicht, ob man da oben noch ne Menge optimieren kann oder diese auch so zu gebrauchen sind wie ich sie da erstellt habe ^^


    Danke für deine Antwort.


    MfG


    PS: Das mit dem Optimieren hab ich natürlich schon angeguckt und bin erstaunt davon, aber mit optimieren meinte ich bei mir was anderes, DAS Optimieren kommt erst am Ende des Scriptes ^^ btw.: Im moment verwende ich da noch das lästige str... ist im Gamemod auch noch, und dies ist ein fs dazu, wird später mit dem GM geändert.

    Keine scriptwunscherfüllung, aber einen Anreiz:


    Du machst nen Timer, der macht dann folgendes:
    1. x und y koordinaten in var speichern
    2. warten
    3. x und y koordinaten in var2 speichern
    4. var mit var2 vergleichen und dann if fall 1 dann vorwärts else fall 2 rückwärts.


    mfg

    Guten Abend liebe Breadfishler,
    ich suche Jemanden, der sich so mindestens mittelgut auskennt in Sachen von Optimierung und Funktionen, heißt also, man soll nicht denselben Mi** 5x abfragen und daher ne Funktion bauen, die dann abgerufen werden kann.


    Das Script kann ich hier nicht posten, da es zurzeit für einen Server dient, später werde ich es dann veröffentlichen, falls der Server down geht.


    Mich würde es freuen, falls Teamviewer + TS3 mitgebracht wird :)


    MfG, TehEbil.


    Edit:
    Hier mal ein Beispiel:


    #define TestGebiet BssGebiet // ohne gibt warning


    enum spezGebiet
    {
    LvGebiet,
    LsGebiet,
    };


    enum spezGangfight
    {
    Aktiv,
    Besitzer
    };


    new Gebiet[spezGebiet];
    new Gangfight[spezGangfight][spezGebiet];



    if(strcmp("/befehl", cmdtext, true) == 0)
    {
    //#define TestGebiet LsGebiet
    GetGebiet(playerid);
    if(Gangfight[Aktiv][TestGebiet] == 1)
    {
    ...
    }
    }


    if(strcmp("/befehl2", cmdtext, true) == 0)
    {
    GetGebiet(playerid);
    if(gTeam[playerid] == Gangfight[Besitzer][TestGebiet])
    {
    SendClientMessage(playerid, FARBE_ROT, "Du kannst das nicht tun!");
    return 1;
    }
    Gangfight[Aktiv][TestGebiet] = 1;
    GangZoneFlashForAll(Gebiet[TestGebiet], GetFarbe());
    }


    stock GetGebiet(playerid)
    {
    #undef TestGebiet
    if(IsPlayerInGebiet(playerid, 922.5522, -1564.835, 1062.687, -1413.023))
    {
    #define TestGebiet LsGebiet
    return;
    }

    else if(IsPlayerInGebiet(playerid, 2474.133, 2598.861, 2735.758, 2865.758))
    {
    #define TestGebiet LvGebiet
    return;
    }
    return;
    }


    So wollte ich es machen, damit ich nicht für jedes einzelne Gebiet Abfragen muss und dann für jedes gebiez einzeln [LvGebiet] etc. machen muss und dann immer dasselbe, wenn ihr versteht. Ich habe ja auch weit aus mehr als nur 12 Gebiete. MfG

    Guten Tag, liebes Breadfish-Team.


    Ich habe ein kleines Problem, und zwar Folgendes:
    Seit einem Jahr kann ich mich nicht mehr auf diese Seite verbinden. Ich dachte, das würde an meinem neuen Router liegen, dass er irgendwelche Seiten blocken würde. Daher habe ich dann unzählige Versuche versucht, um diese unzublockieren - erfolglos, wie denn auch, wo nichts geblockt ist, da kann auch nichts ungeblockt werden. Wenn ich jetzt auf Breadfish zugreifen möchte, dann werde ich automatisch auf Google weitergeleitet.


    Doch eines Nachts fiel mir dann eine Idee ein:
    Ich verbinde mich einfach mal mit einer Proxy zu breadfish, ladete mir TOR ( mir wurde gesagt, man solle dies anmelden, daher schreibe ich es hier nochmal rein ) und verbindete mich nach Breadfish - womit ich Erfolg hatte. Daraus schloss ich, dass ich einen IP-Range-Bann habe.


    Ich wurde wahrscheinlich Opfer eines IP-Range-Bannes von einem Typen, der dieselbe IP wie ich seit neuem, hat, und seitdem ich den Router habe, bin ich wahrscheinlich in seiner Range drinne.


    Daher bitte ich euch, das Breadfishteam ( S-/Mod ), meine IP zu entbannen oder meinen Account auf eine Whitelist zu schreiben o.ä., denn mit Tor zu connecten, das ist wie mit einem Tretroller Fahrrad zu fahren ( relativ langsam ).


    Meine Wanip: 188.100.**.**


    Mit freundlichen Grüßen,
    TehEbil.

    Natürlich geht das ;D frag mich nur nicht wie...
    Vlt. abfragen ob eine playerid in range ist und dann mit bestimmter Formel... Dann halt noch mit Winkel oder was sich so anbietet, bsp. facing angle glaub ich ;) gucken, ob der vor dir ist, und nicht nur im radius.


    das mit dem Text könntest du so machen:
    Guck dir ein Port script an, ich glaube es wird die Function: PlayerToPoint benutzt, wenn der Busfahrer das Gebiet betritt, Meldung: X, halt je nach gebiet variieren. Wenn nicht, ähnliche Funktionen wie Spieler betritt Gebiet o.ä.

    Sry, ich dachte, pushing innerhalb 24 Stunden wäre erlaubt ;)


    Icq hab ich leider nicht mehr, werde es aber mal so versuchen, wie derjenige über mir es schrieb.


    Danke an alle ;)


    Hatte da im GF script gesucht, aber nicht das passende gefunden,
    nun ja, jetzt weiß ich auch woran das liegen könnte, hatte nur das mainscript
    durchsucht und nicht die filterscripts ;)

    Sry für die Überschrift, jedoch wusste ich keinen geeigneten Namen.
    Bin zwar etwas länger hier, jedoch trotzdem mal: Hallo @all :) , ist schließlich mein 1. Post.


    Also,
    habe ein DeathMatch-Script editiert,
    grundsätzlich soll das zum Lernen dienen,
    werde keinen offiziellen Server etc. machen,
    just4fun bisschen Scripten und testen etc...


    Jedoch möchte ich, dass man einen der 5 Skins
    auswählen kann und damit spawned.
    Bis zur Auswahl bin ich gekommen, jedoch falls ich
    dann Spawn drücke, spawne ich mit dem CJ ( id 0 ) Skin.
    Woran liegt das?



    Eine weiter Frage wäre:
    *Rot makiert im Script*
    Wieso muss ich da 3 Waffen usen?
    Hab als Alternative einfach 2x Waffe mit 500 Muni benutzt, würde mich trotzdem mal interessieren.


    /*



    ||----------------------------------------------------------------------------||
    || ------------------------- Deathmatch by Maercell ------------------------- ||
    || ----------------- Inpiriert von Minigun Madness by Mike ------------------ ||
    ||----------------------------------------------------------------------------||



    */
    #include <a_samp>


    #define grau 0xAAAAAAAA
    #define gelb 0xFFFF00AA


    enum PlayerSpawnInfo {


    Float:PlayerX,


    Float:PlayerY,


    Float:PlayerZ,


    Float:PlayerAngle


    }


    new Float:gRandomSpawns[][PlayerSpawnInfo] =


    {
    {3160.1721,-2241.8125,11.8478},
    {3147.8186,-2315.5481,11.8400},
    {3092.5969,-2306.6519,11.8400},
    {3107.8799,-2224.2534,11.8478},
    {3130.5974,-2262.5276,11.8400}
    };




    main()
    {
    print("\n----------------------------------");
    print(" --- | Deathmatch by Maercell | --- ");
    print("----------------------------------\n");
    }


    new a=0;


    public OnGameModeInit()
    {
    SetGameModeText("Deathmatch by Maercell");


    ShowPlayerMarkers(0);
    ShowNameTags(1);


    AddPlayerClass(0,0,0,0,0,0,0,0,0,0,0);
    AddPlayerClass(19,0,0,0,0,0,0,0,0,0,0);
    AddPlayerClass(120,0,0,0,0,0,0,0,0,0,0);
    AddPlayerClass(124,0,0,0,0,0,0,0,0,0,0);
    AddPlayerClass(125,0,0,0,0,0,0,0,0,0,0);


    CreateObject(5355, 3128.424316, -2262.151123, 15.985685, 0.0000, 0.0000, 348.7500);
    CreateObject(4866, 3129.373779, -2320.726563, 0.225790, 266.3215, 0.0000, 347.9679);
    CreateObject(4866, 3127.996582, -2226.220215, 10.026105, 266.3215, 0.0000, 167.4857);
    CreateObject(4866, 3163.083740, -2280.682861, 52.694927, 266.3215, 0.0000, 78.1045);
    CreateObject(4866, 3097.004395, -2228.373047, 49.455345, 266.3215, 0.0000, 257.7271);
    CreateObject(7416, 3129.764648, -2270.049072, 10.840012, 0.0000, 0.0000, 347.9679);
    CreateObject(967, 3104.626953, -2263.731445, 10.822824, 0.0000, 0.0000, 0.0000);
    CreateObject(14467, 3156.171875, -2237.952881, 13.581617, 0.0000, 0.0000, 325.6225);
    CreateObject(18260, 3127.007324, -2257.795654, 12.413204, 0.0000, 0.0000, 0.0000);
    CreateObject(18260, 3135.412354, -2289.181152, 12.413204, 0.0000, 0.0000, 0.0000);
    CreateObject(18260, 3105.694580, -2290.736816, 12.413204, 0.0000, 0.0000, 99.5907);
    CreateObject(7191, 3122.839600, -2297.263916, 12.814682, 0.0000, 0.0000, 97.1163);
    CreateObject(1452, 3117.084473, -2233.946777, 11.881849, 0.0000, 0.0000, 0.0000);
    CreateObject(14875, 3107.999268, -2242.547852, 11.665575, 0.0000, 0.0000, 0.0000);
    CreateObject(14875, 3147.877197, -2256.568359, 11.657763, 0.0000, 0.0000, 0.0000);
    CreateObject(14875, 3113.797363, -2273.407227, 11.657762, 0.0000, 0.0000, 51.5661);
    CreateObject(11480, 3131.378174, -2239.524170, 13.041529, 0.0000, 0.0000, 0.0000);


    return 1;
    }


    ResetSpawnInfo(playerid)


    {
    new rand = random(sizeof(gRandomSpawns));
    switch (a)
    {
    case 0:
    {
    SetSpawnInfo(playerid, 255, 0,gRandomSpawns[rand][PlayerX],gRandomSpawns[rand][PlayerY],gRandomSpawns[rand][PlayerZ],gRandomSpawns[rand][PlayerAngle],24, 1000, 29, 500, 29, 500);
    }


    case 1:
    {
    SetSpawnInfo(playerid, 255, 0,gRandomSpawns[rand][PlayerX],gRandomSpawns[rand][PlayerY],gRandomSpawns[rand][PlayerZ],gRandomSpawns[rand][PlayerAngle],23, 1000, 30, 500, 30, 500);
    }


    case 2:
    {
    SetSpawnInfo(playerid, 255, 0,gRandomSpawns[rand][PlayerX],gRandomSpawns[rand][PlayerY],gRandomSpawns[rand][PlayerZ],gRandomSpawns[rand][PlayerAngle],22, 1000, 31, 500, 31, 500);
    }


    default:
    {
    SetSpawnInfo(playerid, 255, 0,gRandomSpawns[rand][PlayerX],gRandomSpawns[rand][PlayerY],gRandomSpawns[rand][PlayerZ],gRandomSpawns[rand][PlayerAngle],24, 1000, 29, 500, 29, 500);
    }
    }
    }



    public OnPlayerConnect(playerid)


    {
    new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "*** %s hat den Server betreten!", pname);
    SendClientMessageToAll(grau, string);
    SendClientMessage(playerid, gelb, "Willkommen zum Deathmatch! Baller was das Zeug hält!");
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {


    new pname[MAX_PLAYER_NAME];
    new string[100];
    GetPlayerName(playerid, pname, sizeof(pname));


    switch(reason)
    {
    case 0: format(string, sizeof(string), "*** %s hat den Server verlassen. (timeout)", pname);
    case 1: format(string, sizeof(string), "*** %s hat den Server verlassen.", pname);
    case 2: format(string, sizeof(string), "*** %s hat den Server verlassen. (Kick/ban)", pname);
    }


    SendClientMessageToAll(grau, string);
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid,3123.690186, -2268.962646, 11.314724);
    SetPlayerCameraPos(playerid,3123.690186, -2264.962646, 13.314724);
    SetPlayerCameraLookAt(playerid,3123.690186, -2268.962646, 11.314724);
    SetPlayerFacingAngle(playerid,0);


    return 1;
    }


    public OnPlayerRequestSpawn(playerid)
    {
    ResetSpawnInfo(playerid);


    return 1;
    }



    public OnPlayerDeath(playerid, killerid, reason)


    {
    SendDeathMessage(killerid, playerid, reason);
    SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
    ResetSpawnInfo(playerid);


    return 1;


    }



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/kill", cmdtext, true) == 0)
    {
    SetPlayerHealth(playerid, 0);
    SendClientMessage(playerid, 0xFF0000FF, "Du hast Selbstmord begangen!");
    }
    if (strcmp("/w1", cmdtext, true) == 0)
    {
    SendClientMessage(playerid, 0xAA3333AA, "Waffenpack 1 wurde ausgewählt.");
    a = 0;
    }
    if (strcmp("/w2", cmdtext, true) == 0)
    {
    SendClientMessage(playerid, 0xAA3333AA, "Waffenpack 2 wurde ausgewählt.");
    a = 1;
    }
    if (strcmp("/w3", cmdtext, true) == 0)
    {
    SendClientMessage(playerid, 0xAA3333AA, "Waffenpack 3 wurde ausgewählt.");
    a = 2;
    }
    return 0;
    }



    Danke im Vorraus,
    MfG,
    TehEbil.



    PS:
    Ich vermute, dass das Spawnen mit ID 0 daran liegt:
    SetSpawnInfo(playerid, 255, 0,gRandomSpawns
    An der 0 nach 255, jedoch bin ich mir nicht sicher, und wie könnte ich es ändern?


    Irgendwie die 0 durch eine Variable setzten?
    Jedoch wüsste ich nicht, wie ich die Variable dann dem Nutzernamen zuordnen kann, er soll ja nicht gespeichert werden, sondern immer neu wählen können beim neuen Einloggen, vlt. ne temporäre Variable? :D Gibt's sowas bei Pawn/o überhaupt..?