Seite 1 von 1

Serverabsturz durch Exp_getval divide by 0 in spk_player

Verfasst: 27 Feb 2007 23:05
von Shardal
Hallo

Von Zeit zu Zeit stuerzt Sphere ab, entweder beim Aufruf irgendeines Dialoges oder bei Eingabe eines . befehles. In der Konsole erscheint dann immer folgender Fehler.

20:21:ERROR:(magiesystem_schulen.scp,134)Exp_GetVal Divide by 0

Dabei wird auf die rote Zeile verwiesen. In einem anderen Threat den ich gefunden hab wurde gesagt, dass ein solcher Fehler auf eine Subtraktion
mit 0 hinweist. Doch muss ich zugeben das ich mir leider darauf in dem Script keinen Reim machen kann, bzw. ja nur das args Null werden kann.

Zudem hab ich die Scripte noch einmal durch gesucht und fest gestellt das speech spk_player zweimal vorhanden ist einmal das untere und dann noch das Orginalscript von sphere.
Kann es evtl. auch daran liegen?

Ich hoffe einer von euch kann mir helfen, und sagen was da defekt ist und wie man es beheben kann.

Schon einmal vielen Dank
Shardal

[SPEECH spk_player]

on = *
// Staffchat-Block
// Hat eigentlich nichts beim Magiesystem verloren, allerdings
// kann on = * in sphere_speech.scp nicht überschrieben werden,
// da sonst das MS nicht mehr funktioniert.
if (<eval <account>> > 2) && (<tag0>)
// Strings, die mit ? beginnen, werden als .SY interpretiert
if (strmatch(<strsub 0 1 <args>>,?)) && (<eval strlen(<args>)> > 1)
sy <strsub 1 100 <args>>
elseif (<eval strlen(<args>)> > 0)
ss <args>
endif
return 1
endif

Verfasst: 27 Feb 2007 23:54
von rm
was macht wohl <strsub 0 1 <args>> wenn args leer ist?
Ändere das Script doch mal ab:

Code: Alles auswählen

 if (<eval <account>> > 2) && (<tag0>) 
  if strlen(<args>) > 1
    if (strmatch(<strsub 0 1 <args>>,?))
      sy <strsub 1 100 <args>> 
    else
      ss <args>
    endif
  endif
  return 1
endif
Dann schau ob der Fehler weiterhin auftritt.

Die beiden gleichnamigen Skriptfiles würde ich übrigens in einem vereinigen (soweit nötig), auf alle Fälle aber eines davon entsorgen. Sphere weiss sonst nämlich u.U. nicht, in welchem eine Funktion nun gerade weitergeht.

Und, bitte, was soll das && (<tag0>) werden? Möchtest Du nicht sagen, welches Tag Du meinst?

Verfasst: 28 Feb 2007 01:31
von Sedin
Und, bitte, was soll das && (<tag0>) werden? Möchtest Du nicht sagen, welches Tag Du meinst?
Ist ein Foren Bug. Alles nach dem Punkt wird abgeschnitten.

Verfasst: 28 Feb 2007 03:11
von Shardal
Ja der Tag war schon richtig im Script aufgeschrieben.

Habs so probiert die du vorgeschlagen hast rm. Hat leider nichts gebracht ist dennoch abgeschmiert. Allerdings hab ich den Fehler gefunden bzw. weiss was es ausgeloest hat.

Sobald jemand im Staffchat hinter das - mehr als eine Zahl geschrieben hat,
konnte der Server bzw. das Script das nicht mehr verarbeiten.