ocmd 2.1.1
ocmd ist eine Include, mit der sich Commands um einiges einfacher scripten lassen. Statt sämtliche Commands unter OnPlayerCommandText auflisten zu müssen, kann einfach irgendwo im Script eine Funktion gescriptet werden.
ocmd funktioniert am besten zusammen mit sscanf.
Mit ocmd können auch große Scripts mit hunderten Commands problemlos und schnell ausgeführt werden.
Anwendung
Zunächst musst du die ocmd-include downloaden, in deinen include-Ordner verschieben und dann auch in deinem Script auslesen:
#include <ocmd>
Ein einfacher Command mit ocmd sieht in etwa so aus:
ocmd:test(playerid,params[])
{
SendClientMessage(playerid,0xffffffff,"Du hast /test eingegeben");
return 1;
}
Mit sscanf können auch Parameter abgefragt werden:
ocmd:lotto(playerid,params[])
{
new lottoNummer;
if(sscanf(params,"d",lottoNummer))return SendClientMessage(playerid,0xff0000ff,"Nutze /lotto [zahl]");
printf("Spieler %d hat sich Lotto-Nummer %d gekauft",playerid,lottoNummer);
return 1;
}
Profi-Funktionen
#define OCMD_BEFORE_CALLBACK
#include <ocmd>
{
if(GetPVarInt(playerid,"muted"))
{
SendClientMessage(playerid,0xff0000ff,"Du bist gemuted");
return 0;
}
return 1;
}
#define OCMD_COMMAND_LOG
#include <ocmd>Tipp: Mit z.B. #define OCMD_COMMAND_LOG_FORMAT "[Servername] ** %s: %s" kann das Format des Logs beliebig geändert werden. Hierbei wird das erste "%s" stets durch den Spielernamen und das zweite "%s" durch den eingegebenen Command ersetzt. #define OCMD_COMMAND_LOG_FORMAT muss dabei auch stets vor dem #include <ocmd> stehen.
{
SendClientMessage(playerid,0xffffffff,"Du hast /help oder /hilfe eingegeben");
return 1;
}
{
SendClientMessage(playerid,0xffffffff,"Du hast /hallo, /servus oder /bonjour eingegeben");
return 1;
}Info: Diese Funktion ist aktuell auf maximal 4 Command-Namen begrenzt.
Changelog
2.0.2 (8.1.2013)
- Offizielle Unterstützung von SA:MP 0.3x
2.0.3 (28.5.2013)
- ALS-Hook (Verbesserte Kompatiblität zu anderen Includes)
2.1.0 (24.7.2013)
- ocmd@-Syntax für mehrere Commands mit einer Funktion (siehe Profi-Funktionen)
2.1.1 (3.11.2013)
- OCMD_COMMAND_LOG_FORMAT kann genutzt werden, um das Verhalten von OCMD_COMMAND_LOG anzupassen (siehe Profi-Funktionen)
- Verbesserte Kompatiblität zu anderen Includes und Scripts
Download
Download der .inc
Pastebin
mit freundlichen Grüßen, k.O.