Beiträge von DeathlyPhil

    Hi,
    Ich würde gerne die Koordinaten aus dem Command:
    if (strcmp(cmd, "/zone", true) == 0)
    {
    new Float:X,Float:Y,Float:Z;
    SetTimerEx("AntiZombieZone",100,1,"i",playerid);
    GetPlayerPos(playerid, X, Y, Z);
    CreateObject(16370, X, Y, Z, 0, 0, 0);

    }
    return 1;
    }
    }[/pwn]


    für den SetTimerEx bei IsPlayerInRangeOfPoint
    public AntiZombieZone(playerid)
    {
    if(Spieler[playerid][team] == 3)
    {
    if(IsPlayerInRangeOfPoint(playerid,10.0, X, Y, Z)
    {
    SendClientMessage(playerid,COLOR_YELLOW," Es geht :P");
    return 1;
    }
    }
    return 1;
    }
    übernehmen.


    1.geht das überhaupt?
    2.Und wenn ja wie mache ich das?


    ALso von Command die X;Y;Z Koords für den Timer für IsPlayerInRangeOfPoint dadrinne verwenden.


    hoffe man versteht was ich meine :P

    Geht leider auch nicht ich hab das eine umgeändert da man ja alle 4 Seiten braucht aber es geht immer noch net
    public check(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid, x, y, z);
    if(x >= minX && x <= maxX && y >= minY && y <= maxY)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerAdmin(i))
    {
    if(Spieler[i][eingeloggt] == 1)
    {
    if(IsPlayerInArea(i,-2989.536, 1763.359, 2977.858, 2989.536) || IsPlayerInArea(i,-2989.536, -2942.825, 2977.858, -864.1628) || IsPlayerInArea(i,-1237.855, -2942.825, 2977.858, 2989.536)) //abc
    {
    SendClientMessage(i,COLOR_RED, " CHEATER AN DIE WAND !!!!");
    Kick(i);
    }
    }
    }
    }
    }
    return 1;
    }


    Oder ist das falsch?

    Hi,
    Ich hab es so gemacht dass wenn jemand in ein Ganggebiet geht, gekickt wird . Das geht ja auch alles nur ich habs dann SetTimerEx probiert aber ich werde nich gekickt wenn ich in das ganggebiet reingehe hier mal das Script: (Nur wenn ich Id 0 hab geht es :P)


    forward check(playerid, Float:o_x, Float:o_y, Float:o_z);


    Unter OnPlayerSpawn

    SetPlayerWorldBounds(playerid, -1237.855, -2977.858, 1611.547, -735.7062);
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetTimerEx("check",100,true,"ai",x,y,z);


    public check(playerid, Float:o_x, Float:o_y, Float:o_z)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerAdmin(i))
    {
    if(Spieler[i][eingeloggt] == 1)
    {
    if(IsPlayerInArea(i,-2989.536, 1763.359, 2977.858, 2989.536) || IsPlayerInArea(i,-2989.536, -2942.825, 2977.858, -864.1628) || IsPlayerInArea(i,-1237.855, -2942.825, 2977.858, 2989.536)) //abc
    {
    SendClientMessage(i,COLOR_RED, " Du wurdest gekickt!");
    Kick(i);
    }
    }
    }
    }
    return 1;
    }


    Ich hoffe ihr könnt mir helfen
    //Edit Ich hatte vergessen zu erwähnen dass ich vorher SetTimer hatte und es dann nur mit Id0 ging bei ExTimer geht es auch nicht mit id 0 :(

    Hi,
    Also erst mal mein Problem :
    Ich will das der Bot nur dann connected wenn ein neuer Spieler mit dem Team ? SPAWNT also nicht beim Connecten sondern beim Spawnen.
    Ich hatte es mit einem Timer versucht aber das If wird ignoriert nur die Zeit bleibt erhalten : Also bot spawnt nach 14Sekunden egal ob der aus dem Team da ist oder nicht.


    1 Frage: Gibt es ein Befehl womit ein Bot auch wieder disconnectet werden kann also so in der Art wie DisConnect(playerid) ?


    //Edit die eine Frage hab ich rausgenommen hatte sich erledigt nur die andere bleibt noch offen


    So ich hoffe es ist verständlich :P

    Hier :
    forward check();


    Dann unter OnPlayerSpawn: (Hab ich nach gaanz unten gemacht)
    SetTimer("check",1000,1);


    public check()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerAdmin(i))
    {
    if(IsPlayerInArea(i,583.8938, -2078.662, 1074.365, -1681.614))
    {
    return 1;
    }
    if(IsPlayerInArea(i,-2989.536, 1763.359, 2977.858, 2989.536) || IsPlayerInArea(i,-2989.536, -2942.825, 2977.858, -864.1628) || IsPlayerInArea(i,-1237.855, -2942.825, 2977.858, 2989.536)) //abc
    {
    SendClientMessage(i,COLOR_RED, " CHEATER WEG !!!!");
    Kick(i);
    }
    }
    }
    return 1;
    }
    Die public davon


    Und der stock stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX,Float:pY,Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) return 1;
    else return 0;
    }
    //Edit hier der Login DIalog falls du ihn brauchst
    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext) || strcmp(inputtext, " ", false) == 0)//
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Login","Abrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
    {
    Spieler[playerid][team] = 0;
    Spieler[playerid][admin] = 0;
    Spieler[playerid][score] = 0;
    Spieler[playerid][skin] = 0;
    Spieler[playerid][pwaffen] = 0;
    Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    wenn du noch mehr brauchst sag es nur ^^
    //EDIT so sry war 3 Ostsee, hab was dazu gemacht ich hatte eine Zeile vergessen :P

    Hi,
    Ich hab 3 Gangzonen gemacht bei denen wenn jemand sie betritt man gekickt wird.
    Wenn ich jetzt den Server starte dann kommt entweder der Login oder Registrierungsdialog.
    So wenn ich das Erste mal auf den Server gehe werde ich nicht gekickt.
    Wenn ich den Server anlasse und wieder raufgehe werde ich beim loginDialog gekickt weil der Login dialog in einer Kickzone angezeigt wird.(Bei ersten aber auch und da passiert es nicht)


    Hat jemand eine Idee wie ich das Fixen kann?
    //EDIT: Wenn Script benötigt poste ich den Teil gerne.

    Hi,
    bei mir geht es nicht also kein Bot erscheint :(
    Hier mal das Script :
    #include <a_npc>


    // name der recordeten datei (im beispiel war es CARBOT oder ZIVIBOT)
    #define RECORDING "StartBot"
    // Record typ, 1 = in einen fahrzeug, 2 = zu fuß
    #define RECORDING_TYPE 1


    main()
    {
    }


    public OnRecordingPlaybackEnd()
    StartRecordingPlayback(RECORDING_TYPE, RECORDING);


    public OnNPCEnterVehicle(vehicleid, seatid)
    StartRecordingPlayback(RECORDING_TYPE, RECORDING);


    public OnNPCExitVehicle()
    StopRecordingPlayback();


    #include "a_npc"


    new STARTBOTCAR


    ConnectNPC("CARBOT","StartBot");// erstes carbot steht für den namen hier im script, 2tes wie der record heißt!!!!
    STARTBOTCAR = CreateVehicle(501, 2000.0, 2000.0, 2000.0, 7.0, 0, 0, -1);// im prinzip eig egal wo man die hinspawnt, die weden später geportet denke ich (war zumindest so)


    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, botname, sizeof(botname));
    if(!strcmp(botname, "StartBot", true))
    {
    PutPlayerInVehicle(playerid, STARTBOTCAR, 0);
    }
    return 1;
    }


    und server.cfg


    echo Executing Server Config...
    lanmode 1
    rcon_password record
    maxplayers 50
    port 7777
    hostname SA-MP 0.3 Server
    gamemode0 Z
    filterscripts
    announce 0
    query 1
    weburl http://www.sa-mp.com
    maxnpc
    onfoot_rate 40
    incar_rate 40
    weapon_rate 40
    stream_distance 300.0
    stream_rate 1000



    pls helft mir :(

    Hi,
    Ich hab ein problem und zwar hab ich ein Motorsystem wo man den Motor starten muss, aber wenn man dabei rausgezogen wird ist man logischer weise dann noch gefreezt.


    Nun will ich


    if(!ispassenger)
    {
    TogglePlayerControllable(playerid,0);
    return 1;
    }


    so machen, nur gilt dies auch für den Fahrer? Oder könnte man das anders machen? Oder aber brauch man für den Fahrer noch etwas extra?


    Danke schonmal ^^

    Warum kommt mein Bot nicht auf meinen Testserver? Keine Errors bloß er kommt net:



    #include "a_npc"
    new Bus;


    ConnectNPC("BOT","BOT");// erstes carbot steht für den namen hier im script, 2tes wie der record heißt!!!!
    Bus = CreateVehicle(501, 2000.0, 2000.0, 2000.0, 7.0, 0, 0, -1);


    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, botname, sizeof(botname));
    if(!strcmp(botname, "Bus", true))
    {
    PutPlayerInVehicle(playerid, Bus, 0);
    return 1;
    }
    }


    #include <a_npc>


    // name der recordeten datei (im beispiel war es CARBOT oder ZIVIBOT)
    #define RECORDING "BOT"
    // Record typ, 1 = in einen fahrzeug, 2 = zu fuß
    #define RECORDING_TYPE 1


    main()
    {
    }


    public OnRecordingPlaybackEnd()
    StartRecordingPlayback(RECORDING_TYPE, RECORDING);


    public OnNPCEnterVehicle(vehicleid, seatid)
    StartRecordingPlayback(RECORDING_TYPE, RECORDING);


    public OnNPCExitVehicle()
    StopRecordingPlayback();



    pls helft mir ^^

    Hi,
    Ich möchte gerne ein /kick /ban system für Admins alleine versuchen ich hab mir mal von Gf das angeguckt und könnte mir jemand ein paar schritte davonb genauer erklären :D tmp = ? strtok = ? idx = ?


    if(strcmp(cmd, "/kick", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /kick [playerid/PartOfName] [reason]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /kick [playerid/PartOfName] [reason]");
    return 1;
    }
    new year, month,day;
    getdate(year, month, day);
    format(string, sizeof(string), "AdmCmd: %s was kicked by %s, reason: %s (%d-%d-%d)", giveplayer, sendername, (result),month,day,year);
    KickLog(string);
    Kick(giveplayerid);
    format(string, sizeof(string), "AdmCmd: %s was kicked by %s, reason: %s", giveplayer, sendername, (result));
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    return 1;
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d is not an active player.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }



    Danke schonma.



    P.S Ja ich hab Sufu benutzt nur meisstens bin ich zu blöd dafür :D Wenn ihr n Tutorial dafür habt oder etwas ähnliches mit erklärung pls posten Danke ^^