Hallo zusammen,
ich habe in den letzten Tagen immer wieder versucht einen /arrest Befehl für Cops auf meinem Selfmade Server zu erstellen, jedoch klappt das alles nicht so ganz.
Ich habe auch bereits die Suchfunktion aus dem Forum verwendet und mir einige Tutorials angesehen bzw. durchgelesen, jedoch schaffe ich diesen Command einfach nicht.
Ich brauche einen Command, der es einem Cop ermöglicht einen Spieler mit Wanteds ins Gefängnis zu porten. Der Befehl dafür sollte so aussehen: /knast [ID][Zeit].
Ich poste einfach mal meinen Code:
Der Befehl /knast:
dcmd_knast(playerid, params[])
{
new pID,zeit;
if(sscanf(params,"ui",pID,zeit))
{
return SendClientMessage(playerid,BLAU,"Verwendung: /knast [ID][Zeit]");
}
if(IstSpielerInFraktion(playerid,1))
{
if(IsPlayerInRangeOfPoint(playerid,5,1569.1207,-1693.5427,5.8906))
{
if(IsPlayerInRangeOfPoint(pID,5,1569.1207,-1693.5427,5.8906))
{
SetPlayerPos(pID,263.7467,77.5785,1001.0391);
SetPlayerInterior(pID,6);
SetTimerEx("knasttimer",zeit,false,"i",pID);
sSpieler[playerid][knastzeit] = zeit;
return 1;
}
else
{
return SendClientMessage(playerid,ROT,"Der Spieler ist nicht in deiner Nähe!");
}
}
else
{
return SendClientMessage(playerid,ROT,"Du bist nicht am Arrest-Punkt!");
}
}
else
{
return SendClientMessage(playerid,ROT,"Du bist nicht beim LSPD!");
}
}
Mein Spielerdaten enum:
//Spielerdaten
enum SpielerDaten
{
Adminlevel,
Level,
Fraktion,
Geld,
Skin,
sLogin,
Autofuehrerschein,
Motorradfuehrerschein,
Bootsschein,
Flugschein,
LKWSchein,
Waffenschein,
Angelschein,
Drogen,
Personalausweis,
Beruf,
Wanteds,
knastzeit
}
Meine Stocks:
stock Register(playerid,key[])
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
dini_Create(Spieler);
dini_Set(Spieler,"Name",Sname);
dini_Set(Spieler,"Passwort",key);
dini_IntSet(Spieler,"Adminlevel",0);
dini_IntSet(Spieler,"Level",1);
dini_IntSet(Spieler,"Fraktion",0);
dini_IntSet(Spieler,"Geld",10600);
dini_IntSet(Spieler,"Skin",0);
dini_IntSet(Spieler,"Autofuehrerschein",0);
dini_IntSet(Spieler,"Motorradfuehrerschein",0);
dini_IntSet(Spieler,"Flugschein",0);
dini_IntSet(Spieler,"Bootsschein",0);
dini_IntSet(Spieler,"LKW-Schein",0);
dini_IntSet(Spieler,"Angelschein",0);
dini_IntSet(Spieler,"Waffenschein",0);
dini_IntSet(Spieler,"Drogen",0);
dini_IntSet(Spieler,"Personalausweis",0);
dini_IntSet(Spieler,"Beruf",0);
dini_IntSet(Spieler,"Wanteds",0);
dini_IntSet(Spieler,"knastzeit",0);
SendClientMessage(playerid,GRUEN,"Du hast dich registriert!");
SpielerLaden(playerid);
return 1;
}
stock Login(playerid,key[])
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
{
SendClientMessage(playerid,GRUEN,"Erfolgreich eingeloggt!");
SpielerLaden(playerid);
return 1;
}
else
{
SendClientMessage(playerid,ROT,"Das Passwort ist falsch!");
ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Logge dich mit deinem Passwort ein:","Login","Schließen");
return 1;
}
}
stock SpielerSpeichern(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
dini_IntSet(Spieler,"Level",sSpieler[playerid][Level]);
dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
dini_IntSet(Spieler,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spieler,"Skin",GetPlayerSkin(playerid));
dini_IntSet(Spieler,"Autofuehrerschein",sSpieler[playerid][Autofuehrerschein]);
dini_IntSet(Spieler,"Motorradfuehrerschein",sSpieler[playerid][Motorradfuehrerschein]);
dini_IntSet(Spieler,"Flugschein",sSpieler[playerid][Flugschein]);
dini_IntSet(Spieler,"Bootsschein",sSpieler[playerid][Bootsschein]);
dini_IntSet(Spieler,"LKW-Schein",sSpieler[playerid][LKWSchein]);
dini_IntSet(Spieler,"Angelschein",sSpieler[playerid][Angelschein]);
dini_IntSet(Spieler,"Waffenschein",sSpieler[playerid][Waffenschein]);
dini_IntSet(Spieler,"Drogen",sSpieler[playerid][Drogen]);
dini_IntSet(Spieler,"Personalausweis",sSpieler[playerid][Personalausweis]);
dini_IntSet(Spieler,"Beruf",sSpieler[playerid][Beruf]);
dini_IntSet(Spieler,"Wanteds",GetPlayerWantedLevel(playerid));
dini_IntSet(Spieler,"knastzeit",sSpieler[playerid][knastzeit]);
return 1;
}
return 1;
}
stock SpielerLaden(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
if(dini_Exists(Spieler))
{
SetPlayerScore(playerid,dini_Int(Spieler,"Level"));
GivePlayerMoney(playerid,dini_Int(Spieler,"Geld"));
SetPlayerSkin(playerid,dini_Int(Spieler,"Skin"));
SetPlayerWantedLevel(playerid,dini_Int(Spieler,"Wanteds"));
sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
sSpieler[playerid][Level] = dini_Int(Spieler,"Level");
sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
sSpieler[playerid][Geld] = dini_Int(Spieler,"Geld");
sSpieler[playerid][Skin] = dini_Int(Spieler,"Skin");
sSpieler[playerid][sLogin] = 1;
sSpieler[playerid][Autofuehrerschein] = dini_Int(Spieler,"Autofuehrerschein");
sSpieler[playerid][Motorradfuehrerschein] = dini_Int(Spieler,"Motorradfuehrerschein");
sSpieler[playerid][Flugschein] = dini_Int(Spieler,"Flugschein");
sSpieler[playerid][Bootsschein] = dini_Int(Spieler,"Bootsschein");
sSpieler[playerid][LKWSchein] = dini_Int(Spieler,"LKW-Schein");
sSpieler[playerid][Angelschein] = dini_Int(Spieler,"Angelschein");
sSpieler[playerid][Waffenschein] = dini_Int(Spieler,"Waffenschein");
sSpieler[playerid][Drogen] = dini_Int(Spieler,"Drogen");
sSpieler[playerid][Personalausweis] = dini_Int(Spieler,"Personalausweis");
sSpieler[playerid][Beruf] = dini_Int(Spieler,"Beruf");
sSpieler[playerid][Wanteds] = dini_Int(Spieler,"Wanteds");
sSpieler[playerid][knastzeit] = dini_Int(Spieler,"knastzeit");
}
return 1;
}
stock SpielerReset(playerid)
{
sSpieler[playerid][Adminlevel] = 0;
sSpieler[playerid][Level] = 0;
sSpieler[playerid][Fraktion] = 0;
sSpieler[playerid][Geld] = 0;
sSpieler[playerid][Skin] = 0;
sSpieler[playerid][Autofuehrerschein] = 0;
sSpieler[playerid][Motorradfuehrerschein] = 0;
sSpieler[playerid][Flugschein] = 0;
sSpieler[playerid][Bootsschein] = 0;
sSpieler[playerid][LKWSchein] = 0;
sSpieler[playerid][Angelschein] = 0;
sSpieler[playerid][Waffenschein] = 0;
sSpieler[playerid][Drogen] = 0;
sSpieler[playerid][Personalausweis] = 0;
sSpieler[playerid][Beruf] = 0;
sSpieler[playerid][Wanteds] = 0;
sSpieler[playerid][knastzeit] = 0;
return 1;
}
stock IstSpielerInKnast(playerid)
{
if(sSpieler[playerid][knastzeit] >= 1) return 1;
return 0;
}
stock HatSpielerPerso(playerid)
{
if(sSpieler[playerid][Personalausweis] == 1) return 1;
return 0;
}
stock IstSpielerBeruf(playerid,beruf)
{
if(sSpieler[playerid][Beruf] == beruf) return 1;
return 0;
}
stock IstSpielerAdmin(playerid,level)
{
if(sSpieler[playerid][Adminlevel] >= level) return 1;
return 0;
}
stock IstSpielerInFraktion(playerid, fraktionsid)
{
if(sSpieler[playerid][Fraktion] == fraktionsid) return 1;
return 0;
}
stock IstSpielerLogged(playerid)
{
if(sSpieler[playerid][sLogin] == 1) return 1;
return 0;
}
stock HatSpielerWanteds(playerid,wanteds)
{
if(sSpieler[playerid][Wanteds] >= 1) return 1;
return 0;
}
Mein Knastzeit Timer:
//Timer
forward knasttimer(playerid);
public knasttimer(playerid)
{
SetPlayerPos(playerid,1544.9874,-1675.4181,13.5595);
SetPlayerInterior(playerid,0);
return 1;
}
OnPlayerSpawn(1.wenn der Spieler im Knast ist,2.wenn der Spieler Wanteds hat und von nem Cop gekillt wird,3.Zivi Spawnpunkt,4.Cop Spawnpunkt):
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
new zeit;
zeit=dini_Int(Spieler,"knastzeit");
if(IstSpielerInKnast(playerid))
{
SetPlayerPos(playerid,263.7467,77.5785,1001.0391);
SetPlayerInterior(playerid,6);
SetTimerEx("knasttimer",zeit,false,"i",playerid);
return 1;
}
else
{
new wanteds,killerid;
wanteds=GetPlayerWantedLevel(playerid);
if(wanteds>=1)
{
if(IstSpielerInFraktion(killerid,1))
{
SetPlayerPos(playerid,266.7467,77.5785,1001.0391);
SetPlayerInterior(playerid,6);
return 1;
}
}
else
{
if(IstSpielerInFraktion(playerid, 0))
{
SetPlayerPos(playerid, 825.6290,-1354.6455,13.5393);
SetPlayerColor(playerid,WEISS);
SetPlayerSkin(playerid,dini_Int(Spieler,"Skin"));
return 1;
}
else if(IstSpielerInFraktion(playerid, 1))
{
SetPlayerPos(playerid, 237.6967,78.9653,1005.0391);
SetPlayerInterior(playerid,6);
SetPlayerColor(playerid,BLAU);
SetPlayerSkin(playerid,dini_Int(Spieler,"Skin"));
SendClientMessage(playerid,BLAU,"Du bist am LSPD gespawnt!");
return 1;
}
}
}
return 1;
}
Sonstige Infos:
#define sFraktion0 "Zivilist"
#define sFraktion1 "LSPD"
#include <a_samp>
#include <dini>
#include <sscanf>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
Wenn mir jemand helfen könnte, wäre ich ihm sehr dankbar, denn ohne einen /knast Befehl kann man keinen Reallife Server aufbauen, wie ich es geplant habe.
mfg
Jan