Wenn du in dem Bann befehl, sagst "Du wrdest von %s gebannt" und %s = adminname , dann kannst du beim Login prüfen ob er gebannt ist wenn ja sendest du ihm eine nachricht mit format und nem string mit dem Inhalt "Admin %s hat dich gebannt." und %s = adminname musst du natürlich noch bei dem public oder stock new adminname.
Hoffe konnte dir helfen, möchte dir nicht den fertigen Code geben, bischen nachdenken
Beiträge von skillz33
-
-
-
Du musst Tanke Info definieren... Wieso nimmst du nicht ganz einfache Tanksysteme aus dem Forum, ist doch viel einfacher und du lernst dazu wenn du dir die Schritte gut anguckst.
-
wenn oben ins script
new KrankenHaus[MAX_PLAYERS];ocmd:unkrankenhaus(playerid, params[])
{
if(!istadmin(playerid)) return sendclientmessage(....)
if(KrankenHaus[playerid] !=1) "oder == 0 beides richtig " return sendclientmessage...
setplayerpos..
setplayerinterrior...
return 1;
}Ich denke das sind genug Gedächtnisstützen. Nun bitte brain anschalten und umsetzen.
-
Mach einen command deiner Wahl, in dem einfach ein pvar (falls du benutzt) auf 0 gesetzt wird und der Spieler dann zu einem bestimmten Ort teleportiert wird.
Ich verstehe nicht, wo da das Problem liegt. -
OnGameModeInit
SetTimer("injail", 60000, 1); // Eine minuteocmd:jail(playerid, params[])
{
new pID;
new Float:x,Float:y,Float:z;
new string[128];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_WHITE,"/jail [ID]");
GetPlayerPos(pID,x,y,z);
if(!IsPlayerInRangeOfPoint(pID,2,x,y,z)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht in deiner Nähe!");
if(!IsPlayerInRangeOfPoint(pID,2,1526.9745,-1677.7667,5.8906)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht in der LSPD Garage!");
if(!IsPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,ROT,"Du bist kein Cop!");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht Online!");
if(GetPVarInt(pID,"Wantedlevel") ==0) return SendClientMessage(playerid,ROT,"Der Spieler hat keine Wanteds!");
//if(pID == playerid) return SendClientMessage(playerid,ROT,"Du kannst dich nicht selbst einsperren!");
SetPlayerPos(pID,264.5515,77.3523,1001.0391);
SetPlayerInterior(pID, 6);
ResetPlayerWeapons(pID);
GivePlayerMoney(playerid,500);
SendClientMessage(pID,ROT,"Geh nicht Off, Jail System speichert deine Knastzeit nicht! *WIRD GEFIXXT*"); //wenn entbuggt - zeile rausnehmen!
SendClientMessage(playerid,COLOR_WHITE,"** Spieler eingebuchtet + $500 Lohn. **");
new jtime = GetPlayerWantedLevel(pID)*2;
//knastzeit = SetTimerEx("knasttimer",GetPlayerWantedLevel(pID)*1000*60*2,false,"i",pID);
SetPVarInt(pID,"Knastzeit",jtime);
SetPVarInt(pID,"knast",1);
InKnast[playerid] = 1;
format(string, sizeof(string), "Du gehst für %i minuten in den Knast.",GetPVarInt(pID,"Knastzeit"));
SendClientMessage(pID,COLOR_WHITE,string);
SetPlayerWantedLevel(pID, 0);
return 1;
}ocmd:jailtime(playerid, params[])
{
new string[128];
if(InKnast[playerid] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht im Knast!");
format(string,sizeof(string),"* Du musst noch %iminuten deine Strafe absitzen!",GetPVarInt(playerid,"Knastzeit"));
SendClientMessage(playerid,COLOR_WHITE, string);
return 1;
}forward injail(playerid);
public injail(playerid)
{
if(IsPlayerConnected(playerid) || GetPVarInt(playerid,"knast")==1)
{
SetPVarInt(playerid,"Knastzeit",-1);
return 1;
}
if(GetPVarInt(playerid,"Knastzeit")==0)
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1545.8807,-1675.3688,13.5612);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid,ROT,"[Knast Information]{FFFFFF} Du hast deine Haftstrafe abgesessen und verlierst 500€.");
InKnast[playerid] = 0;
//KillTimer(knastzeit);
SetPVarInt(playerid,"knast",0);
SetPVarInt(playerid,"Knastzeit",0);
SetPlayerWantedLevel(playerid,0);
GivePlayerMoney(playerid,-500);
return 1;
}
return 1;
}Dort steht dann zwar "Du kommst für 2minuten in den Knast!" (bei 1wanted) aber wenn ich dann /jailtime eingebe steht da "..noch 0minuten.." und ich komme nach 2 minuten nicht raus...
Wo ist denn das Problem?Edit: Dieses Problem wurde durch löschen des alten codes @ OnPlayerUpdate gelöst. Aber leider wird der Spieler, sobald die Jailzeit auf 0 ist, nicht aus den jail teleportiert...
public injail(playerid)
{
if(IsPlayerConnected(playerid) || GetPVarInt(playerid,"knast")==1)
{
SetPVarInt(playerid,"Knastzeit",GetPVarInt(playerid,"Knastzeit")-1);
return 1;
}
//if(GetPVarInt(playerid,"Knastzeit")==0)
if(GetPVarInt(playerid,"Knastzeit")<=0)
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1545.8807,-1675.3688,13.5612);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid,ROT,"[Knast Information]{FFFFFF} Du hast deine Haftstrafe abgesessen und verlierst 500€.");
InKnast[playerid] = 0;
KillTimer(timerjail);
SetPVarInt(playerid,"knast",0);
SetPVarInt(playerid,"Knastzeit",0);
SetPlayerWantedLevel(playerid,0);
GivePlayerMoney(playerid,-500);
return 1;
}
return 1;
}Edit2: Es geht nun, es lag an dem return bei public bei der 1. abfrage im public. Danke für die Hilfe!
-
Die Variable wird bereits gespeichert. Timer auf 1minute stellen, kein Problem, aber den rest verstehe ich nicht so ganz...
-
Hallo,
ich habe mir ein Jail System, welches mit dem Wantedsystem zusammenarbeitet gebastelt. Dieses funktioniert wie folgt, wenn der Player 3 Sterne hat, wird er für 6 minuten ins Jail gebracht, da Wantedlevel * 2 , diese Zeit wird auch mit Dini gespeichert, funktioniert alles.
Ich habe diesem Timer daher eine ID zugewiesen, d.h. knastzeit = SetTimerEx... , leider wird diese Zeit nicht gespeichert, wenn sie runtergeht, also der PVar bleibt 6 obwohl ich schon >1 drin bin. Wie kann ich es machen, damit die zeit, die runtergeht gespeichert wird, also wenn ich eine minute drin bin, dass der PVar auf 5 geht??ocmd:jail(playerid, params[])
{
new pID;
new Float:x,Float:y,Float:z;
new string[128];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_WHITE,"/jail [ID]");
GetPlayerPos(pID,x,y,z);
if(!IsPlayerInRangeOfPoint(pID,2,x,y,z)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht in deiner Nähe!");
if(!IsPlayerInRangeOfPoint(pID,2,1526.9745,-1677.7667,5.8906)) return SendClientMessage(playerid,ROT,"Der Spieler ist nicht in der LSPD Garage!");
if(!IsPlayerInFrakt(playerid,1)) return SendClientMessage(playerid,ROT,"Du bist kein Cop!");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Der angegebene Spieler ist nicht Online!");
if(GetPVarInt(pID,"Wantedlevel") <=1) return SendClientMessage(playerid,ROT,"Der Spieler hat keine Wanteds!");
//if(pID == playerid) return SendClientMessage(playerid,ROT,"Du kannst dich nicht selbst einsperren!");
SetPlayerPos(pID,264.5515,77.3523,1001.0391);
SetPlayerInterior(pID, 6);
ResetPlayerWeapons(pID);
GivePlayerMoney(playerid,500);
SetPlayerWantedLevel(pID, 0);
format(string, sizeof(string), "Du gehst für %i minuten in den Knast.",GetPVarInt(pID,"Wantedlevel")*2);
SendClientMessage(pID,COLOR_WHITE,string);
SendClientMessage(pID,ROT,"Geh nicht Off, Jail System speichert deine Knastzeit nicht! *WIRD GEFIXXT*"); //wenn entbuggt - zeile rausnehmen!
SendClientMessage(playerid,COLOR_WHITE,"** Spieler eingebuchtet + $500 Lohn. **");
knastzeit = SetTimerEx("knasttimer",GetPlayerWantedLevel(pID)*1000*60*2,false,"i",pID);
SetPVarInt(pID,"Knastzeit",knastzeit);
SetPVarInt(pID,"knast",1);
InKnast[playerid] = 1;
return 1;
}ocmd:jailtime(playerid, params[])
{
new string[128];
if(InKnast[playerid] == 0) return SendClientMessage(playerid,ROT,"Du bist nicht im Knast!");
format(string,sizeof(string),"* Du musst noch %iminuten deine Strafe absitzen!",GetPVarInt(playerid,"Knastzeit"));
SendClientMessage(playerid,COLOR_WHITE, string);
return 1;
}public knasttimer(playerid)
{
if(GetPVarInt(playerid,"Knastzeit") == 0)
{
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1545.8807,-1675.3688,13.5612);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid,ROT,"[Knast Information]{FFFFFF} Du hast deine Haftstrafe abgesessen und verlierst 500€.");
InKnast[playerid] = 0;
//KillTimer(knastzeit);
SetPVarInt(playerid,"knast",0);
SetPVarInt(playerid,"Knastzeit",0);
SetPlayerWantedLevel(playerid,0);
GivePlayerMoney(playerid,-500);
}
return 1;
}Hoffe ihr könnt mir bei diesem Problem helfen. Danke.
-
Vielen Dank, es funktioniert nun.
-
Der Clown hat ID 0, richtig? Du lässt dir mit dem Initalisierungswert der Variabel 'pID' den Namen per GetPlayerName() geben, da der Initalisierungswert der Variabel 0 ist, ist der Name logischerweiße auch falsch.
D.h. ich soll abfragen ob pID über 0 ist oder wie soll ich das machen? -
Hallo,
ich schreibe ein Selfmade und habe dort NPC's drin.
Mein Wanted Befehl sieht so aus:
ocmd:wanted(playerid, params[])
{
new wanteds,pID;
new Wanted[128],Cop[128],Verbrecher[128],Grund[128];
new pname[MAX_PLAYER_NAME];
new pname2[MAX_PLAYER_NAME];
GetPlayerName(pID,pname,sizeof(pname));
GetPlayerName(playerid,pname2,sizeof(pname2));
if(pID == playerid) return SendClientMessage(playerid,ROT,"Du kannst dir nicht selber Wanteds geben!");
if(sscanf(params,"uis",pID,wanteds,Grund))return SendClientMessage(playerid,ROT,"/wanted [Spieler] [Wantedzahl] [Grund]");
if(wanteds<1||wanteds>6)return SendClientMessage(playerid,ROT,"Du kannst nur minimal 1 Wanted oder maximal 6 Wanteds geben!");
if(!IstPolizist(playerid)) return SendClientMessage(playerid,ROT,"Du bist kein Cop!");
SetPlayerWantedLevel(pID, GetPlayerWantedLevel(pID)+wanteds);
SetPVarInt(pID,"Wantedlevel",GetPlayerWantedLevel(pID));
format(Cop,sizeof(Cop)," Du hast %s Wanteds gegeben. Grund %s",pname,Grund);
format(Verbrecher,sizeof(Verbrecher)," %s hat dir %i Wanteds Gegeben. Grund: %s",pname2,wanteds,Grund);
format(Wanted,sizeof(Wanted), "Nun ist dein Wantedlevel auf %i gestiegen!",GetPlayerWantedLevel(pID));
SendClientMessage(playerid,BLAU,Cop);
SendClientMessage(pID,ROT,Verbrecher);
SendClientMessage(pID,ROT,Wanted);
new SpielerDatei[128];
format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",pname);
dini_IntSet(SpielerDatei, "WantedLevel", GetPlayerWantedLevel(pID));
return 1;
}
Wenn ich jetzt /wanted 3 2 TEST eingebe, kommt Du hast Clown wanteds gegeben. Grund: Test
Clown = NPC
OnPlayerSpawn
if(IsPlayerNPC(playerid))
{
new botname[MAX_PLAYER_NAME];
GetPlayerName(playerid,botname,sizeof(botname));
if(!strcmp(botname,"Clown",true))
{
SetPlayerInterior(playerid,0);
SetPlayerSkin(playerid,264);
Spieler[playerid][Skin] = 264;
}
else if(!strcmp(botname,"Mofahaendler",true))
{
SetPlayerInterior(playerid,0);
SetPlayerSkin(playerid,227);
Spieler[playerid][Skin] = 227;
}
else if(!strcmp(botname,"Zollbeamter",true))
{
SetPlayerInterior(playerid,0);
GivePlayerWeapon(playerid,3,1);
SetPlayerSkin(playerid,281);
Spieler[playerid][Skin] = 281;
}
}
if(IsPlayerNPC(playerid))return 1;Habe das Probem auch bei /pban
Vlt wenn ihr mir bei dem command helfen könnt, kann ich das bei /pban auch fixxen...
Ich sehe einfach kein Fehler... benutze Dini für account speichern.Mit freundlichen Grüßen
Skillz