toctoctoc! (_TocLib Benutzter Informationen)

  • Ich arbeite jetzt mit der _toc libary (talk to oscar) und das senden & empfangen von nachrichten funktioniert einwandfrei.
    Nun will ich ja auch die nicknames der personen und ihren Status erfahren, doch wie mache ich das?

    Das einzige was ich zu toc gefunden habe war dies:
    http://terraim.cvs.sourceforge.net/*checkout*/ter…rc/toc/TOC2.txt

    Meine erste Idee war es:

    Zitat

    toc_get_status <screenname>
    TOC will send an UPDATE_BUDDY message about the specified person

    ok, das hörte sich schonmal gut an, nun in autoIt:

    [autoit]

    $status=_TocSendFlap('toc_get_status "' & _TocNormalizeString($number) & '"')

    [/autoit]


    Doch der Wert ist immer nur eine zahl die nichts aussagt.

    Meine zweite Idee:
    Da toc_get_status wahrscheinlich nur mit toc1 und nciht mit toc2 geht habe ich einen zweiten anlauf gestartet:

    Zitat


    IM_IN_ENC2:<user>:<auto>:<???>:<???>:<buddy status>:<???>:<???>:en:<message>

    This command received instead of IM_IN. It is similar to TOC 1.0 except there are a few new parameters.
    One of them is language and another is the buddy status, but the rest are unknown.

    Denn in der TocLib.au3 gibt es die funktion:
    _TocParseIm( $sPacket )
    Parse in IM_IN packet from TOC2 into something useful
    $sPacket : The packet data from IM_IN (Just the data part, not FLAP)

    Doch muss man alle parameter eintragen? Und wenn ja, was? <user> ist ja klar, aber <auto> oder <message>?
    Egal was ich probiert habe, immer wurde nur eine zahl zurückgegeben. :(


    GTASpider hat sich mal der toclib beschäftigt, aber ich glaube ich habe ihn mit meinem PMs schon so genervt das er mir nicht mehr antworten will. ;(
    Naja, ich hoffe das mir Jemand bei diesem Oscar-Problem helfen kann und ich schrecke auch nciht davaor zurück, den thread wieder nach oben zu pushen!

    • Offizieller Beitrag

    Hallo

    Probier das mal aus. Einfach mal mit einem Account online gehen, und dann gucken was passiert wenn ein Kontakt On/Offline geht.

    Spoiler anzeigen
    [autoit]

    _TocRegisterFunc("UPDATE_BUDDY2","_BuddyOnline")
    _TocInitLoop()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(500)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _BuddyOnline($im)
    MsgBox(0,"",$im)
    EndFunc

    [/autoit]

    Mfg Spider

  • ok, danke, das hat mich schon sehr viel weiter gebracht.
    Nur jetzt bräuchte ich noch eine Möglichkeit wie ich herausbekomme wenn sich der Status eines kontaks verändert und wie ich es hinkriegen soll das ich alle Kontakt informationen beim start des prorgammes geschickt bekomme.

  • ok, ich habe wieder etwas weiter geforscht:

    [autoit]

    _TocSendFlap('toc_get_status '&_TocNormalizeName($number))

    [/autoit]


    Dadurch müsste ein Befehl an den Server gesendet werden und dieser gibt den Status des benutzters wiedrum durch UPDATE_BUDDY2 an die Funktion wie es GTASpider schon oben geschrieben hat. Ich glaube das ganze funktioniert auch schon so weit. (ich habe erkannt das es in toc2 immer noch manche toc befehle gibt.)
    Doch nun ist mein problem, das ich ja eine ganze liste mit nummern habe und dort scheint es auf jeden fall nicht zu funktionieren.
    Dies kann natürlich daran liegen das ich nicht 100 befehle direkt hintereinander an den Server senden kann, aber könnte ich überhaupt ein sleep() dazwischen setzten? Dadurch würde ja das ganze script pausiert und das geht natürlich nicht, da in der zeit ja wiederum etwas empfangen werden muss....

    Und kennt jemand von euch einen Befehl um an den Nicknamen zu kommen?


    Edit:
    ok, habe gerade herausgefunedn das man mit dem befehl
    _TocSendFlap('toc_get_status') eine lange liste mit informationen aller
    User bekommt.

    Das heißt die Namen der Benutzter kann ich schon direkt herausbekommen,
    ob der Status mitgesendet wird muss ich noch ermitteln, aber das mache
    ich morgen ;)

    Einmal editiert, zuletzt von Oger-Lord (4. März 2009 um 22:28)