Beiträge von IPrototypeI

    :rolleyes: Dann schau nochmal genauer hin



    WHERE `Besitzer` = '' AND `VehicleSlot` = '')



    `HP` = '919.442932',`Nummernschild` = 'SA-FJ-BW',


    Siehst du nun was dies mit dem Inhalt zu tun hat


    dies bedeutet wenn nix in dem Anführungszeichen steht ist dort kein wert vorhanden und bedeutet er nix an dem jeweiligen punkt updaten
    also das Query weiß nicht was es Updaten soll.


    Ergebnis => Die Daten verändern sich nicht

    heir bitte
    new bool:unwanted[MAX_VEHICLES];


    ocmd:autorspawn(playerid,params[])
    {
    new string[128], i;
    if(!IstSpielerAdmin(playerid,2))return SendClientMessage(playerid,ROT,"[System]Du bist nicht berechtigt diesen Befehl zu benutzen !");
    for(; i <MAX_PLAYERS; i++)if(IsPlayerInAnyVehicle(i))unwanted[GetPlayerVehicleID(i)]=true;
    for(i =0; i < MAX_VEHICLES; i++)if(!unwanted[i]) SetVehicleToRespawn(i);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "AdminSystem: Alle unbesetzten Autos wurden zurückgespawnt von %s.", sendername);
    BroadCast(COLOR_RED,string);
    return 1;
    }

    SOwas ist extrem einfach so fern die streams nicht verschlüsselt sind so wie bei Energy

    else if (!strcmp(cmdtext,"/music1")){
    StopAudioStreamForPlayer(playerid);
    PlayAudioStreamForPlayer(playerid,"http://www.antenne.de/webradio/antenne.m3u");
    return 1;
    }
    else if (!strcmp(cmdtext,"/music2")){
    StopAudioStreamForPlayer(playerid);
    PlayAudioStreamForPlayer(playerid,"http://webradio1.hitradion1.de:8000");
    return 1;
    }
    else if (!strcmp(cmdtext,"/music3")){
    StopAudioStreamForPlayer(playerid);
    PlayAudioStreamForPlayer(playerid,"http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w72a");
    return 1;
    }
    else if (!strcmp(cmdtext,"/music4")){
    StopAudioStreamForPlayer(playerid);
    PlayAudioStreamForPlayer(playerid,"http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w77a");
    return 1;
    }
    else if (!strcmp(cmdtext,"/music5")){
    StopAudioStreamForPlayer(playerid);
    PlayAudioStreamForPlayer(playerid,"http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w75a");
    return 1;
    }
    else if (!strcmp(cmdtext,"/music6")){
    StopAudioStreamForPlayer(playerid);
    PlayAudioStreamForPlayer(playerid,"http://gffstream.ic.llnwd.net/stream/gffstream_mp3_w76a");
    return 1;
    }


    gehen alle jedoch musst auch den Ton an haben :D

    enum gatesystem
    {
    g_ID,
    g_model,
    Float: g_closeX,
    Float: g_closeY,
    Float: g_closeZ,
    Float: g_closeAX,
    Float: g_closeAY,
    Float: g_closeAZ,
    Float: g_openX,
    Float: g_openY,
    Float: g_openZ,
    Float: g_openAX,
    Float: g_openAY,
    Float: g_openAZ,
    bool: g_state,
    g_fraction1,
    g_fraction2,
    g_fraction3,
    }
    new GateInfo[MAX_GATE][gatesystem] = {
    {0,16773, 1457.79, -1683.00, 6.85, 0.00, 0.00, 360.00,1457.79, -1683.00, 6.85, 0.00, 0.00, 360.00,false,-255,-255,0},
    {1,16773, 1514.26, -1656.94, 6.85, 0.00, 0.00, 360.00,1514.26, -1656.94, 6.85, 0.00, 0.00, 360.00,false,-255,-255,0}
    };


    So würde dies dann aussehen als array den command kannst du bestimmt selbst schreiben

    sowas ist extrem leicht das kannst auch in ein array schmeißen


    und bei OnPlayerCommandText musst du halt nach dem jeweiligen wort suchen.
    mit Strfind und wenn es gefunden wurde return 0; zurück geben da somit kein Text des Spielers erscheint.
    Um das ganze per File zu machen ganz einfach das ganze auslesen und in einer array speichern oder öffen und alles auslesen
    sollte das dabei sein so bekomt dan der spieler ein warn etc. jedoch ist es besser das ganze temporär zu speichern.


    http://wiki.sa-mp.com/wiki/Strfind


    new BadWords[] ={
    "Wixxer",
    "Hurensohn"
    };



    public OnPlayerText(playerid, text[])
    {
    new i;
    for(; i < sizeof(BadWords); ++i){
    if(strfind(text, BadWords[i], true) != -1){
    SendClientMessage(playerid,-1,"Du hast ein böses wort gesagt");
    return 0;
    }
    }
    return 1;
    }


    als kleines Beispiel


    die eine animation kannst du entfernen und benutze
    ApplyAnimation(playerid, "CRACK", "crckdeth2", 1.0, 0, 0, 0, 0, 0);


    ApplyAnimation(playerid, "CRACK", "crckdeth2", 1.0, 1, 0, 0, 0, 0);


    beim 5 Parameter eine 1
    da auch im wiki steht
    Set to 1 for looping otherwise set to 0 for playing animation sequence only once.


    Daher musst du diesen wert auf 1 setzen für eine schleife das ist dein fehler

    Das einfachste ist eine array zu erstellen mit den ganzen daten der Tore die du per enum als index angibst
    dann beim Befehl mit einem Loop durch das Array gehen , wenn er dann in der nähe eines Tores ist
    brichst du die schleife ab und lässt das jeweilige Tor mit MoveObject / MoveDynamicObject(streamer) herunter fahren und setzt danach ein
    wert auf 1/0 oder ein Boolean auf true /false iwe man will

    Dann zeig mal dein Code du musst nur die ganzen Waffen und ihre Munition erstmal temporär in variabeln speichern sprich arrays
    und danach per einem Filesyste /Mysql speichern und wieder laden wo ist da das problem.


    http://wiki.sa-mp.com/wiki/GetPlayerWeaponData


    new weapons[13][2];
    for (new i = 0; i < 13; i++)
    {
    GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
    }Synatx:
    GetPlayerWeaponData(playerid, slot, &weapons, &ammo);



    also er gibt pro Slot die Waffenid und die Munition zurück und es hat 13 Waffenslots
    http://wiki.sa-mp.com/wiki/Weapons


    Danach die Waffen wieder mit GivePlayerWeapon geben

    Hallo,
    das Tutorial ist schon ziemlich alt & die Version mit der das gezeigt wird auch.
    Benutze lieber gleich die R7 die bringt einige Vorteile mit sich.


    MfG


    Man sollte die neuste Version davon downloaden die wo von zeex gefixxt wurde da die anderen versionen einen Memory leak haben

    Wir wäre es wenn du mal die Z -Achse veränderst


    MoveObject(impuls, 211.10000610352, -1350.1999511719, 52.700000762939, 3.0, 0.0, 0.0, 359.00);


    MoveObject(impuls, 211.10000610352, -1350.1999511719, 52.700000762939, 3.0, 0.0, 0.0, 359.00);

    Okay gut.


    Wäre es möglich, dass du mir die Funktionsweise von sscanf nochmal genauer erläuterst, denn woanders werde ich nicht fündig.


    jo kein Problem mit sscanf hast du die möglichkeit strings zu splitten was auch effizenter ist als strcat und schneller.


    sscanf(string zu splitten,"die parameter ",Variabeln an dennen was übergeben werden soll);


    nun gut was das splitten angeht welches du hier benötigst benutzt man das p
    p<|>dddd
    | ist der delimiter wo es gesplittet werden soll man kan es auch durch kommas ersetzen was man will.
    dddd das sind die folgenden parameter hier 4 mal d das bedeutet es wird in 4 integer gespeichert.
    Daher sollte der string auch dementsprechend aussehen
    1|2|3|4


    nun gut was du auch machen kannst ist das einem enum gleich zu übergeben.

    enum beispiel
    {
    var,
    string[20],
    Float:ffloat,
    };
    new EnumInfo[MAX_PLAYERS][beispiel];


    sscanf(string,p<|>e<ds[20]f>",EnumInfo);


    das war jetzt nur oberflächlich erklärt und kurz gehalten mehr infos findest du
    hier


    http://forum.sa-mp.com/showthread.php?t=120356

    Um mehrer Sachen auszuladen benutze eine while schleife und der SQL-Command dazu wäre
    "SELECT * FROM `...`"


    und in er while schleife benutzt du dann
    mysql_fetch_row();


    die while schleife bricht automatisch ab wenn es keine datensätze mehr gibt

    while(while(mysql_fetch_row(Query,"|")){



    }


    und nun den ausgelesenen string mit sscanf splitten



    new i,Query[200];
    mysql_query("SELECT * FROM `...`");
    while(while(mysql_fetch_row(Query,"|")){


    sscanf(Query,"p<|>s[40]d",strHouseStadt[i],houseRef[i]);
    i++;


    }
    mysql_free_result();


    das solltest du dennoch deinen Werten anpassen und deinem skript

    Bei den Häusern etc alles Ohne Probleme nur bei Spielern ist es so


    //e
    Nach mehreren Versuchen es auch mit dern Funktionen von Maddin zu machen, tritt das Problem auch auf


    Es muss nicht an MySQL immer liegen ^^ es kann auch davon kommen das sich ihrgend wo in deinem Skript werte verschieben.
    Die grundsätzliche werte Verschiebung ist mir nur bekannt durch hohe ressourcenauslastung.
    Jedoch ist sowas auch anderweitig möglich ich hatte selbst mal solch ein Fehler in einem Gangfightsystem nur das sich dabei die Zonen ID verschoben hatte
    nun gut ich hab es darauf hin gelöscht und damals neu geschrieben. Aber du kannst auch dein skript im debugmodes laufen lassen da man meist auch interessante Fehler mit dem crashdetectplugin findet.
    Sonst kann ich dir nur mal raten immer mal wieder die werte auszugeben mit printf zum beispiel . Weil genaue Aussagen kann man dazu nicht machen.


    @ Jony Nun gut ich bin mir nicht genau sicher ob dies einen Error geben würde bei php stelle ich auch beiseite jedoch
    kann man das Einfache Anführungszeichen bei Zahlen auch verwenden ist jedoch nicht nötig man verwendet es nur bei Strings das MySQL
    das ganze nicht als Spalte interpretiert

    Nun gut man hätte ein paar Sachen auch anders machen können in der Include.
    Jedoch stellt sich die Frage hier oder besser gesagt bei jeder hier in den Raum ob alle diese Werk wirklich einen potenziellen Nutzen haben.
    Nun gut ich selbst geziehe mich darauf, das diese Include nicht wirklich für mich oder auch andere die ein wenig mehr Ahnung vom
    Skripten haben diesen potenzieller Nutzen erfüllt. Dennoch lassen sich bestimmt Leute finden die dies zu schätzen wissen und solch eine Include nutzen.
    Daher sage ich zu dem Thema das man hier nicht rein posten sollte nur um sein Selbstwertgefühlt zu inkrementieren in dem man versucht dieses Werk
    schlecht zu machen.