Aha. Der naechste, der einen Anschiss kassieren will.
Na dann wollen wir mal...
Zitat:
Ich programmiere zwar (beruflich) selbst in Delphi - und C hab' ich auch schonmal verwendet aber... blablabla
Na, dann hoffe ich mal, dass Du noch eine andere Einnahmequelle hast und nicht von Deinen Programmierkuensten abhaengig bist. Da Du eigentlich mit Delphi arbeitest und wenig mit C zu tun hast, sehe ich Dir ein paar Fehler nach. Aber nicht, dass Du Dir nicht die Muehe machst, deine Problemchen selber zu loesen, sei es durch logisches Denken oder nachschlagen der entsprechenden Infos. Von einem beruflichen Programmierer darf man das ja wohl erwarten, auch wenn Delphi eigentlich weniger mit Programmierung als mit rumklicken zu tun hat. Ausserdem gehe ich davon aus, dass Du Englisch kannst.
So, da Du mir hier aber bisher eher postiv aufgefallen bist, sag ich Dir trotzdem, was Du falsch machst. (Auch wenn es fuer Dich trivial sein sollte.
Zitat:
Ich möchte gerne ein plugin schreiben, das den Text eines users mitbekommt und ihn mit einer festen Zeichenkette vergleicht um ggf. daruf zu reagieren.
Ist das gerade in Mode, oder was?
Zitat:
O Wie bekomme ich eine SAY-Message mit?
O Wie erfahre ich von wem diese Message ist?
o Wo erfahre ich etwas über den grundsätzlichen Aufbau von Plugins?
Auch fuer Dich gilt: Sourcen lesen. Zum Beispiel plugin_retribution. Aber das hat sich ja inzwischen soweit geklaert.
Zitat:
Ich sitz' natürlich nicht still zu hause rum und warte bis mir alles in den Schoß fällt, und daher bin ich zu folgendem Fehler gelangt:
Das ist loeblich. Kommen wir also zum Eingemachten. Erstens fehlen da tatsaechlich etliche Semicolons. Obwohl Small das zulaesst, ist das eine Unart, die Du vermeiden solltest.
Erster Fehler:
Zitat:
plugin_autocon.sma(33) Warning [211]: possibly unintended assignment
Code:
 Â
if (Data = "!console") {
Typischer Delphiuser Fehler, daher nicht so schlimm. Das steht ganz klar "possibly unintended assignment". Und was sagt der Code? Der sagt 'if (Data = "ebbes")'. Und was sagt Dir das? Das sagt Dir, dass dort eine Zuweisung steht, die Du aber wahrscheinlich nicht meintest. In anderen Worten "sollte da nicht vielleicht 'if (Data == "ebbes")' stehen?". (Tut mir leid, aber auch bei Dir kann ich mir ein wenig Sarkasmus heute nicht verkneifen). In Small (und C) ist '=' ein Zuweisung und '==' ein Vergleich.
Zweiter Fehler. Der ist weniger verzeihlich.
Zitat:
plugin_autocon.sma(33) Error [33]: array must be indexed (variable "Data")
Code:
 Â
new Data[MAX_DATA_LENGTH];
  if (Data = "!console") {
Data ist ein ARRAY! Nun erlaubt Small tatsaechlich so ein unsaegliches Konstrukt, wie Deines. Aber nur, wenn beide Arrays dieselbe Laenge haben. Das ist hier nicht der Fall. Also bleiben wir schoen bei der normalen Behandlung von Arrays bzw. Strings und verwenden die entsprechenden Funktionen. Also:
Code:
if ( strcmp(Data, "!console") == 0 )
Dritter Fehler:
Zitat:
plugin_autocon.sma(42) Warning [202]: number of arguments does not match definition
Code:
  plugin_registerinfo("ADDON to plugin_console to autoactivate it.", STRING_VERSION);
  plugin_registercmd("say", "HandleSay", ACCESS_ALL);
Auch hier weiss ich eigentlich nicht, was an der Fehlermeldung so unverstaendlich sind. Kucken wir doch mal in die Includedatei wie plugin_exec() aussieht:
Code:
native plugin_exec( sCommand[], sArguments[] );
Da sehe ich zwei Parameter. Warum benutzt Du dann einmal drei und einmal zwei Parameter?