Beiträge von skillz33

    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 :)

    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 minute


    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") ==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! :)

    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.

    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