Beiträge von DJ Deagle

    Ich würd auch mitmachen. Ich jungle sehr gerne. Bin zwar Bronze 4, aber das muss nicht unbedingt etwas heißen.
    Kannst mich ja mal in Skype adden oder per PN mit einer TS-IP benachrichtigen :)


    lg

    Wie seegras: schon sagte, kann es bestimmt jemand gebrauchen. Vielleicht überarbeitet es auch jemand (falls es halt nicht so schonend geschrieben ist oder so) und stellt es nochmal in den Showroom. :)


    /e: Was für eine Mod ist das, die das Auto so bombastisch glänzen lässt? :OO

    So, hier ist der Code mal vernünftig eingedrückt. Natürlich hab ich dir auch das IsPlayerInRangeOfPoint umgeschrieben, sodass es funktionieren sollte.
    if(strcmp(cmd, "/free", true) == 0)//SÜLO
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,100.0,195.9581,158.6687,1003.0234))//Anwalts-Punkt
    {
    if(PlayerInfo[playerid][pJob] == 2)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /free [playerid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    /*tmp = strtok(cmdtext, idx);
    new money;
    money = strval(tmp);*/
    //if(money < 1 || money > 10000000) { SendClientMessage(playerid, COLOR_GREY, "** Preis nicht niedriger als 1, oder höher als 10000000! **"); return 1; }
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber Befreien!"); return 1; }
    if(PlayerInfo[giveplayerid][pJailed] == 3 && PlayerInfo[playerid][pAR] == 0||PlayerInfo[giveplayerid][pJailed] == 1 && PlayerInfo[playerid][pAR] == 0)
    {
    if(GetDistanceBetweenPlayers(playerid,giveplayerid) >= 8)
    {
    return SendClientMessage(playerid, COLOR_GRAD2, "Du musst näher an die Person, die du befreien willst!");
    }
    if(PlayerInfo[playerid][pJailed] == 3 ||PlayerInfo[playerid][pJailed] == 1||PlayerInfo[playerid][pJailed] == 6||PlayerInfo[playerid][pJailed] == 5)
    {
    return SendClientMessage(playerid, COLOR_GRAD2, "Du bist Selbst im Knast, du kannst keinen Freilassen!");
    }
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new money = ((floatround((PlayerInfo[giveplayerid][pJailTime]/60),floatround_round)/5)*250000);
    if(money == 0)
    {
    money = 250000;
    }
    format(string, sizeof(string), "* Du hast %s gefragt ob du ihn für $%d rauszuholen.", giveplayer, money);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Anwalt %s hat dir Angeboten dich für $%d rauszuhohlen (gib /accept free) ein um anzunehmen.", sendername, money);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    if(Lawyer[giveplayerid] != 999)
    {
    PriceLawyer[Lawyer[giveplayerid]] = -1;
    Lawyer[Lawyer[giveplayerid]] = -1;
    }
    Lawyer[giveplayerid] = playerid;
    PriceLawyer[giveplayerid] = money;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Spieler ist nicht im Jail oder du darf nicht keinen Befreien!");
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist offline!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Anwalt!");
    }
    } else {
    SendClientMessage(playerid, COLOR_GRAD2, "Du bist nicht Anwalts-Punkt!");
    }
    }
    return 1;
    }


    lg :thumbup:

    Du müsstest irgendwo Compile-Flags auf "-d3" stellen können. (in deiner IDE)
    Verwende zur Sicherheit noch das crashdetect Plugin


    Habe es mal eingebaut in der IDE. Immer noch der gleiche Error in der Log.
    Ich konnte nun aber die genaue Ursache ausfindig machen:
    [pwn='5727']case DLG_FACTION_KTO2:
    {
    if(response) {
    if(!strlen(inputtext)) {
    ShowPlayerDialog(playerid,DLG_FACTION_KTO2,DIALOG_STYLE_INPUT,"Fraktionskasse - Einzahlen","Wie viel Geld möchtest du auf die Fraktionskasse einzahlen?","Einzahlen","Zurück");
    } else {
    if(strval(inputtext) > 0) {
    if(pInfo[playerid][pMoney] >= strval(inputtext)) {
    new str[128];
    format(str,sizeof str,"Du hast %s€ auf deine Fraktionskasse eingezahlt!",inspoints(strval(inputtext)));
    ShowPlayerDialog(playerid,DLG_FACTION_KTO3,DIALOG_STYLE_MSGBOX,"Fraktionskasse - Einzahlen",str,"Schliessen","");
    pInfo[playerid][pMoney] -= strval(inputtext);
    FrakInfo[pInfo[playerid][pFraktion]][fKasse] += strval(inputtext);
    KillFrak(pInfo[playerid][pFraktion]);
    format(str,sizeof str,"SELECT * FROM `Frak` WHERE `ID` = '%d'",pInfo[playerid][pFraktion]);
    mysql_query(str);
    format(str,sizeof str,"");
    mysql_store_result();
    while(mysql_fetch_row(str)) {
    LoadFrak(pInfo[playerid][pFraktion], str);
    }
    mysql_free_result();
    } else {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du hast nocht so viel Geld in deiner Geldbörse!");
    }
    } else {
    ShowPlayerDialog(playerid,DLG_FACTION_KTO2,DIALOG_STYLE_INPUT,"Fraktionskasse - Einzahlen","Wie viel Geld möchtest du auf die Fraktionskasse einzahlen?","Einzahlen","Zurück");
    }
    }
    } else {
    ShowPlayerDialog(playerid,DLG_FACTION_KTO,DIALOG_STYLE_LIST,"Fraktionskasse","Geldstand anzeigen\nGeld einzahlen\nLöhne einstellen","Weiter","Zurück");
    }
    }[/pwn]
    Es ist das mysql_free_result(); auf Zeile 5748.
    Was ist daran falsch?


    /e:
    Jeffry:

    Hi,


    ich habe soeben beim Testen meines Fraktionssystems folgenden Print in die server_log.txt bekommen, nachdem der Server gecrasht ist:

    SQL
    [14:07:30] Crash caused by mysql_free_result at address 0x41dbc in gamemodes/script.amx
    [14:07:30] For more details compile this script with debugging symbols enabled and start the server again


    Ich benutze MySQL R5 von BlueG.
    Ich benutze das Debugging (mysql_debug(1); ).
    In der mysql_log.txt habe ich nichts außer meine Querys gefunden^^


    Woher weiß ich nun, was die Adresse 0x41dbc ist?
    Warum crasht dies meinen Server?


    lg
    Deagle

    Ich rede nicht für Ben aber ich muss sagen dieser Bann war gerchtfertigt da du einfach in der Schweren Zeit von [TC] einfach in en anderes Projekt gegangen bist.
    Da ist das Wort "Verräter" schon angebracht oder wie würdest du es sagen.


    Sorry, wenn ich mich als uninvolvierter involviere, aber Tickst du noch ganz sauber? @ParadoxDE:
    Wenn man erstmal ein Projekt verlässt, kann es mehrere Gründe haben. Nur weil man dann ein Projekt verlässt (und vllt. in ein neues geht)
    heißt es nicht, dass man ein Verräter ist. Ben selber hat in seinem » Brief « an die ExMitarbeiter von TC das Wort "Kameradenschweine" erwähnt.
    Dies trifft es 100%ig besser als Verräter.


    Zudem muss ich dann noch Kritik an bestj: darüber abgeben:

    Zitat

    Eins ist mir aber klar ihr seit alle schlechte Freunde die in schwierigen Zeiten einen in Stich lassen.


    Abgesehen von der ekelhaft anzusehenden Rechtschreibung, wo selbst meine Nichte (9 Jahre, 4. Klasse) diesen Text besser formatieren könnte (Satzzeichen, etc.) muss man eines klar machen:
    Nicht jeder der in einem "Projekt" als Mitarbeiter unter deiner Leitung arbeitet ist nicht gleich dein Freund!! Von deinem unprofessionellen Treiben musste selbst ich etwas abbekommen (JugendRadio).
    Als du bemerkt hast, dass das ganze ohne Gema und GVL nichts wird, hast du die Website offline genommen (bzw. den Content aus dem Verzeichnis gelöscht) und @ChopperPM: und mich dafür verantwortlich gemacht.
    Wir sollen deinen Webspace gehackt und die Website offline genommen haben. Na, erinnerst du dich daran?


    Naja, das kommt Zustande wenn man um 02:30 Uhr aufsteht und so nen scheiß im Internet liest :thumbup:


    lg
    Deagle


    Die ID ist kein AUTO_INCREMENT :whistling:


    Naja, ich habe die komplette Datenbank nun mal geleert (alles auf 0 gesetzt) und im Spiel den Entrance sowie den Exit von Fraktion 1 umgesetzt (dynamik OP).
    Folgendes Ergebnis:


    Alles OK mit den Posis und der Speicherung. Naja fast, beim Auslesen hat er immer noch eine Probleme. Jetzt könnte man denken, es liegt am Speichersystem.
    Kein Problem, auch schon einen Blick drauf geworfen:
    stock SaveFrak(FrakID)
    {
    new query[1536],q[350];
    format(q,sizeof q,"UPDATE `Frak` SET `Kasse` = '%d', `Marihuana` = '%d', `Mats` = '%d', `Gangwaffen` = '%d', `Rank1lohn` = '%d', `Rank2lohn` = '%d', `Rank3lohn` = '%d', `Rank4lohn` = '%d',",FrakInfo[FrakID][fKasse],FrakInfo[FrakID][fMarihuana],FrakInfo[FrakID][fMats],FrakInfo[FrakID][fGangwaffen],FrakInfo[FrakID][fR1L],FrakInfo[FrakID][fR2L],FrakInfo[FrakID][fR3L],FrakInfo[FrakID][fR4L]);
    strcat(query,q);
    format(q,sizeof q,"`Rank5lohn` = '%d', `Rank6lohn` = '%d', `Rank7lohn` = '%d', `Rank8lohn` = '%d', `LagerOpen` = '%d', `Rank1name` = '%s', `Rank2name` = '%s', `Rank3name` = '%s', `Rank4name` = '%s',",FrakInfo[FrakID][fR5L],FrakInfo[FrakID][fR6L],FrakInfo[FrakID][fR7L],FrakInfo[FrakID][fR8L],FrakInfo[FrakID][fWLO],FrakInfo[FrakID][fR1N],FrakInfo[FrakID][fR2N],FrakInfo[FrakID][fR3N],FrakInfo[FrakID][fR4N]);
    strcat(query,q);
    format(q,sizeof q,"`Rank5name` = '%d', `Rank6name` = '%d', `Rank7name` = '%d', `Rank8name` = '%d', `Rank1skin` = '%d', `Rank2skin` = '%d', `Rank3skin` = '%d', `Rank4skin` = '%d', `Rank5skin` = '%d',",FrakInfo[FrakID][fR5N],FrakInfo[FrakID][fR6N],FrakInfo[FrakID][fR7N],FrakInfo[FrakID][fR8N],FrakInfo[FrakID][fR1S],FrakInfo[FrakID][fR2S],FrakInfo[FrakID][fR3S],FrakInfo[FrakID][fR4S],FrakInfo[FrakID][fR5S]);
    strcat(query,q);
    format(q,sizeof q,"`Rank6skin` = '%d', `Rank7skin` = '%d', `Rank8skin` = '%d', `WLX` = '%f', `WLY` = '%f', `WLZ` = '%f', `PosX` = '%f', `PosY` = '%f', `PosZ` = '%f', `IntX` = '%f',",FrakInfo[FrakID][fR6S],FrakInfo[FrakID][fR7S],FrakInfo[FrakID][fR8S],FrakInfo[FrakID][fWLX],FrakInfo[FrakID][fWLY],FrakInfo[FrakID][fWLZ],FrakInfo[FrakID][fPosX],FrakInfo[FrakID][fPosY],FrakInfo[FrakID][fPosZ],FrakInfo[FrakID][fIntX]);
    strcat(query,q);
    printf("%s",q);
    format(q,sizeof q,"`IntY` = '%f', `IntZ` = '%f', `WLiX` = '%f', `WLiY` = '%f', `WLiZ` = '%f', `Interior` = '%d', `VW` = '%d',",FrakInfo[FrakID][fIntY],FrakInfo[FrakID][fIntZ],FrakInfo[FrakID][fWLiX],FrakInfo[FrakID][fWLiY],FrakInfo[FrakID][fWLiZ],FrakInfo[FrakID][fInterior],FrakInfo[FrakID][fVW]);
    strcat(query,q);
    printf("%s",q);
    format(q,sizeof q,"`SpawnX` = '%f', `SpawnY` = '%f', `SpawnZ` = '%f', `SpawnA` = '%f', `Kokain` = '%d' WHERE `ID` = '%d'",FrakInfo[FrakID][fSpawnX],FrakInfo[FrakID][fSpawnY],FrakInfo[FrakID][fSpawnZ],FrakInfo[FrakID][fSpawnA],FrakInfo[FrakID][fKokain],FrakInfo[FrakID][fID]);
    strcat(query,q);
    mysql_query(query);
    return 1;
    }
    Die 2 Prints, gibt's exklusiv hier:

    Code
    //Eingang setzen (drausen)
    [13:33:24] `Rank6skin` = '0', `Rank7skin` = '0', `Rank8skin` = '0', `WLX` = '0.000000', `WLY` = '0.000000', `WLZ` = '0.000000', `PosX` = '1227.699707', `PosY` = '-1628.215209', `PosZ` = '13.420000', `IntX` = '0.000000',
    [13:33:24] `IntY` = '0.000000', `IntZ` = '0.000000', `WLiX` = '0.000000', `WLiY` = '0.000000', `WLiZ` = '0.000000', `Interior` = '0', `VW` = '0',
    
    
    //Ausgang setzen (drinnen)
    [13:34:53] `Rank6skin` = '0', `Rank7skin` = '0', `Rank8skin` = '0', `WLX` = '0.000000', `WLY` = '1227.699951', `WLZ` = '-1628.219970', `PosX` = '13.420000', `PosY` = '0.000000', `PosZ` = '0.000000', `IntX` = '188.550888',
    [13:34:53] `IntY` = '157.361541', `IntZ` = '1003.023437', `WLiX` = '0.000000', `WLiY` = '0.000000', `WLiZ` = '0.000000', `Interior` = '3', `VW` = '1',


    Hier nochmal die komplette Anweisung, nach welcher der Server aus der Datenbank ausliest:
    //Auszug aus dem "Eingang-setzen-Dialog" => Fraktion laden.
    //pInfo[playerid][pFraktion] ist genau das selbe wie FrakInfo[FrakID][fID], oder FrakID.
    format(str,sizeof str,"SELECT * FROM `Frak` WHERE `ID` = '%d'",pInfo[playerid][pFraktion]);
    mysql_query(str);
    format(str,sizeof str,"");
    mysql_store_result();
    while(mysql_fetch_row(str)) {
    LoadFrak(pInfo[playerid][pFraktion], str);
    }
    mysql_free_result();


    stock LoadFrak(FrakID, str[512])
    {
    sscanf(str,"e<p<|>dddddddddddddds[24]s[24]s[24]s[24]s[24]s[24]s[24]s[24]ddddddddffffffffffffddffffd>",FrakInfo[FrakID]);
    printf("FrakID: %d (DB-ID: %d) | %s",FrakID,FrakInfo[FrakID][fID],str);
    format(str,sizeof str,"%d Gangwaffen\nGangwaffen aus dem Lager nehmen: /gwaffen",FrakInfo[FrakID][fGangwaffen]);
    FrakInfo[FrakID][fGWP] = CreateDynamicPickup(1239,1,FrakInfo[FrakID][fWLiX],FrakInfo[FrakID][fWLiY],FrakInfo[FrakID][fWLiZ],FrakInfo[FrakID][fVW]);
    FrakInfo[FrakID][fEntPickup] = CreateDynamicPickup(1318,1,FrakInfo[FrakID][fPosX],FrakInfo[FrakID][fPosY],FrakInfo[FrakID][fPosZ]);
    printf("FrakID: %d (DB-ID: %d) | EnterPickup |-> %f %f %f",FrakID,FrakInfo[FrakID][fID],FrakInfo[FrakID][fPosX],FrakInfo[FrakID][fPosY],FrakInfo[FrakID][fPosZ]);
    FrakInfo[FrakID][fExtPickup] = CreateDynamicPickup(1318,1,FrakInfo[FrakID][fIntX],FrakInfo[FrakID][fIntY],FrakInfo[FrakID][fIntZ],FrakInfo[FrakID][fVW]);
    FrakInfo[FrakID][EntLabel] = Create3DTextLabel("Gebäude betreten: Z drücken",COLOR_LIGHTRED,FrakInfo[FrakID][fPosX],FrakInfo[FrakID][fPosY],FrakInfo[FrakID][fPosZ],10,0,0);
    FrakInfo[FrakID][ExtLabel] = Create3DTextLabel("Gebäude verlassen: Z drücken",COLOR_LIGHTRED,FrakInfo[FrakID][fIntX],FrakInfo[FrakID][fIntY],FrakInfo[FrakID][fIntZ],10,FrakInfo[FrakID][fVW],0);
    return 1;
    }


    Also irgendwie blicke ich den blöden Server nicht :D


    Jeffry: @BlackAce: @iEnergie:

    Welches MySQL Plugin benutzt du denn?


    BlueG R5

    Wo rufst du die Funktion ab?


    Bei OnGameModeInit unter folgendem Code:
    mysql_query("SELECT * FROM `Frak`");
    mysql_store_result();
    new f,str[512];
    while(mysql_fetch_row(str)) {
    LoadFrak(f, str);
    f++;
    }
    mysql_free_result();

    Nutzt du BlueGs Plugin? Wenn ja, mehrere Versionen unterstützen angeblich sscanf nicht.


    Meine tut es aber, da bei mir so gut wie alles mit sscanf aus der DB gezogen wird.

    Kannst du bitte dein enum und die Variable bzw das Array dazu posten? Dann würde ich es heute Nachmittag wenn ich zu Hause bin kurz bei mir ausprobieren. Oder es kann jemand anderes ausprobieren, falls er/sie früher Zeit hat.


    Posten? Klar hier:
    #define MAX_FRAKS 13
    enum FrakDaten
    {
    fID,
    fKasse,
    fDrogen,
    fMats,
    fGangwaffen,
    fR1L,
    fR2L,
    fR3L,
    fR4L,
    fR5L,
    fR6L,
    fR7L,
    fR8L,
    fWLO,
    fR1N[24],
    fR2N[24],
    fR3N[24],
    fR4N[24],
    fR5N[24],
    fR6N[24],
    fR7N[24],
    fR8N[24],
    fR1S,
    fR2S,
    fR3S,
    fR4S,
    fR5S,
    fR6S,
    fR7S,
    fR8S,
    Float:fWLX,
    Float:fWLY,
    Float:fWLZ,
    Float:fPosX,
    Float:fPosY,
    Float:fPosZ,
    Float:fIntX,
    Float:fIntY,
    Float:fIntZ,
    Float:fWLiX,
    Float:fWLiY,
    Float:fWLiZ,
    fInterior,
    fVW,
    Float:fSpawnX,
    Float:fSpawnY,
    Float:fSpawnZ,
    Text3D:GW,
    Text3D:EntLabel,
    Text3D:ExtLabel,
    EntPickup,
    ExtPickup
    };
    new FrakInfo[MAX_FRAKS][FrakDaten];

    Hi,


    ich arbeite an meinem Fraktionssystem. Dieses zieht Daten wie Entrancepickup, usw aus meiner Datenbank(@BlackAce: Wo Datensätze vorhanden sind^^).
    Leider, wird irgendetwas falsch gezogen. Das Entrancepickup ist in jedem Fall (13x) am Nullpunkt. Warum?
    Hier der Code, wo die Frak geladen wird:
    stock LoadFrak(FrakID, str[512])
    {
    sscanf(str,"e<p<|>dddddddddddddds[24]s[24]s[24]s[24]s[24]s[24]s[24]s[24]ddddddddffffffffffffddfff>",FrakInfo[FrakID]);
    printf("FrakID: %d | %s",FrakID,str);
    CreateDynamicPickup(1239,1,FrakInfo[FrakID][fWLiX],FrakInfo[FrakID][fWLiY],FrakInfo[FrakID][fWLiZ],FrakInfo[FrakID][fVW]);
    FrakInfo[FrakID][EntPickup] = CreateDynamicPickup(1318,1,FrakInfo[FrakID][fPosX],FrakInfo[FrakID][fPosY],FrakInfo[FrakID][fPosZ]);
    printf("FrakID: %d | EnterPickup |-> %f %f %f",FrakID,FrakInfo[FrakID][fPosX],FrakInfo[FrakID][fPosY],FrakInfo[FrakID][fPosZ]);
    FrakInfo[FrakID][ExtPickup] = CreateDynamicPickup(1318,1,FrakInfo[FrakID][fIntX],FrakInfo[FrakID][fIntY],FrakInfo[FrakID][fIntZ],FrakInfo[FrakID][fVW]);
    FrakInfo[FrakID][EntLabel] = Create3DTextLabel("Gebäude betreten: Z drücken",COLOR_LIGHTRED,FrakInfo[FrakID][fPosX],FrakInfo[FrakID][fPosY],FrakInfo[FrakID][fPosZ],10,0,0);
    FrakInfo[FrakID][ExtLabel] = Create3DTextLabel("Gebäude verlassen: Z drücken",COLOR_LIGHTRED,FrakInfo[FrakID][fIntX],FrakInfo[FrakID][fIntY],FrakInfo[FrakID][fIntZ],10,FrakInfo[FrakID][fVW],0);
    return 1;
    }
    Wie man sieht, habe ich schon versucht zu debuggen.
    Das kam dabei raus:


    Es geht mir hierbei start um die FrakIDs 1,8,9,10,11,12.
    Denn in der Datenbank haben die alle eine andere Entranceposition als 0.


    Woran liegt das ganze? Jeffry:
    Ich habe das Enum schon 1000x mit der Datenbank abgeglichen, um einen solchen Fehler zu vermeiden.


    lg
    Deagle


    P.S.: Die erste Float, die geladen wird ist die Position des Eingangs.

    Also, das ist ganz einfach.
    Bei normalen Rampen wo man Schwung, Nitro oder Repair holen kann lässt du W los, drückst die Leertaste und hälst dann A/D (oder Pfeiltaste Links/Rechts) so lange gedrückt, bis dein Fahrzeug sich um 180° gedreht hat.


    Wenn du in der Luft bist, und nur A/D (oder Pfeiltaste Links/Rechts) drückst, beginnt dein Fahrzeug "Schrauben" zu drehen => Super um in Wallrides reinzuspringen.


    Das ganze ist ohne einen praktischen Teil eher schwer zu erklären.
    Ich werde aber heut Mittag mal ein Video dazu machen :)


    lg

    Hallo,


    da ich keine passende Sektion gefunden habe, posten ich es nun hier.
    Ich möchte gerne wissen (falls das jemand weiß) wie das Musikstück heißt, welches ab Minute 0:47 in diesem Video zu hören ist:

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Link: http://youtu.be/qpPgoLJsk-g?t=47s


    lg
    Deagle