Beiträge von Bubelbub

    Also das heißt das man garnicht auf dem Ipod Touch Scripten und Compilieren kann? Weil da ich schnell mit dem Ipod Touch schreiben kann koennte ich locker in Paar Stunden 1k Zeilen scripten :]


    Doch, les mal meinen Beitrag über deinem.



    Und in ein paar Stunden locker 1k Zeilen ?(
    Dann schreib in ein paar Stunden am PC 10k Zeilen :thumbup:

    Die App heißt "Notizen".


    Sobald du am PC bist dann synchronisieren ODER einfach an deine eigene eMail Adresse schicken.



    Aber im Endeffekt:
    Total unnötig.
    g3neration hat definitiv Recht.
    Aufm iPhone bzw. iPod zig tausend Klammern, Absätze usw. machen...
    Wobei man "Tabs" garnicht schafft.


    Wenn man im Bett Langeweile hat, kann man sich auch nen Zettel nehmen und alles "Planen".




    //edit:

    Zitat

    was jedoch möglich wäre, wär ein Online-Editor + Compiler (Vorrausgesetzt Windows Server)


    Wenn du mir nen kleinen zur Verfügung stellen kannst.
    Dann mach ich da einen kleinen Editor mit allem rauf :thumbup:
    Editor + Anmelden/Registrieren + Kompilieren
    Vielleicht sogar direkt "Live-Compilieren".
    Dass man den Monitor vom iPod 2x teilt und dann unten direkt nen Live Kompilierer sieht.
    Vielleicht greifen die PC User dann auch darauf zu.


    Man müsste nur gucken, wie man das ganze absichert...
    ... weil seine Super Scripte wird da keiner rauf packen ;D

    byserv.de

    Richtig, dort wählst du

    aus.

    bekommt man post nach hause wen man ein hat?

    Nein.
    Theoretisch kannst du auch eine falsche Adresse angeben.
    Vorausgesetzt du beachtest die Gesetze.
    http://dejure.org/gesetze/StGB/269.html

    Falls dein V-Server gehacked wird, hast du den ganzen Mist am Hals.

    Naja nicht unbedingt.
    Ich meine "wenn" man gehackt wird ist erstmal ein Thema für sich.
    Er muss theoretisch nur auf die Zugänge usw. achten.
    Und Hacker suchen sich meist nur leichte oder "sich lohnende" Server aus.
    Was soll man mit so nem kleinen Sa-MP Server 8|
    Oder TS am besten noch, wo dann nich der Server gehackt werden muss sondern nur der TS 8o




    Also im Endeffekt:
    Adresse bei Anbietern angeben ist nicht schlimm.
    Mit der eigenen Homepage = Impressum ist es dann schon schlimmer.
    Weil du dort einen "Rechtlichen Verkehr" eingehst.
    Bei so einem V-Server benutzt du auch den Rechtlichen Verkehr.
    Und im Endeffekt:
    Die Anbieter erwischen dich oder deine Eltern durch deine IP -Adresse.
    Dann zahlt man aber noch mehr...

    Ich habe immer noch so im Hinterkopf..
    Dein Name war ja früher "hostingsquare.de" und da habe ich nicht immer gutes von dir gehört...


    Lol ?(


    Zitat

    Hosting N More
    Einfach nur zu Empfehlen. Er Hilft, Er Arbeitet, Er ist Schnell.
    Auf Anfrage bekommt ihr Testzeiten.
    Er Macht Super Preise.
    Einfach nur zu EMPFEHLEN!

    Das ist doch seine Signatur.
    Aber wenn er das ist, warum schreibt er denn dann "Einfach nur zu Empfehlen. Er hilft, Er Arbeitet, Er ist schnell"????
    Das check ich irgendwie nicht.


    Bzw. doch, aber ist doch eher ein Eigenlob in der Werbung?


    Bisschen Fail? :huh:

    Bots werden dennoch im Script wie ganz normale Spieler behandelt. Wenn also deine Bots bereits anhalten, wenn der Spieler in der Nähe ist, kannst du anhand von Winkelfunktionen und GetPlayerFacingAngle das Stoppen scripten.


    Ebenso geht das, wenn ein Spieler in der Nähe vom Bot Stop in den Chat eingibt.


    Naja das ist ja alles soweit ^^



    Es geht halt so um kleine "Verbesserungen" die die Bots noch "cooler" machen.


    Aber wenns nur Ingame geht mitm Aufnehmen :S
    Schade Schade.

    Einfach....
    new textv2[128],
    name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof name);
    format(textv2, sizeof textv2, "[%i] %s: {00FFFF}%s", playerid, name, text);
    SendClientMessageToAll(0x00FFFFFF, textv2);


    Farbe vllt. noch ändern ^^

    Omg was macht ihr für lange Codes :O


    public WantedShow()
    {
    new str[22];
    for(new i; i < MAX_PLAYERS; i++)
    if(PlayerInfo[i][team] == 1 || PlayerInfo[i][team] == 2 || PlayerInfo[i][team] == 3)
    {
    format(str, sizeof str, "WantedLevel: %i", WanteLevel[i]);
    SetPlayerChatBubble(i, str, 0x00CC00FF, 20.0, 6000);
    }
    return 1;
    }

    Why :O? Ich hab einfach sein Befehl genommen und paar sachen eingefügt


    Player Variablen sind nicht 24/7 im Arbeitsspeicher.
    Sie werden gelöscht wenn sie gelöscht sind.
    Außerdem werden diese nur gesetzt wenn du sie setzt.
    Beim PlayerDisconnect verschwinden sie auch.


    D.h. du hast die Zahl von "ausrauben[MAX_PLAYERS]" nicht 24/7 im Arbeitsspeicher.
    Sondern nur ab und zu eine Variable.


    Bei 10 Spielern dauerhaft ist also weniger Arbeitsspeicher wie bei dauerhaft 500 Spielern == Dein Script :!:

    Blood ok hat geklappt danke :) evtl kann man noch einfügen das man +4 wanteds bekommt wie geht das ;D ??


    SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 4);


    Aber als Hinweis:
    Blood´s Script speichert das nicht.
    D.h. einfach neu einloggen und schon kann man die wieder ausrauben :!:

    Hallöchen liebes Breafish´chen, :D


    ich hab gerade den Post gelesen.
    Zugstrecke scripten


    Dort wird ja ein sogenannter "X Train Track Editor" erwähnt.
    Hab mal gegooglet usw. und tatsächlich: Ein Zug Editor.



    Meine Fragen jetzt:

    • Ist der Editor auch für Sa-MP? Kann ich damit also Zug-Bot-Strecken erstellen? -> .rec
    • Gibt es "Bot Tool´s"? Google zeit mir nur die "illegalen" Bots an :thumbdown:
      Also Tool´s, mit dem man z.B. .rec Dateien erstellen kann oder die das Scripten einfach erleichtern?
      Oder die einfach nützlich sind :?:


    Wäre über alle Tipps & Tricks zum Thema "Sa-MP Bots" glücklich.


    Das Ding ist nämlich, dass ich für mein Projekt derzeit nur Bots habe, die anhalten wenn ein Spieler in der Nähe ist.
    => Gibt es vielleicht ein Script das Prüft ob ein Spieler -> vor <- dem Fahrzeug ist :?:
    Und dass die Bots bei der Eingabe von "Stop" anhalten.


    Vielleicht kennt ihr, wie gesagt, noch Tipps & Tricks die das Projekt noch besser hervorheben :whistling:

    Womit speicherst du denn deine Spieler Daten?


    Du musst ja speichern, wann er Spieler das letzte mal das gemacht hat und es dann auch wieder laden.


    Bei OnPlayerConnect bzw. PlayerLogin, LoginPlayer, Sonst was:
    SetPVarInt(playerid, "KammerAufgebrochen", Load(....)),
    Bei OnplayerDisconnect oder OnPlayerSave, SavePlayer,PlayerSave:
    Save(GetPVarInt(playerid, "KammerAufgebrochen");



    Und dein Script Command machste dann so:


    if(!strcmp(cmd, "/kammeraufbrechen", true))
    if(IsPlayerInRangeOfPoint(playerid, 2.0, 1583.8921, -1649.0535, 19.8792))
    {
    if(GetPVarInt(playerid, "KammerAufgebrochen") <= gettime())
    return SendClientMessage(playerid, 0x9B00FFFF, "Du kannst die Kammer nur jede Stunde ausrauben.");
    SetPVarInt(playerid, "KammerAufgebrochen", gettime() + 3600);
    SendClientMessageToAll(0x9B00FFFF, "NEWS: Die Waffenkammer der LSPD wurde aufgebrochen!");
    return ShowPlayerDialog(playerid, DIALOG_WAFFENKAMMER, DIALOG_STYLE_LIST, "Waffenkammer", "Deagle\nMP5\nM4\nSniper", "Nehmen", "Abbrechen");
    }

    if(Cops < 3)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "Wenn keine Cops online sind, ist kein Geld im Tressor!");
    return 1;
    }
    new rob = 1;
    if(rob == 1)
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Die Bank wurde gerade erst überfallen!");
    return 1;
    }
    //FreezePlayer(playerid);
    SetTimer("Rob_Reset",1800000,0); // Nach 60 Minuten erst wieder ausrauben
    SetTimerEx("Rob_UnFreeze",100000,0,"i",playerid); // Nach 2 minuten Bank überfallen
    OnPlayerCommandText(playerid,"/S Dies ist ein Überfall!! ");


    Du musst irgendwo definieren, ob die Bank schon ausgeraubt wurde ^^
    Das Code Ding jetz von mir bringt es nicht wirklich :D

    exec('"C:\Server\SAMP\samp-server.exe"', $output, $return);


    Das ist doch ein Windows Server?


    Müsste man da nicht folgendes nutzen?

    Code
    exec('"C:\\Server\\SAMP\\samp-server.exe"', $output, $return);


    Oder ist das egal ?(



    Sonst Debug Möglichkeit:

    Code
    print_r(shell_exec('C:\Server\SAMP\samp-server.exe'));


    oder halt

    Code
    echo shell_exec('C:\Server\SAMP\samp-server.exe');

    if(!strcmp(cmdtext, "/buyhouse", true))
    {
    if(!IsPlayerConnected(playerid))
    return 1;
    new founded = -1;
    GetPlayerName(playerid, playername, sizeof playername);
    // Checken ob Haus in Nähe
    for(new h = 0; h < sizeof HouseInfo; h++)
    if(IsPlayerInRangeOfPoint(playerid, 4.0, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
    founded = h;
    if(founded == -1)
    return SendClientMessage(playerid, COLOR_RED, "Du bist an keinem Haus!");
    h = founded; // Damit man nicht alle "h" durch "founded" ersetzen muss ;)
    if(HouseInfo[h][hOwned] != 0)
    return SendClientMessage(playerid, COLOR_RED, "Dieses Haus gehört bereits jemandem");
    if(PlayerInfo[playerid][pLevel] < HouseInfo[h][hLevel])
    {
    format(string, sizeof string, " Du must mindestens Level %d um es zu kaufen !", HouseInfo[h][hLevel]);
    return SendClientMessage(playerid, COLOR_GRAD5, string);
    }
    if(PlayerInfo[playerid][pPhousekey] != 999 && !strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true))
    return SendClientMessage(playerid, COLOR_WHITE, " Dir gehört bereits ein Haus, gib /sellhouse ein um dein altes zu verkaufen !");
    if(GetPlayerMoney(playerid) < HouseInfo[h][hValue])
    return SendClientMessage(playerid, COLOR_WHITE, " Du hast nicht genug Geld !");
    new str[100];
    PlayerInfo[playerid][pPhousekey] = h;
    HouseInfo[h][hOwned] = 1;
    GetPlayerName(playerid, sendername, sizeof sendername);
    strmid(HouseInfo[h][hOwner], sendername, 0, strlen sendername, 255);
    GivePlayerMoney(playerid, -HouseInfo[h][hValue]);
    PlayerPlayMusic(playerid);
    SetPlayerInterior(playerid, HouseInfo[h][hInt]);
    SetPlayerPos(playerid, HouseInfo[h][hExitx], HouseInfo[h][hExity], HouseInfo[h][hExitz]);
    GameTextForPlayer(playerid, "~w~Willkommen zu Hause~n~Du kannst das Haus an deiner Haustür mit /exit verlassen.", 5000, 3);
    PlayerInfo[playerid][pInt] = HouseInfo[h][hInt];
    PlayerInfo[playerid][pLocal] = h;
    SendClientMessage(playerid, COLOR_WHITE, "Gratulation zu deinem neuen Kauf !");
    SendClientMessage(playerid, COLOR_WHITE, "Gib /help um Hilfe zu bekommen !");
    format(str, sizeof str, "==== [HausID: %d] ====\nBesitzer: %s\nPreis: %d$\nMiete: %d$\n Müll: %d", h, HouseInfo[h][hOwner], HouseInfo[h][hValue], HouseInfo[h][hRent], HouseInfo[h][hMuell]);
    Update3DTextLabelText(HouseInfo[h][h_text], COLOR_YELLOW, str);
    DateProp(playerid);
    OnPropUpdate();
    PlayerUpdate(playerid);
    return 1;
    }


    Genau so, wie du es brauchst:!:

    ocmd:wanted(playerid, params[]) // Wanted
    {
    if(fraktion(playerid, 1) || arbeit(playerid, 1))
    {
    new wanteds,
    pID,
    Wanted[128],
    Cop[128],
    Verbrecher[128],
    Grund[128],
    Gruende[256];
    if(sscanf(params, "uis", pID, wanteds, Grund))
    return SendClientMessage(playerid, ROT, "/wantedtest [Spieler] [Wantedzahl] [Grund]");
    if(wanteds < 1 || wanteds > 6)
    return SendClientMessage(playerid, ROT, "Du kannst nur minimal 1 Wanted oder maximal 6 Wanteds geben!");
    SetPlayerWantedLevel(pID, GetPlayerWantedLevel(pID) + wanteds);
    SetPVarInt(pID, "Wanted", GetPlayerWantedLevel(pID));
    format(Cop, sizeof Cop, " Du hast %s Wanteds gegeben. Grund %s", SpielerName(pID), wanteds, Grund);
    format(Verbrecher, sizeof Verbrecher, " %s hat dir %i Wanteds Gegeben. Grund: %s", SpielerName(playerid), 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);
    GetPVarString(playerid, "wanted_gruende", Gruende, sizeof Gruende);
    format(Gruende, sizeof Gruende, "%s\n%s", Gruende, Grund);
    SetPVarString(playerid, "wanted_gruende", Gruende);
    SpielerSpeichern(pID);
    }
    else
    SendClientMessage(playerid, ROT, "Du bist Kein Cop!");
    return 1;
    }


    ocmd:wantedliste(playerid, params[])
    {
    new string[1024],
    p_wanted[50],
    p_name[MAX_PLAYER_NAME],
    wlevel,
    Gruende[256];
    if(fraktion(playerid, 1) || arbeit(playerid, 1))
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPVarString(i, "wanted_gruende", Gruende, sizeof Gruende);
    wlevel = GetPlayerWantedLevel(i);
    if(wlevel != 0)
    {
    GetPlayerName(i, p_name, sizeof p_name);
    format(p_wanted, sizeof p_wanted, "ID %i %s - %d Wanteds Gründe: %s\n\n", i, p_name, wlevel, Gruende);
    strcat(string, p_wanted, sizeof string);
    }
    }
    ShowPlayerDialog(playerid, DIALOG_WANTEDS, DIALOG_STYLE_LIST, "Aktuelle Personen Die Gesucht werden", string, "Ok", "");
    }
    else
    SendClientMessage(playerid, ROT, "Du bist Kein Cop!");
    return 1;
    }



    Die Befehle sind jetzt so angepasst, dass die Gründe gespeichert werden.
    (Mehrere)


    Alles einfach & bequem per PVar´s :thumbup: