Beiträge von Mann im Mond

    Ja sicher ist es Bildbearbeitung :D


    Aber du gehst halt mehr auf den Fokus ein, sagen wir du hebst einfach etwas hervor :>, und das gewollt. So kann man es ganz einfach sagen.


    Ich habe weder je etwas von "Fokus Design" gehört, noch finde ich dazu groß etwas. Nach deiner Definition oben machst du genau das Falsche aus deinen Bildern. Deine Bilder gehen nicht auf eine spezielle Sache ein, sondern es werden lediglich grundsätzlich die gleiche Vorgehensweise angewendet. Hauptsächlich entziehst du dem Bild die Farben und hebst dabei gleichzeitig den Kontrast an, so dass das Bild am Ende dunkler wirkt. Bei einigen Bildern hast du zusätzlich dazu noch das gesammte Bild eingefärbt. Das führt dazu, dass alles zu einem Einheitsbrei wird (fast einfarbig mit hohem Kontrast) und somit werden die Bilder aus meiner Sicht nicht besser. Vor allem aber hebst du wirklich nichts hervor, sondern machst das Bild (bestehend aus Farben, Formen usw.) überall gleich (gleiche Farbe usw.). Sicherlich ist es gemackssache, aber mir ging es nicht darum es zu beurteilen, sondern ledglich zu sagen, dass du keinen Fokus innerhalb des Bildes damit setzen kannst.
    Allerdings hast du gute Grundmotive (kontrastreiche realistische Farben, teils schöne Ausschnitte und Nahaufnahmen usw.) gewählt, welche aus meiner Sicht aber von dir falsch bearbeitet(keine Farbe bzw. einheitliche unrealistische Farbe, teils zu dunkel (bsp. Leuchtturm)) wurden.

    #define MAX_LVPDCARS 29


    new
    LVPDCars[MAX_LVPDCARS];

    // deine bereits vorhandenen AddStaticVehicle


    // Abfrage ob "carid" ein LVPD Auto ist
    stock bool:isLVPDCar(carid) {
    for(new v = 1; v < MAX_LVPDCARS; v++) { // Alternativ gehts natürlich auch ohne #define mit "sizeof(LVPDCars)"
    if(v == carid) return true;
    }
    return false;
    }
    // diene andere Frage sollte hiermit auch beantwortet sein, wenn man ein wenig weiterdenkt

    CarInfo[carid]
    CarInfo[posx]
    Ich kenn dein Autosystem nicht, aber das sieht für mich verkehrt aus. Zeig am B :love: esten wie du den Array "CarInfo" erstellt hast. Ich schätze es müsste so heissen ungefähr:
    CarInfo[carid][var]
    also entsprechend
    CarInfo[carid][posx]
    Und natürlich müssten deine "posx" usw. auch als "Float" erstellt sein.

    Mann im Mond:
    Lediglich kritisiere ich den aus meiner Sicht inkompetenten und geldgierigen Betreiber,
    der die wahren Entwickler rausgeworfen bekommen hat.


    Entschulding, aber ich muss noch schnell was dazu anmerken. Sebihunters Beitrag hatte wieder die typische Struktur. Mich persönlich interessiert die Bezeichnung keineswegs, andere wahrscheinlich mehr. Aber es wurde nunmal gesagt, dass dies der "Anfang" von 0.3b ist, allerdings besteht der Anfang nicht aus neuen Features, sondern wie gesagt worden ist aus sicherheitsrelevanten Dingen. Vielleicht wird in späteres 0.3b Versionen neue Features hinzugefügt...


    Ich weiß nicht, wie es genau wie abgelaufen ist mir der Entwicklung von SAMP und das weiß keiner genau, außer die beteiligten Personen. Wie bereits oben gesagt worden ist, kann es sein, dass Kye nichts programmiert hat und viel der Rest gemacht hat, allerdings kann auch genau das Gegenteil zutreffen. Ihr denkt es und sagt es in JEDEM Beitrag, das ist das störende daran, auch wenn es stimmen mag.
    Zu Geldgierig kann ich nur sagen, dass Kye mit Sicherheit gut Geld macht, verglichen zum Arbeitsaufwand, das mag feststehen. Aber das kann man nicht nur ihm vorwerfen, sondern ziemlich vielen Leuten. Was gibt es besseres als einmal Arbeit zu investieren und dann ab und zu wieder und dafür dauerhaft Geld verdient auf eine lange Zeit? Ich denke das zählt eher zu Glück gehabt, anstatt geldgierig.


    Aber genug, ich wollte es nurmal erwähnen, was mir aufgefallen ist.


    ich frage mich echt warum du in einem SA-MP Forum über 1000 Beiträge hast, wenn der Entwickler das letzte Arschloch ist sowie du es immer hinstellst.


    Ich habe mal das komplette Thema durchgelesen und kann diesen oben stehenden Satz nur zustimmen und frage mich genau das Selbe. Ohne direkt Namen zu nennen, verstehe ich die Einstellung (besonders einiger "Moderatoren" hier) nicht. Unabhängig davon, ob deren Argumente der Realität entsprechen, ist das grundsätzlich vollkommen daneben und anangebracht. Meistens sinds hier die selben Leute, die ununterbrochen über irgendwelche Dinge nörgeln, trotzdem aber einen Großteil ihrer Freizeit in dieses "scheiß, veraltetes, von einem noch dümmeren Programmierer programmiertes, fehlerhaftes usw." (Zusammenfassung der Meinungen) investieren.
    Ich könnte noch mehr Dinge aufzählen, aber ingesamt ist es ein ernormer Widerspruch, was - auch einige Moderatoren hier - an Meinungen vertreten. Nörgelt gerne weiter oder akzeptiert das, was ihr bekommt. Euch ist nämlich (und das ist das störende an dieser ganzen Sache) sehr wohl klar, was SAMP ist und das SAMP nunmal nicht der Mod ist der regelmäßig aktualisiert ist und fehlerfrei und funktionsreich bei allen läuft.
    Denkt - vor allem auch die Moderatoren - an das oben, wenn irgendwann wieder ein neues Update kommt. Denn diese sinnlosen Beiträge, wie schlecht denn alles ist, bringen niemanden weiter, nützen nichts und senken nur die Lust im Allgemeinen auf SAMP (was bei vielen hier eindeutig das Ziel ist). Keiner zwingt euch SAMP zu spielen, es gibt auch Alternativen.


    Und nochmal für alle super schlauen Nörgler hier: Ich bin keinesfalls ein Verteidiger von der gesamten SAMP Sache, sondern finde lediglich die grundlegende Idee die hinter solchen Mods steckt interessant (Einem Singleplayer-Spiel einen Multiplayer zu verpassen, den man aktiv selbst gestalten kann). Gleichzeitig möchte ich das Update hier auch nicht loben, aber ich habe den Sinn durch einfaches durchlesen. Dieses ist nicht möglichst viele Features einzubauen sondern:

    Zitat

    As mentioned above, there is a security issue that needs to be patched immediately. I know there are servers owners that have bugs which effect their script, or want a specific feature for their server. These things will have to be put on hold until any future release. Please be understanding about this fact and only post bug reports in 0.3b if they are new bugs and may prevent people from being able to play the game properly.


    Und somit ergibt für mich (und hoffentlich für alle Nörgler hier) das komplette Update Sinn. Ich wünsche mir einmal einen "Update" Beitrag zu lesen ohne solchen Kommentare. Ich sage nicht, dass alle Kommentare positiv sein müssen, aber zumindest berechtigt!

    Ich kann dein Problem nicht nachvollziehen, da ich nicht genau weiß, wie es funktioniert. Allerdings denke ich mir anhand deiner Beschreibung, dass du ein Array benutzt, in der du jeweils die unterschiedlichen Karten und Modi abspeicherst. Wenn nur ein Modi gleichzeitig aktiv sein kann dann füge eben zu deinem Array noch "active" oder wie auch immer dazu, also in der Art
    Modemaptime[1][active] = true/false; // Boolean reicht hier ja vollkommen aus
    Dann kannst du mithilfe einer Schleife durch alle "Modemaptime" schauen und überprüfen ob "active = true" ist.


    for( new i = 0; i < MAX_MODEMAPTIME; i++) {
    if(Modemaptime[i][active]) {
    Modemaptime "i" ist zur Zeit aktiv.
    break;
    }
    }


    Beim Starten des jeweiligen Modi müsstes du natürlich
    Modemaptime[i][active] = true;
    setzen und beim beenden
    Modemaptime[i][active] = false;

    In diesem Zusammenhang sollte dir auch gleich dieser sehr hilfreiche Artikel interessieren:
    http://forum.sa-mp.com/showthr…261&highlight=Header+Size


    Wenn du nach unten scrollst, findest du sowohl wann es auftaucht, als auch wie es zu stande kommt und wie man es verhindern kann. Grundsätzlich ist eine solche Meldung kein sonderlich gutes Anzeichen

    Zitat

    This means that the compiler has detected that you are using more stack/heap space than is available. A lot of important information is stored on the stack, such as who called the current function, so PAWN knows where to return to. If you use too much memory, because of the way information is allocated, you can overwrite the stack information, returning to a random point in code and almost certainly crashing. At the very least you will get corrupted data where it's been overwritten by other data.


    #pragma dynamic
    macht das Problem zwar unsichtbar, behebt es aber nicht

    Also ich habe mal das Ganze mal überflogen und deine Fehlermeldung dazu angeschaut. Ich gehe mal schwer davon aus, dass deine Fehlermeldung mit "Du bearbeitest nun Haus ... UNKNOWN COMMAND" von "/hcreate newh" kommt.
    PlayerInfo[playerid][pCreateH] = Houses_Index;
    format(string, sizeof(string), "Du bearbeitest nun Haus %d", Houses_Index);
    SendClientMessage(playerid, COLOR_GRAD2, string);
    HouseInfo[Houses_Index][hHel] = 0;
    Das Unknown Command kommt ist klar, da der Array keine negativen zahlen haben kann und du oben geschrieben hast, dass Haus -993 bearbeitet wird. Also liegt dein Problem am


    Houses_Index


    und das dieses falsch ausgelesen, hochgezählt oder wie auch immer wird. Also erstmal musst du uns sagen zu was dies dient und mit welchem Wert es gefüllt wird (wie kommt es auf die Zahl -993?). Am besten vielleicht auch noch Codeschnippsel von dem "House_Index" dazu.

    Zitat

    SO Mann im Mond hast ihn zu 77% durcheinander gebraucht


    Wenn du "durcheinander gebracht" gemeint hast, dann sehe ich das eher so, dass ich nur das gemacht habe, was dazu dient die Frage des Threaderstellers zu beantworten. Die jetzige Diskussion hat nichts mit dem ursprünglichen Frage zu tun. Nochmals zu der ursprünglichen Frage:


    ähm ich wollte ja ben nix mit Timer ;) sondern das ich alle tore mit /mv öffne und dann auch wieder mit /mv schließe ^^ aber danke für die hilfe


    Genau das habe ich beantwortet. Die andere Frage mit automatisch schließen, gehört nach meinem Verstand in ein neues Thema.

    Ich antworte mal auf die Frage des Threaderstellers, der es wie ich es herausgelesen habe will, dass die Tore nicht automatisch schliessen, sondern nur dann, wenn man erneut den selben Befehl eingibt. Setze dazu einfach eine Boolean auf true oder false, je nachdem ob das Tor geschlossen oder offen ist und frage dann beim Befehl ab, ob das jeweilige Tor (prüfen mit IsPlayerInRangeOfPoint) geöffnet oder geschlossen ist. Das wiederholst du dann einfach für alle Tore, die es gibt.



    #define MAX_FACTION 10 // Maximale Anzahl an Fraktionen


    // globale Variable erstellen
    new
    bool:pGate[MAX_FACTION+1]; // Tor standartmäßig geschlossen (= false)


    dcmd_gate(playerid, params[])
    {
    #pragma unused params
    if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) // Spieler in der Nähe vom Tor
    {
    if(pInfo[playerid][pFaction] == FRAKTIONSID) {
    if(!pGate[pInfo[playerid][pFaction]) { // Tor geschlossen
    MoveObject(); // Tor öffnen
    pGate[pInfo[playerid][pFaction] = true; // Variable setzen
    } else { // Tor offen
    MoveObject(); // Tor schliessen
    pGate[pInfo[playerid][pFaction] = false; // Variable setzen
    }
    }
    } else if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) {
    // das Gleiche ie oben für andere Fraktion wiederholen
    }
    return 1;
    }

    Du musst SetVehicleParams unter OnVehicleStreamIn verwenden.
    Einfaches Beispiel für ein einfaches auf und abschliessen wäre in 0.3 als lediglich
    //oben
    new
    bool:vLock[MAX_VEHICLES];


    // aufschliessen
    vLock[carid] = false;
    // - Fahrzeug für Spieler aufschliessen, die das Auto bereits eingestreamt haben (Schleife)


    //abschliessen
    vLock[carid] = true;
    // - Fahrzeug für Spieler abschliessen, die das Auto bereits eingestreamt haben (Schleife)



    //OnVehicleStreamIn
    SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, vLock[vehicleid]);

    Zitat

    Ich bin hier um Leuten zu helfen


    Zitat

    selbstverständlich nur in MTA. SA-MP wird wohl solche Liebe zum Detail immer fehlen, eine Schande dass es trotzdem so viele immer noch so toll finden :


    Widerspricht sich enorm. Alleine der Unterton im 2. Zitat.
    Mir ist das recht egal, aber in diesem Fall hast du dem Ersteller, welcher versucht in Samp so etwas hinzukriegen, recht wenig weitergeholfen. Das Thema mit Samp oder Mta gabs schon zu oft und es ist bekannt, dass MTA mehr Funktionen bietet, auch ohne dass man diese ( provokativ ?!) nochmal zeigen muss


    Ganz davon abgesehen, dass das bereits gesagt wurde

    Und ansonsten geht es nur mit MTA siehe NeoN ^^


    zum Thema: Nein so etwas ist (noch ?) nicht möglich in Samp

    schonmal was von SetTimerEx gehört? :P


    damit sollte es klappen ;)


    Sinnlose Antwort. Warum sollte er SetTimerEx verwenden, wenn er extra eine Schleife gemacht hat im Callback, um alle Spieler zu überprüfen.


    Zitat

    Hab mir das ganze mal auslesen lassen, sobald der timer startet, obwohl der string "99" ist springt das sofort auf -1


    Welche strings? In deinem gesammten Code, den du gepostet hast, findet sich keiner.


    Zitat

    Habt ihr ne ahnung was das sein könnte?


    Zeig einfach mehr von deinem Code, mehr von dem was alles dazugehört. Dein Code zählt "Hunger" und "Durst" von jedem Spieler um 1 runter, wenn der Callback "Bedürfnisse" aufgerufen wird. Man kann also nur erraten, wo genau der Fehler liegt, der Code sagt recht wenig darüber.
    Der Array "JobInfo" vewundert mich ein wenig, obwohl es auch einfach was anderes bedeuten kann, wie ich denke, wenn ich das Wort lese. Warum hat ein Job ein Bedürfniss?
    Zeig deinen Timer, möglichweise liegt da das Problem, dass der Code zu oft aufgerufen wird...

    Der Code ist komplett falsch und funktioniert nicht. Um das zu prüfen brauchst du 2 Schleifen, eine für die Autos und eine für die Spieler, um zu schauen ob ein Spieler in dem Auto sitzt oder nicht
    // Befehl


    if(strcmp(cmdtext,"/respawncars",true)==0)
    {
    if (PlayerInfo[playerid][pAdmin] < 1337) return 1;
    for(new v = 1; v < MAX_VEHICLES; v++)
    {
    if(!IsVehicleSpawned(v) || !IsVehicleEmpty(v)) continue;
    SetVehicleToRespawn(v);
    }
    }


    // irgendwo außerhalb


    stock IsVehicleConnected(vehicleid)
    {
    new
    Float:vX,
    Float:vY,
    Float:vZ;
    GetVehiclePos(vehicleid,vX,vY,vZ);
    if(vX == 0.0 && vY == 0.0 && vZ == 0.0) return 0;
    return 1;
    }


    stock IsVehicleEmpty(vehicleid)
    {
    for(new i =0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(IsPlayerInVehicle(i,vehicleid)) return 0;
    }
    return 1;
    }

    Wenn du 0.3 benutzt musst du das Schloss eines Auto in "OnVehicleStreamIn" jedesmal abschliessen, wenn das Autoschloss abgeschloss ist. Dafzu einfach einen boolean benutzen und diesen beim abschliessen ( true) und beim aufschliessen (false) setzen.
    Dann in OnVehicleStreamIn diesen Wert anwenden mit
    SetVehicleParamsForPlayer(vehicleid, playerid, 0, DEIN_BOOLEAN);