Guten Tag,
wenn ich mein Script compile, stürzt der Compiler ab. Ich weiß, dass es am ocmd:tprison liegt, da das normale /prison klappt.
Bei TPrison wollte ich es an meine Adminabfrage anpassen, da ich allerdings Neuling bin, passieren mir gerne Fehler:
Hier das Prisonsystem (welches ich als Filterscript gedownloaded habe und dann ins Script eingefügt habe):
forward PrisonTimer(pID);
ocmd:tprison(playerid, params);
{
new giveplayerid=GetPVarInt(playerid,"AdminSysPlayer");
new cache[32],respond[64];
if(GetPVarInt(playerid,"PlayerStep")>1)
{
format(respond,sizeof(respond),"The Way to Ascension - %s [%s]",gPlayerAdminInformation[GetPVarInt(playerid,"PlayerStep")-2][aText],GetName(giveplayerid));
GetPVarString(playerid,"AdminChosen",cache,sizeof(cache));
}
else
{
format(string,sizeof(string), "Du steckst %s in das Prison für %iMinuten, Grund: %s", SpielerName(pID), zeitangabe, prisongrund);
SendClientMessage(playerid, -1, string);
format(string,sizeof(string), "Du wurdest von %s für %iMinuten in das Prison gesteckt, Grund: %s", SpielerName(playerid), zeitangabe, prisongrund);
SendClientMessage(pID, -1, string);
SetPlayerPos(pID, 2543.462646,-1308.379882,1026.728393);
SetPlayerInterior(pID, 2);
SetPVarInt(playerid,"PrisonTime", zeitangabe);
SetPVarInt(playerid,"Prison", 1);
SetTimerEx("PrisonTimer",60000,1,"d",pID);
}
return 1;
}
ocmd:prison(playerid, params[])
{
new string[128], pID, zeitangabe, prisongrund;
if(GetPVarInt(playerid, "Adminlevel") != 1)return SendClientMessage(playerid, -1, " Dein Adminlevel ist zu niedrig!");
if(sscanf(params,"uds",pID, zeitangabe, prisongrund))return SendClientMessage(playerid, -1, "Benutzung: /prison [Name/ID] [Zeit in Minuten] [Grund]");
if(GetPVarInt(pID, "Prison") == 1)return SendClientMessage(playerid, -1, " Der Spieler ist bereits im Prison!");
{
format(string,sizeof(string), "Du steckst %s in das Prison für %iMinuten, Grund: %s", SpielerName(pID), zeitangabe, prisongrund);
SendClientMessage(playerid, -1, string);
format(string,sizeof(string), "Du wurdest von %s für %iMinuten in das Prison gesteckt, Grund: %s", SpielerName(playerid), zeitangabe, prisongrund);
SendClientMessage(pID, -1, string);
SetPlayerPos(pID, 2543.462646,-1308.379882,1026.728393);
SetPlayerInterior(pID, 2);
SetPVarInt(playerid,"PrisonTime", zeitangabe);
SetPVarInt(playerid,"Prison", 1);
SetTimerEx("PrisonTimer",60000,1,"d",pID);
}
return 1;
}
ocmd:tprison(playerid, params);
{
new giveplayerid=GetPVarInt(playerid,"AdminSysPlayer");
new cache[32],respond[64];
if(GetPVarInt(playerid,"PlayerStep")>1)
{
format(respond,sizeof(respond),"The Way to Ascension - %s [%s]",gPlayerAdminInformation[GetPVarInt(playerid,"PlayerStep")-2][aText],GetName(giveplayerid));
GetPVarString(playerid,"AdminChosen",cache,sizeof(cache));
}
else
{
format(string,sizeof(string), "Du steckst %s in das Prison für %iMinuten, Grund: %s", SpielerName(pID), zeitangabe, prisongrund);
SendClientMessage(playerid, -1, string);
format(string,sizeof(string), "Du wurdest von %s für %iMinuten in das Prison gesteckt, Grund: %s", SpielerName(playerid), zeitangabe, prisongrund);
SendClientMessage(pID, -1, string);
SetPlayerPos(pID, 2543.462646,-1308.379882,1026.728393);
SetPlayerInterior(pID, 2);
SetPVarInt(playerid,"PrisonTime", zeitangabe);
SetPVarInt(playerid,"Prison", 1);
SetTimerEx("PrisonTimer",60000,1,"d",pID);
}
return 1;
}
ocmd:prison(playerid, params[])
{
new string[128], pID, zeitangabe, prisongrund;
if(GetPVarInt(playerid, "Adminlevel") != 1)return SendClientMessage(playerid, -1, " Dein Adminlevel ist zu niedrig!");
if(sscanf(params,"uds",pID, zeitangabe, prisongrund))return SendClientMessage(playerid, -1, "Benutzung: /prison [Name/ID] [Zeit in Minuten] [Grund]");
if(GetPVarInt(pID, "Prison") == 1)return SendClientMessage(playerid, -1, " Der Spieler ist bereits im Prison!");
{
format(string,sizeof(string), "Du steckst %s in das Prison für %iMinuten, Grund: %s", SpielerName(pID), zeitangabe, prisongrund);
SendClientMessage(playerid, -1, string);
format(string,sizeof(string), "Du wurdest von %s für %iMinuten in das Prison gesteckt, Grund: %s", SpielerName(playerid), zeitangabe, prisongrund);
SendClientMessage(pID, -1, string);
SetPlayerPos(pID, 2543.462646,-1308.379882,1026.728393);
SetPlayerInterior(pID, 2);
SetPVarInt(playerid,"PrisonTime", zeitangabe);
SetPVarInt(playerid,"Prison", 1);
SetTimerEx("PrisonTimer",60000,1,"d",pID);
}
return 1;
}
public PrisonTimer(pID)
{
SetPVarInt(pID,"PrisonTime",GetPVarInt(pID,"PrisonTime")-1);
if(GetPVarInt(pID, "PrisonTime") == 0)
{
SendClientMessage(pID, -1, "Du hast deine Zeit im Prison abgearbeitet!");
SetPVarInt(pID,"PrisonTime", 0);
SetPVarInt(pID,"Prison", 0);
SpawnPlayer(pID);
}
return 1;
}
stock LoadAccount(playerid)
{
SetPVarInt(playerid,"PrisonTime",dini_Int(Spielerdatei,"PrisonTime"));
SetPVarInt(playerid,"Prison",dini_Int(Spielerdatei,"Prison"));
{
SetPVarInt(pID,"PrisonTime",GetPVarInt(pID,"PrisonTime")-1);
if(GetPVarInt(pID, "PrisonTime") == 0)
{
SendClientMessage(pID, -1, "Du hast deine Zeit im Prison abgearbeitet!");
SetPVarInt(pID,"PrisonTime", 0);
SetPVarInt(pID,"Prison", 0);
SpawnPlayer(pID);
}
return 1;
}
stock LoadAccount(playerid)
{
SetPVarInt(playerid,"PrisonTime",dini_Int(Spielerdatei,"PrisonTime"));
SetPVarInt(playerid,"Prison",dini_Int(Spielerdatei,"Prison"));
if(GetPVarInt(playerid,"PrisonTime") > 1)
{
new string[128];
format(string,sizeof(string), "Du hast deine Prisonzeit noch nicht abgearbeitet, noch %dMinuten", GetPVarInt(playerid,"PrisonTime"));
SendClientMessage(playerid, -1, string);
SetPlayerPos(playerid, 2543.462646,-1308.379882,1026.728393);
SetPlayerInterior(playerid, 2);
SetTimerEx("PrisonTimer",60000,1,"d",playerid);
{
new string[128];
format(string,sizeof(string), "Du hast deine Prisonzeit noch nicht abgearbeitet, noch %dMinuten", GetPVarInt(playerid,"PrisonTime"));
SendClientMessage(playerid, -1, string);
SetPlayerPos(playerid, 2543.462646,-1308.379882,1026.728393);
SetPlayerInterior(playerid, 2);
SetTimerEx("PrisonTimer",60000,1,"d",playerid);
return 1;
}
}
stock SpielerSpeichern(playerid)
{
dini_IntSet(Spielerdatei,"PrisonTime",GetPVarInt(playerid,"PrisonTime"));
dini_IntSet(Spielerdatei,"Prison",GetPVarInt(playerid,"Prison"));
{
dini_IntSet(Spielerdatei,"PrisonTime",GetPVarInt(playerid,"PrisonTime"));
dini_IntSet(Spielerdatei,"Prison",GetPVarInt(playerid,"Prison"));
return 1;
}
}
stock SpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
Hier mal eine Beispiel abfrage:
http://pastebin.com/G1hrBFQQ
Kann mir jemand erklären wie genau bei meinem Script das Adminlevel abgefragt wird, ich möchte es auch endlich verstehen, lernen, umsetzten.