Ja ich möchte gerne einen befehl machen undzwas soll mann einmal
ocmd:tban aber es soll genaus das gleiche passieren wenn ocmd:timeban macht wie mache ich das ohne alles doppelt zu machen
MfG
Ja ich möchte gerne einen befehl machen undzwas soll mann einmal
ocmd:tban aber es soll genaus das gleiche passieren wenn ocmd:timeban macht wie mache ich das ohne alles doppelt zu machen
MfG
Ich weiß zwar jetzt nicht, wie genau man das macht, aber ich kann mir nur vorstellen das man das mit einer Abfrage regeln kann - Eine Abfrage ob der Spieler /tban o. /timeban eingibt & diese dann egal bei welchen das gleiche ausgibt.
Bitte korregiert mich, falls das Falsch ist.
MfG
Also ich würde es so machen auch wenn du es nich willst kp ob es ne bessere alternative gibt
ocmd:timeban(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
new pID, time, grund[128];
if(sscanf(params,"uis",pID,time,grund))return SendClientMessage(playerid,BLAU,"/tban [playerid] [zeit] [grund]");
if(IsPlayerConnected(pID))
{
if(time>0&&time<1000)
{
new string[128];
format(string,sizeof(string),"AdmCdm: %s wurde von %s für %i Minuten gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),time,grund);
SendClientMessageToAll(ROT,string);
new wert;
wert=gettime()+(60*time);
SetPVarInt(pID,"timeban",wert);
Kick(pID);
return 1;
}
SendClientMessage(playerid,ROT,"Ungültige Zeit.");
return 1;
}
SendClientMessage(playerid,ROT,"Spieler ist nicht online.");
return 1;
}
und
ocmd:tban(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
new pID, time, grund[128];
if(sscanf(params,"uis",pID,time,grund))return SendClientMessage(playerid,BLAU,"/tban [playerid] [zeit] [grund]");
if(IsPlayerConnected(pID))
{
if(time>0&&time<1000)
{
new string[128];
format(string,sizeof(string),"AdmCdm: %s wurde von %s für %i Minuten gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),time,grund);
SendClientMessageToAll(ROT,string);
new wert;
wert=gettime()+(60*time);
SetPVarInt(pID,"timeban",wert);
Kick(pID);
return 1;
}
SendClientMessage(playerid,ROT,"Ungültige Zeit.");
return 1;
}
SendClientMessage(playerid,ROT,"Spieler ist nicht online.");
return 1;
}
musts ma ausprobieren ob das nich auch so geht
ocmd:tban(playerid,params[]) timeban(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
new pID, time, grund[128];
if(sscanf(params,"uis",pID,time,grund))return SendClientMessage(playerid,BLAU,"/tban [playerid] [zeit] [grund]");
if(IsPlayerConnected(pID))
{
if(time>0&&time<1000)
{
new string[128];
format(string,sizeof(string),"AdmCdm: %s wurde von %s für %i Minuten gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),time,grund);
SendClientMessageToAll(ROT,string);
new wert;
wert=gettime()+(60*time);
SetPVarInt(pID,"timeban",wert);
Kick(pID);
return 1;
}
SendClientMessage(playerid,ROT,"Ungültige Zeit.");
return 1;
}
SendClientMessage(playerid,ROT,"Spieler ist nicht online.");
return 1;
}
aber glaube nicht das diese option tut
Naja ich dachte eig das man da in die ocmd reihe schreiben mit einem
oder einfach so =)
ocmd:tmc(playerid, params[]) return ocmd_takemediccall(playerid, params);
ocmd:takemediccall(playerid, params[])
Mach es so
Oben ins Script
#define alias_ocmd:%0=%1(%2,%3[%4]) \
ocmd:%0(%2,%3[%4]) { return ocmd_%1(%2,%3); } \
ocmd:%1(%2,%3[%4])
und als Befehl
alias_ocmd:Befehl1=Befehl2(playerid, params[])
{
// Dein Zeugs
return 1;
}
Wenn es geht sag Bescheid
Mhm, also ich löse sowas immer so.
ocmd:tban(playerid, params[])
{
New str[64];Format(str, 64, "timeban %s", params);
OnPlayerCommandText(playerid, str);
}]
Mhm, also ich löse sowas immer so.
ocmd:tban(playerid, params[])
{
New str[64];Format(str, 64, "timeban %s", params);
OnPlayerCommandText(playerid, str);
}]
So nutzt du aber 1x Ocmd und 1x OnPlayerCommandText^^
Ich nutze dcmd,
kA wie ocmd definiert ist, ich hätte aber gedacht, dass alle ocmd Befehle auch im onplayercommandtext drinne sind ?
Oder werden die schon davor weggefiltert ?
ocmd kannst du Belibig im Script verteilen sie dürfen nur nicht in einem Public etc. sein
ocmd ist auch Schneller als dcmd und man muss bei OnPlayerCommandText keine Lästigen dcmd einträge machen^^
alle lösungen gehen leider nicht
alle lösungen gehen leider nicht
Ich bin mir 100% Sicher das meine Geht wenn du Hilfe brauchst um das Endgültig hinzubekommen^^ melde dich Per PN
Jaja klar,
Is ja bei.dxmd auch so.
Aber da wird dann im onplayercommandtext jede Funktion einmal aufgerufen...
Also.im opct:
dcmd(heal, 4, cmdtext);
Jaja klar,
Is ja bei.dxmd auch so.
Aber da wird dann im onplayercommandtext jede Funktion einmal aufgerufen...
Also.im opct:
dcmd(heal, 4, cmdtext);
Ich habe zu 100% noch nie mit dcmd gearbeitet und kenn mich damit ned aus^^
Danke an JAGHAX habs hinbekommen
Du achtest ja auch nicht drauf wie ich es dir da Gezeigt habe
Erstetz dein Befehl mal mit dem:
alias_ocmd:tban=timeban(playerid, params[])
Wenns nicht geht PN ist frei^^