Beiträge von SoulMan

    Dann guck im Script nach, da müsste, wenn ich mich nicht irre irgendwo
    eine Datei erstellt werden, die den Namen des Ordners in sich hat. Guck mal, wenn du mit dini speicherst nach dini_Create
    Wir haben leider keine Zeilen, daher ist es ein wenig schwierig was Genaues zu sagen. ^^

    Kann man das nicht einfach so einstellen, dass der bei zu vielen Zeichen
    nicht mehr weiterschreibt? Weil das kann doch nicht sein, dass man meinen Server so crashen kann..:S

    Hey, ich habe ein ziemlich lästiges Problem, wenn ich zu lange Texte eingebe, crasht der Server
    immer. Das Problem ist extrem behindernd u. ich würde es liebend gern aus der Welt schaffen, hab aber leider
    keine Ahnung, wie ich das behebe. Hab ich die Stringgröße evtl. zu groß angegeben an manchen stellen?
    Wäre schön, wenn mir jmd. helfen kann.
    Hier mal mein /me [Handlung] Text-Befehl als Bsp. als dieser zu lang war, crashte mein server.
    COMMAND:me(playerid,params[])
    {
    new Float:x,Float:y,Float:z;
    new text[64];
    if(sscanf(params, "s",text))return SendClientMessage(playerid,0xC8C8C8FF,"/me [Handlung]");
    GetPlayerPos(playerid,x,y,z);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInRangeOfPoint(i,20.0,x,y,z))
    {
    new string[128];
    format(string,sizeof(string),"*%s %s*",SpielerName[playerid],text);
    SendClientMessage(i,0xC17DCCFF, string);
    }
    }
    return 1;
    }

    Danke, hab aber noch n Warning.
    C:\Dokumente und Einstellungen\JOSHUA\Desktop\WalkerScript\WalkerScript\WalkerScript.pwn(2711) : warning 219: local variable "i" shadows a variable at a preceding level
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    Weiß zwar, was das bedeutet, will jetzt aber da nichts rauslöschen. :P

    Ich für meinen Teil hole mir öfter Hilfe von Maddin u. ]hp[ , weswegen sie in den "SpecialThanks" erwähnt werden.
    Fände es ungerecht, die Arbeit Anderer als Selfmade zu bezeichnen. Ich würde jetzt mal ganz ethisch sagen, dass es etwas moralisches ist, aber
    keinesfalls rechtlich. Dich wird sicher niemand dafür anzeigen können, dass du Teile aus einem Script rauskopierst. Das wäre auch lächerlich.
    mfG
    Walker

    Sieht ganz gut aus, erinnert mich jedoch eher weniger an ein Parkhaus. :D
    Zuviel Holz eben, ansonsten sauber gemapt. Weiter so!
    8/10

    Also ich benutze gerade als Timer das hier. Steht halt beim Spawn, damit der Timer geladen wird.
    if(pInfo[playerid][JailTime] >= 1)
    {
    SetTimerEx("Jail",1000,1,"i",playerid);
    return 1;
    }
    Beim /arrest Befehl wird der Timer aufgerufen. Hier der ganze Befehl (Zeit ist extra so kurz zum Testen)
    COMMAND:arrest(playerid,params[])
    {
    new pID;
    if(sscanf(params, "u",pID))return SendClientMessage(playerid,0xC8C8C8FF,"/einsperren [ID/Name]");
    if (!IsPlayerConnected(pID))return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler ist nicht online!");
    if(pInfo[playerid][Fraktion] != 4 && pInfo[playerid][Fraktion] != 9)return SendClientMessage(playerid,0xC8C8C8FF,"Du bist kein Cop/FBI!");
    if(GetPVarInt(playerid, "dienst") == 0) return SendClientMessage(playerid,0xC8C8C8FF,"Du bist nicht im Dienst!");
    else
    {
    if(IsPlayerInRangeOfPoint(playerid,8,267.8802,82.1092,1001.0391) && pInfo[pID][Wanteds] >= 1)
    {
    new str[128],str2[128];
    SetTimerEx("Jail",1000,1,"i",pID);
    pInfo[pID][JailTime] = pInfo[pID][Wanteds] * 1000 * 2;
    pInfo[pID][Wanteds] = 0;
    pInfo[pID][Free] = 0;
    SetPlayerWantedLevel(pID,0);
    SetPlayerPos(pID,264.7867,82.0650,1001.0391);
    SetPlayerInterior(pID,6);
    SetPlayerVirtualWorld(pID,38);
    SetPVarInt(pID, "dienst", 0);
    format(str,sizeof(str),"<< %s hat den Verdächtigen %s eingesperrt >>",SpielerName[playerid],SpielerName[pID]);
    format(str2,sizeof(str2),"Du wurdest von %s für %i Minuten eingesperrt!",SpielerName[playerid],pInfo[pID][JailTime]/60000);
    SendClientMessageToAll(0xFF6347AA,str);
    SendClientMessage(pID,0xFF6347AA,str2);
    }
    else return SendClientMessage(playerid,0xC8C8C8FF,"Du bist nicht an den Zellen oder der Spieler hat keine Wanteds!");
    }
    return 1;
    }


    Und die public
    public Jail(playerid)
    {
    if(pInfo[playerid][JailTime] >= 1)
    {
    SetPlayerPos(playerid,264.7867,82.0650,1001.0391);
    SetPlayerInterior(playerid,6);
    SetPlayerVirtualWorld(playerid,38);
    pInfo[playerid][JailTime] -= 1000;
    }
    else if(pInfo[playerid][JailTime] == 0 && pInfo[playerid][Free] == 0)
    {
    pInfo[playerid][Free] = 1;
    SetPlayerPos(playerid,1552.5352,-1675.6243,16.1953);
    SetPlayerFacingAngle(playerid,90);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SendClientMessage(playerid,0xC8C8C8FF, "Du hast deine Strafe abgesessen! Du bist wieder frei!");
    }
    return 1;
    }


    Ich musst Free einbauen, damit man nicht nach der Entlassung andauernd neu spawnt.
    Standardmäßig ist Free immer auf 1.

    Naja, aber ich find deine Variablen ein wenig sagen wir mal verwirrend.
    Warum new eingeknastet?
    Hab doch ne Variable. Naja, ich versuch's jetzt mal. :P
    mfG
    Walker


    //Muss das nicht SetTimerEx sein? Der muss ja die public aufrufen.


    //2 So, habs jetzt endlich, hab aber noch eine Frage, wie kann ich einstellen, dass sich der Timer nicht mehr wiederholt, wenn man bereits eingespert ist?
    Man spawnt nämlcih immerwieder im Knast nachm arresten, also man wurde eingesperrt und wird beim ablaufen der zeit andauernd neu geportet xD

    Naja, du erstellst den Befehl und setzt eine Variable, also z.B. new Level; Dann definierst du einfach, dass Level gleich deine AdminVariable ist, bei mir ist es so
    pInfo[pID][AdminLevel] = Level;


    mfG
    Walker


    //Beim disconnect wird ja, sofern du es so hast, die neue Variable gespeichert. ;)
    Musst das also nicht extra im Befehl haben.

    Blamier dich nicht selber.
    Deiner Rechtschreibung nach würde ich dich als 13 - 14 einschätzen.
    Und es heißt "Niveau". ;)
    mfG
    Walker


    //Sobald das geklärt wurde, kann mein Beitrag gelöscht werden bzw. ich tue es selber.
    Möchte nur, dass er dies noch liest. ;)


    //2 Hui, und der nächste Thread von dir. [ DM ] [ 0.3 ] Team - Deathmatch - San Fierro
    Wieviel noch?

    Schön die SF TDM-Beschreibung kopiert. :pinch:
    Ist doch nicht dein Ernst oder? Niveau = 0.
    Vote 4 Close + Verwarnung, kann doch nicht sein.
    mfG
    Walker


    //Klick

    Bin mal gespannt.


    //Achja, ich denke, dass sich die ganzen GF Reallife Scripts auf Dauer nicht halten.
    Selfmade ist immer besser, da man es kontrollieren kann. Wenn ich mit meinem Roleplay-Gamemode fertig bin, werde
    ich ein Team Deathmatch Script starten, dass ich evtl. releasen werde. Aber mal sehen, wie lang es noch dauert mit meinem RP Selfmade.
    mfG
    Walker

    Dann fügt eine neue Variable hinzu, z.B.
    AdminLevel u. fragt bei den Befehlen einfach ab, wie hoch dieses Level ist. Ist es dann z.B. größer als 3,
    darf er diesen Befehl ausführen. Bei /kick müsste am Ende Kick(pID); stehen, bei /ban Ban(pID); .
    Warn's könnt ihr auch als Variable einschreiben u. dann bei /warn zuweisen. Wenn ihr ein wenig scriptkentnisse
    besitzt, ist es eig. nicht so schwer. Hört sich nur auf dem ersten Blick schwer an. ;)
    Wenn ihr Hilfe benötigen solltet, schreibt mich heute Abend an.
    mfG
    Walker

    pInfo[userId][frakleader] = 1;
    Definiert das hier nur, dass jemand Leader von irgendwas ist oder von Fraktion 1?



    Ich würde es so machen:
    dcmd_makeleader(playerid, params[])
    {
    new userId, frakId, index;
    userId = strval(strtok(params, index));
    frakId = strval(strtok(params, index));
    if (pInfo[playerid][AdminLevel] > 1)
    {
    if (IsPlayerConnected(userId))
    {
    pInfo[userId][fraktion] = frakId; //Die ID, die du bei /makeleade rangibst definiert nun die ID der Fraktion, in der man ist.
    pInfo[userId][frakrang] = 12;
    pInfo[userId][frakleader] = 1;
    SendClientMessage(playerid, GELB, "Du hast einen Spieler zum Leader gemacht.");
    SendClientMessage(userId, HELLBLAU, "Du wurdest zum Leader einer Fraktion gemacht.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, ROT, "Spieler nicht online.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, ROT, "Du bist besitzt nicht das nötige Adminlevel");
    return 1;
    }
    }