Beiträge von InternetInk aka Benjamin

    Von 2014 bis ca. 2018 hab ich ja noch aktiv an dem Breadfish-RP SAMP Server mitgewirkt. Da ist auch einiges an Maps usw. entstanden. Vielleicht müsste ich mal paar hier Präsentieren, denn der Server wird eh nichtmehr gestartet und es ist bissl schade das kaum jemand hier die gesehen hat.

    Es ist in Teilen bereits eingebaut und auch nutzbar aber im moment sind wir noch zu wenige User als das sich eine IC Eröffnung lohnt. Es gibt nicht genug Cops die eine entsprechende Wärterausbildung machen wollen und es gibt derzeit keine potentiellen langzeitinhaftierten. Gut für die Leute auf der Straße, schlecht fürs Prison-RP. ^^


    Aber das wird schon noch werden, den Server gibt es ja noch ein paar Jahre. Falls es Neuigkeiten gibt werde ich auch dieses Thema aktualisieren: "Flint County Jail" - Staatsgefängnis [W.I.P RP Gefängnis]


    mfg INk

    Das was da noch unsichtbar vorhanden ist, ist die Kollision.
    Der MapEditor hat extra einen Modus den du beim start auswählen kannst "Load with COLLs".
    Wenn du das machst und dann unter dem Tab "Views" unten "Show colls" anklickst siehst du die Kollision aller Objekte.
    Wenn du deinen Remove Code einfügst wirst du feststellen das unter colls noch alle Gebäude angezeigt werden, weil eben deren Kollision noch da ist.
    Klick auf ein Haus und das was alles markiert ist ein zusammenhängendes Objekt.


    Für das Area gibt es seit 0.3.7 ein Ersatzobjekt ohne die Kollisionen und mit gestopften Löchern: 11692

    Die User die nicht hier sind sondern jeden Tag zocken und einfach nur Spaß haben wollen die kommen auf so Gedanken nicht.
    Wer hier rumhängt und darüber philosophiert ob die Szene tot ist, der ist aus Sicht der Szene tot. Glückwunsch.


    Es ist wie mit so vielen Themen hier, man kann gleicher Meinung sein oder auch nicht, im Endeffekt spielts sowieso keine Rolle, macht ja doch jeder was er will.

    Theoretisch möglich aber da das praktisch mehr als unwahrscheinlich ist kann man das vernachlässigen.
    Bei deiner Variante kann es im ungünstigesten Fall passieren das er nach einem Versuch bereits abbricht weil er bei 99999 angekommen ist.
    Dann wird -1 zurück gegeben obwohl noch zig zehntausende Kombinationen frei sind, auch nicht Sinn der Sache.

    Der Code ist sowas von unsinn. Wieso die eine random Nummer plus 1 rechnen statt neu zu generieren? Damit sparst du dir den unsinnigen "security" over 9000 quatsch.



    Nummer()
    {
    new Query[128], count = 1, nr = -1;
    while (count != 0)
    {
    nr = 10000 + random(89999);
    format(Query, sizeof(Query), "SELECT Nummer FROM `User` WHERE `Nummer` = '%d'", nr);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    }
    return nr;
    }


    Was ist nun nachvollziehbarer? Ich würde mal behaupten meins ist aufjedenfall ressourcensparender. ;)

    @xCurry:
    Man sollte Code nicht Blind übernehmen, was du gepostet hast ist falsch.


    Hey teste ich mal danke


    Nein nicht testen, das heißt das du das Problem nicht beseitigt hast. Du hast die Chance das hier und jetzt zu klären, nutze sie doch?
    Schau dir deinen Code aus deinem ersten Beitrag an und les meinen ersten Beitrag, da steht alles drin.

    Ich bin mir nicht sicher aber lag es an den = ?


    Nein wirklich? Was habe ich denn im zweiten Satz geschrieben?

    liegt es an der falschen Verwendung der Vergleichsoperatoren >= 'größer gleich'


    Ich glaube du liest nicht richtig, les meinen ersten Beitrag komplett und am besten dreimal. Tu es einfach. Versuch zu verstehen wo und was das Problem ist. Und ändere nur das an deinem Original Code was unbedingt nötig ist. Nicht voreilige Schlüsse ziehen sondern lesen, überlegen, fragen wenn du was nicht verstehst und erst dann handeln. Scripting ist kein versuchen und sinnloses ändern von Buchstaben oder Zeichen, gewöhn dir das bitte ab.

    Der Server arbeitet Code von oben nach unten ab, das sollte klar sein.
    Sobald du also 3 Kills hast führt er die if-Abfrage aus, setzt die Variable auf 6 und geht zur nächsten If-Abfrage.
    Die ist sofort im gleichen Durchlauf erfüllt weil du sie ja gerade zuvor gesetzt hast, ergo wird auch der Code sofort ausgeführt.


    Damit bist du also auf dem Holzweg. Les mal meinen ersten Beitrag bitte nochmal durch und frag was du daran nicht verstanden hast.

    Zu erst ein Hinweis:


    Hinweis

    Beitrag bitte bearbeiten > Code löschen > Über dem Textfeld über der grauen Leiste von "Editor" zu "Quellcode" wechseln > drücken den Code zwischen die Klammern ] & [ kopieren und erneut absenden.

    Hinweis
    So ist er eingerückt und deutlich besser lesbar...

    Hinweis
    Bitte Merken, danke!


    Nun zum Thema.


    Im ersten Fall liegt es an der falschen Verwendung der Vergleichsoperatoren >= 'größer gleich'.
    Versuch dir den Code in Wörtern "durch zu lesen" damit wird sowas auffälliger.


    if(KillStreak[killerid] >= 3)
    Wenn ( KillStreak[killerid] größer oder gleich 3 )


    Damit gilt diese Abfrage als erfüllt bei allen Zahlen größer oder gleich 3, also auch 4, 5, 6, 10 oder 100.
    Somit führt er den Code danach immer aus und dort setzt du KillStreak[] immer knallhart auf 3, damit verhinderst du das die Variable überhaupt größer als 3 werden kann.
    Ich nehme mal an das du vor den If Abfragen KillStreak[killerid] plus 1 rechnest, dann kannst du das setzen der Variable innerhalb der If-Abfragen rausnehmen. (Bei allen Abfragen natürlich)
    Statt größer gleich einfach nur gleich nehmen ( x == y ) so wird der Code nur dann ausgeführt wenn die Variable exakt gleich 3 oder 6 etc ist.