Beiträge von Dudalus

    Hi


    Ich bin oft schon beim Beantworten von Fragen wo ich plötzlich denke: "Hey willste dem Kerl wirklich helfen ? Er hat nicht mal die SuFu benutzt oder schnell im Internet recherchiert ?". Ich brech dann meistens die Antwort ab. Ich muss gestehen, dass ich auch ab und zu Mist verzapfe (zB SetPlayerMarker für andere Spieler), aber wenn ich eine Frage ohne Code sehe und bei dieser nicht mal draus komme, lasse ich es sein. Ich habe keine Lust, dem Fragesteller in einem Beitrag-für-Beitrag ähnlichen Smalltalk alles aus der Nase ziehen zu müssen.


    Nun, der Fragesteller würde ja aber gerne eine Antwort auf seine Frage haben und dafür muss es einfach Leute geben, welche ihm die Informationen aus der Nase ziehen (müssten) - und das bin nicht ich. Jedenfalls regen mich solche Gesichten auf. Ich weiss, ich habe auch mal so angefangen, ich habe mich aber belehren lassen und wenn mir ans Schienbein gekickt wurde mich gefragt, warum dies gerade geschehen ist.


    Was mich aber wirklich aufregt sind Themen von Leuten mit mehr als 1000 Beiträgen, wo sie nach einem Fehler fragen und dann merken, dass eine geschlossene Klammer fehlt, da muss ich micht echt fragen, ob diese Person den Code nochmals anschaut, bevor sie postet.


    Gruss Simon

    Hallo


    Also zum Handysystem mal. Ich habe das per ID Vergabe gelöst. Ein paar Hintergrundinfos:


    • Jeder Spieler bekommt eine einmalige Nummer.
    • Ruft der Spieler einen anderen Spieler an, wird temporär desen playerid gespeichert.
    • Schreibt/Telefoniert der Spieler, wird die Nachricht bei OnPlayerText abgefangen und an die bestimmte playerid gespeichert.


    Dabei müssen folgende Faktoren berücksichtigt werden, damit es nicht zu Problemen kommt:


    • Jeder Spieler MUSS eine einmalige Nummer haben
    • Beim Disconnect eines Gesprächspartner muss das Telefonat beendet werden


    Ich hab dir hier einen kleinen Überblick, was Du sicher mal benötigst:


    http://wiki.sa-mp.com/wiki/Random
    http://wiki.sa-mp.com/wiki/OnPlayerText
    http://wiki.sa-mp.com/wiki/OnPlayerDisconnect


    Wenn Du mal mit nem System anfängst und dabei nicht weiterkommst, helfe ich dir gerne, nur will ich dir keinen fertigen Code liefern ;)


    Gruss

    Gute Erklärung. Ich hab mit unthreaded Queries auch schlechte Erfahrungen gemacht. Lad mal 2000 MySQL Datensätze mit je 50 Feldern und rechne damit, da kommt der Server in einen wirklich spührbaren Lag (Datenbank wurde optimiert, sprich Datengrössen, Datenlängen etc)

    Hallo


    Ich hatte ein HTC Desire und ich hatte das auch desöftern. Ich hätte gemeint es kommt dadurch, dass der Homescreen neu geladen werden muss (teilweise als Refresh, teilweise nach dem Killen einer App). Das Warten ist halt einfach das nervige daran. Nach der Deinstallation des Taskkillers kam das Problem viel weniger vor und jetzt auf meinem HTC One X mit Android 4.0 ICS kommt es gar nicht mehr vor.


    Gruss

    Hallo


    Habe wir desöftern in der Firma. Bei uns liegt es teilweise am .net Framework. Eine generelle Antwort kann ich dir aber leider nicht geben. Auf welche Sprache haste MS VS spezialisiert ? Meld dich am besten mal im MSDN MS VS Forum


    Gruss


    Edit:
    Compiler für welche Sprache ? Visual C, Visual C++ ? Häng dir das lieber an den Nagel, ich spreche aus Erfahrung. gcc und g++ sind gut, aber bei MS VC können sie nicht mithalten. Evt mal nach Borland gucken, aber meiner Meinung nach auch nicht zufriedenstellend

    Hallo


    Jetzt eventuel für eine solche Funktion zu gross, aber generell sehr wertvoll ist sscanf von Y_Less. Man kann damit Strings in Werte spliten, zB "Hallo,5,-78.971" in "Hallo", "5" und "-78.971". Kannst es dir ja mal im Englischen anschauen:


    http://forum.sa-mp.com/showthread.php?t=120356


    Von Madding ibts hier auch eine Erklärung:


    [ SCRIPTING ] sscanf 2.0


    Eben wie gesagt, für ein solch einfaches Checking zu überdimensioniert, früher oder später kommst Du aber an einen Punkt, wo solch ein Splitting oder Umformatieren von Werten unumgänglich ist.


    Gruss

    Hallo


    Also das Beste kann man nicht sagen. Es gibt von Y_Less einen recht komplexen Beitrag dazu. Schlussendlich kommt er einfach zum Fazit, dass eine Mischung zwischen PVar und globalen Enums am besten ist (CPU und Memory Beanspruchung verteilt). Für Fahrzeug, Haus und Businesssysteme oä verwende ich auch Enums (obwohl es glaub sowas wie GVars gibt, was mich aber nicht überzeugt). Hier noch der Beitrag von Y_Less:


    http://forum.sa-mp.com/showthread.php?t=57018


    Stichwort CPU vs Memory


    Gruss

    Hallo


    So wie ich das noch in Erinnerung habe:


    • Enum: Memorylastig, dafür aber schnell
    • PVars: CPUlastig, etwas langsamer


    Ich verwende PVars und zwar aus folgenden Gründen, die mir das Leben enorm erleichtern:


    • PVar-Namen kann man formatieren, also zB anstatt Waffe1 bis Waffe19 zu speichern kann man eine for Schleife machen und das ganze mit einem Integer formatieren Waffe%d
    • PVars werden beim Disconnecten resettet, man sehe sich die Bedeutung vom P an. So entfällt ein lässtiges Resetten von Variabeln
    • Als Nachteil kann man sagen, man merkt im Gegensatz zu einem Enum nicht, wenn man anstatt pPhoneID eben pPhoneid schreibt


    Also ich möchte icht mehr auf Enums umwechseln


    Gruss



    Edit
    dini ist das schlimmste was man orstellen kann, man sehe die zahlreichen Erklärungen zum Neuladen von Dateien bei Dateioperationen. Dann nimm lieber die Standardfunktionen oder SII

    Hallo


    Also ich gehe mal davon aus, dass Maske[playerid] == 1 eine Maske bedeutet und Du die Nachricht vom Unbekannten (Mass Effect lässt grüssen) an jeden schickst. Ich würde dir ans Herz legen, den Hinweis zu OnPlayerText zu lesen, dieser lässt sich nämlich mit einem return Value von 0 blockieren, so wie hier:


    http://wiki.sa-mp.com/wiki/OnPlayerText

    Zitat

    ReturnsReturning 0 in this callback will stop the text from being sent



    Hab es jetzt nicht testen können, aber wenn was nicht geht einfach sag
    Gruss

    Hab mir grad die Funktion angeschaut, hier zu finden


    http://wiki.sa-mp.com/wiki/GetVehicleHealth


    Bitte lies dir mal das zum Rückgabewert durch, dann sollte dir klar sein, dass es so heissen sollte:


    Code
    new vid=GetPlayerVehicleID(i);
    new Floatleben;
    GetVehicleHealth(vid, leben);
    format(lebenstring,sizeof(lebenstring),"Leben %f", leben);
    TextDrawSetString(TachoLeben[i],lebenstring);


    Gruss

    Hallo


    Wird die Funktion überhaupt über einen Timer laufen gelassen und dann auch wiederholt/neu aufgerufen ? Schreib mal ein printf oder SendClientMessageToAll oä rein und schau ob es aufgerufen wird. Wenn dem nicht so ist, dann musste einen Timer erstellen, welchen die Funktion immer wieder aufruft.


    Gruss


    Nebenbei:
    isPlayerInAnyVehicle beinhaltet bereits isPlayerConnected, das isPlayerConnected kannst Du also rauslassen

    Hallo


    Wie leider schon oft genug gemeckert:


    • Warum Du ?
    • Was ist an deinem Server besonders/soll besonders werden
    • Gegenleistungen
    • Server
    • Forum
    • TS
    • Über dich


    Keiner kauft die Katz' im Sack

    Hallo


    So in der Art: