View Single Post
regalis
Veteran Member
Join Date: Jan 2007
Location: F*cking Germany
Old 05-27-2007 , 20:00   Re: Deutsche Scripting-Hilfe
#19

Sicher
Du hast den client-command richtig registriert, das Problem ist, dass es keine Funktion gibt, die "shield" heißt ;)
"shield" ist der Konsolenbefehl um ein shield zu kaufen.
Das Plugin erkennt die Message welche ausgesandt wird wenn der Kauf des shields eingeleitet wird und unterdrückt Meldung dass es nicht möglich ist als T ein shield zu kaufen.
Desweiteren gibt sie dem T der es kaufen wollte eines und zieht im Geld dafür ab.
So, das war die Erklärung zum Programablauf.
Nun zur Lösung des Problems:
Du musst eine Funktion einbauen welche den Spieler, welcher in den Chat /shield schreibt den Konsolenbefehl "shield" ausführen lässt.
Code:
public shield(id)
{
    client_cmd(id, "shield")
    return PLUGIN_HANDLED_MAIN;
}

und deine registrierung des say commands in plugin_init:

register_clcmd("say /shield", "shield")
register_clcmd("say shield", "shield")
register_clcmd("say .shield", "shield")
Durch die Registrierung des client-commands "say /shield" wird darauf gewartet dass ein Spieler dies in den chat schreibt.
Sobald dies passiert wird die Funktion aufgerufen und erzeugt den Konsolenbefehl.
Weiterhin wird durch das zurückgeben von PLUGIN_HANDLED_MAIN der Chatbefehl unterdrückt..Sprich die Engine kommt nicht dazu das "gesagte" zu schreiben.
(Falls das nicht gewünscht ist (um den serverfremden Spielern einen leichteren Einstieg in die Handhabung des Shieldkaufs zu ermöglichen) einfach das return PLUGIN_HANDLED_MAIN durch return PLUGIN_CONTINUE ersetzen...dies veranlasst die Engine das "gesagte" trotzdem in den Chat zu schreiben.

Ich hoffe ich hab jetzt nichts falsch erklärt es ist für jeden verständlich!?

Gute Nacht und viel Spass mit dem shield ;)
greetz regalis
__________________

Last edited by regalis; 05-27-2007 at 20:04.
regalis is offline