if, else + Commands
So, heute erklär ich euch mal das if, else und wie man Commands macht!
Commands Mit und ohne Parameter
Also, es gibt 2 Command - Arten, einmal mit Parameter z.B. /kick [playerID] und einmal ohne Parameter: /killme
Wir Fangen als erstes Ohne Parameter an, also ganz einfache Commands wo man keine ID oder sowas Eingibt.
Wir erstellen mal den Command /killme der nur für RCON Admins bestimmt ist(InGame /rcon login [RCON Passwort aus Server.cfg])
if/* Wenn*/(strcmp/* Vergleicht 2 Strings */("/killme"/* Der Command /killme (String 1) */,cmdtext /* Also Command (String 2) */,true /*Es ist also ein Command*/)==0 /*Fragt ab ob die beiden Strings Identisch sind, also zueinander Passen!*/)
{ //Also wenn /killme eingegeben wir Passiert...
if/* wenn... */(IsPlayerAdmin(playerid)) //... Der Spieler als RCON Admin eingeloggt ist.
{//Passiert...
SetPlayerHealth(playerid,0)//Setzt die HP (HealthPoints) Des ausführenden (playerid) auf 0, Er Stirbt ^^
}//Ende der Ausführung
else //ansonsten, Wenn der Spieler NICHT als RCON Eingeloggt ist...
{// ...passiert...
SendClientMessage/* Sendet eine Nachricht */(playerid, /*Dem Spieler der /killme eingegeben hat*/rot, /* (Farbe, 1. Tutorial Lesen!!!) */ "Du bist kein RCON Admin!");
}//ende der Ausführung wenn der Spieler Nicht als RCON Eingeloggt ist!
}//Ende des Kommandos
Ich weiß dass es nicht Übersichtlich ist, aber hier nochmal im Klartext:
if = wenn...
(strcmp = Vergleicht die ersten beiden Strings
("/killme" = /killme Der Command (String 1)
cmdtext = Es ist also ein Command (String 2)
true = Soweit ich weiß Richtig (Also dass /killme ein Command ist)
==0 = dass die Beiden ersten Strings Identisch sind, also zueinander Passen ("/killme" und cmdtext)
{ = Beginnt den Vorgang
IsPlayerAdmin = Ist der Spieler Admin
playerid = Wieder der Ausführende, also wenn der Ausführende als Admin eingeloggt ist.
SetPlayerHealth = Setzt die HP...
playerid = ...des ausführenden...
0 = ... auf 0, also Hat er dann kein Leben mehr und Stirbt!
OPTIONAL: wenn da Steht 100 ( SetPlayerHealth(playerid,100); ) wird die HP Auf 100 Gesetzt, also falls man z.B. 50 HP hat, bekommt man 100 HP, Man Stirbt also nicht!
else = Ansonsten (Hierbei wenn er NICHT als Admin eingeloggt ist) Passiert ( { )
SendClientMessage = Sendet eine Nachricht
playerid = Dem Ausführenden
rot = Farbe Rot, muss man definiert haben (1. Tutorial Lesen!!!)
"Du bist kein RCON Admin!" = Den Text: Du bist kein RCON Admin! in der Farbe rot!
Jetzt nochmal das Ganze ohne die Kommetare:
if(strcmp("/killme",cmdtext,true )==0)
{
if(IsPlayerAdmin(playerid))
{
SetPlayerHealth(playerid,0)
}
else
{
SendClientMessage(playerid,rot, "Du bist kein RCON Admin!");
}
}
So das wars mit Teil 2
Kritik, Lobe, Wünsche, Verbesserungsvorschläge usw. sind Erwünscht!
MfG
Jim // Chupa
Es folgt noch ein Tutorial MIT Parametern! (strtok, vielleicht Auch dcmd)
//EDIT: Verbessert!!! Danke an patoo, der mich auf die Fehler aufmerksam gemacht hat!
///EDIT: Nochmals Fehler Verbessert und ==0 Erklärung eingefügt!