Beiträge von Sean.H

    Bei diesem Stock, wird nur das Haus mit der "hID" 0 geladen.

    stock loadhouse(id)
    {
    new query[128];
    // POS X
    format(query, 128, "SELECT `PosX` FROM `Houses` WHERE `hID` = '%d'",id);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(HouseInfo[id][PosX]);
    mysql_free_result();
    }


    Unter OnGameModeInit:



    for(new i = 0; i < MAX_HAUS; i++)
    {
    loadhouse(i);
    }


    MAX_HAUS ist so definiert



    #define MAX_HAUS 20


    Also = HouseInfo[0][PosX] geht aber HouseInfo[1][PosX] nicht, wieso ? Ich kann keinen Fehler erkennen. - MySQL Plugin von Gstylez



    Weiß denn keiner woran es liegen kann ?

    Hey, habe mir ein Haus-System per MySQL geschrieben, was leider nicht so ganz funktioniert wie ich es will. Ich suche jemanden, der mir per Teamviewer helfen kann, da es zu viel Code ist. Den Fehler kenne ich bereits kann ihn dennoch nicht lösen.


    stock loadhouse(id)
    {
    new query[128];
    format(query, 128, "SELECT `PosX` FROM `Houses` WHERE `hID` = '%d'",id);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(HouseInfo[id][PosX]);
    mysql_free_result();
    return 1;
    }


    Wo liegt der Fehler ? - Er lädt das ganze nicht. ( - Ja Tabelle ist da und die Felder auch, MySQL Verbindung steht auch, da er die Player lädt. )

    Hallo, ich benutze ein Selfmade, welches ca. 2000 Zeilen hat ( ich arbeite daran ). Wenn ich nun mein Test-Server hochfahre, läuft anfangs alles einwandfrei. Nach ca. 15-20 Minuten, schießt der Traffic in die Höhe und der Server geht dann aus. Wie kann ich herausfinden woran es liegt ?

    Hey, habe ein Problem und kenne es auch, hat was mit meinem Biz-System in MySQL zu tuen.



    stock LoadBiz()
    {
    for(new i=0; i<MAX_BIZ; i++)
    {
    BizzInfo[i][bID] = i;
    BizzInfo[i][bOwned] = mysql_GetInt("Business", "bOwned", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bMessage] = mysql_GetString("Business", "bMessage", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bOwner] = mysql_GetString("Business", "bOwner", "bID",BizzInfo[i][bID]);
    BizzInfo[i][bExtortion] = mysql_GetString("Business", "bExtortion", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bEntranceX] = mysql_GetFloat("Business", "bEntranceX", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bEntranceY] = mysql_GetFloat("Business", "bEntranceY", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bEntranceZ] = mysql_GetFloat("Business", "bEntranceZ", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bExitX] = mysql_GetFloat("Business", "bExitX", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bExitY] = mysql_GetFloat("Business", "bExitY", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bExitZ] = mysql_GetFloat("Business", "bExitZ", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bLevelNeeded] = mysql_GetInt("Business", "bLevelNeeded", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bBuyPrice] = mysql_GetInt("Business", "bBuyPrice", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bEntranceCost] = mysql_GetInt("Business", "bEntraceCost", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bTill] = mysql_GetInt("Business", "bTill", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bLocked] = mysql_GetInt("Business", "bLocked", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bInterior] = mysql_GetInt("Business", "bInterior", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bProducts] = mysql_GetInt("Business", "bProducts", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bMaxProducts] = mysql_GetInt("Business", "bMaxProducts", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bPriceProd] = mysql_GetInt("Business", "bPriceProd", "bID", BizzInfo[i][bID]);
    BizzInfo[i][bWorld] = mysql_GetInt("Business", "bWorld", "bID", BizzInfo[i][bID]);
    }
    return 1;
    }


    An sich funktioniert das einwandfrei. Jedoch werden nur die Informationen geladen, die die "bID" - > 0 haben. Woher ich das weiß ?



    for(new i = 0; i < MAX_BIZ; i++)
    {
    bizpickup[i] = AddStaticPickup(1239,23,BizzInfo[i][bEntranceX],BizzInfo[i][bEntranceY],BizzInfo[i][bEntranceZ]);
    new string[128];
    if(BizzInfo[i][bOwned] == 0)
    {
    format(string,sizeof(string),"{0BE300}Dieses Business steht zum verkauf\n{FFFFFF}Benötigtes Level: {0BE300}%d\n{FFFFFF}Preis: {0BE300}%d",BizzInfo[i][bLevelNeeded],BizzInfo[i][bBuyPrice]);
    }
    else if(BizzInfo[i][bOwned] == 1)
    {
    new prodsneed;
    prodsneed = BizzInfo[i][bMaxProducts] - BizzInfo[i][bProducts];
    format(string,sizeof(string),"{FFFFFF}%s\n{0BE300}Besitzer: {FFFFFF}%s\n{0BE300}Benötigte Produkte: {FFFFFF}%d\n{0BE300}Eintritspreis: {FFFFFF}%d",BizzInfo[BizzInfo[i][bID]][bMessage],BizzInfo[BizzInfo[i][bID]][bOwner],prodsneed,BizzInfo[BizzInfo[i][bID]][bEntranceCost]);
    }
    biztext[i] = Create3DTextLabel(string,0xFFFFFFFF,BizzInfo[1][bEntranceX],BizzInfo[1][bEntranceY],BizzInfo[1][bEntranceZ], 20.0,0, 0);
    biztext[i] = Create3DTextLabel(string,0xFFFFFFFF,BizzInfo[2][bEntranceX],BizzInfo[2][bEntranceY],BizzInfo[2][bEntranceZ], 20.0,0, 0);
    }


    Es werden nur ein Pickup erstellt, dass bei dem bID auf 0 ist ( in der MySQL Tabelle )


    Sollte weiterer Code benötigt werden, bitte hier schreiben.

    Hallo liebe Com.


    Ich habe ein Enter - Exit System eingebaut ( Enum ), mit dem ich den BSN und den BSS begehbar mache. Wenn ich nun in den BSN eintrete und wieder raus gehe, lande ich am BSS. Ich habe für beides eine Virtuel World gesetzt. Bei Exit lasse ich abfragen, in welcher Virtuel World er ist, und lasse demnach die Koordinaten setzten. Jedoch funktioniert es nicht.


    Enum:



    enum enterpoints
    {
    Float:EnterX,
    Float:EnterY,
    Float:EnterZ,
    EnterInt,
    EnterVW,
    EnterInfo[200],
    EnterText[200],
    Float:ExitX,
    Float:ExitY,
    Float:ExitZ,
    ExitInt,
    ExitVW,
    ExitInfo[200],
    ExitText[200]
    };


    Koordinaten:



    new Float:CPs[][enterpoints] =
    {
    {1199.6921,-918.9936,43.1139,10,1,"BSN - Zum betreten benutze /enter","Willkommen im BSN",363.1241,-74.9279,1001.5078,0,0,"Zum verlassen benutze /exit","Los Santos"},
    {811.1469,-1616.1669,13.5469,10,2,"BSS - Zum betreten benutze /enter","Willkommen im BSS",363.1241,-74.9279,1001.5078,0,0,"Zum verlassen benutze /exit","Los Santos"}
    };


    /enter und /exit:



    if(!strcmp("/enter", cmdtext, true))
    {
    for(new cpid = 0; cpid < sizeof(CPs); cpid++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, CPs[cpid][EnterX], CPs[cpid][EnterY], CPs[cpid][EnterZ]))
    {
    SetPlayerPos(playerid,CPs[cpid][ExitX],CPs[cpid][ExitY],CPs[cpid][ExitZ]);
    SetPlayerInterior(playerid,CPs[cpid][EnterInt]);
    SetPlayerVirtualWorld(playerid,CPs[cpid][EnterVW]);
    GameTextForPlayer(playerid,CPs[cpid][EnterText],2000,5);
    }
    }
    }

    if(!strcmp("/exit", cmdtext, true))
    {
    for(new cpid = 0; cpid < sizeof(CPs); cpid++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, CPs[cpid][ExitX], CPs[cpid][ExitY], CPs[cpid][ExitZ]))
    {
    new VW;
    VW = GetPlayerVirtualWorld(playerid);
    if(VW == 2)
    {
    SetPlayerPos(playerid,CPs[2][EnterX],CPs[2][EnterY],CPs[2][EnterZ]);
    SetPlayerInterior(playerid,CPs[2][ExitInt]);
    SetPlayerVirtualWorld(playerid,CPs[2][ExitVW]);
    GameTextForPlayer(playerid,CPs[2][ExitText],2000,5);
    }
    if(VW == 1)
    {
    SetPlayerPos(playerid,CPs[1][EnterX],CPs[1][EnterY],CPs[1][EnterZ]);
    SetPlayerInterior(playerid,CPs[1][ExitInt]);
    SetPlayerVirtualWorld(playerid,CPs[1][ExitVW]);
    GameTextForPlayer(playerid,CPs[1][ExitText],2000,5);
    }
    else
    {
    SetPlayerPos(playerid,CPs[cpid][EnterX],CPs[cpid][EnterY],CPs[cpid][EnterZ]);
    SetPlayerInterior(playerid,CPs[cpid][ExitInt]);
    SetPlayerVirtualWorld(playerid,CPs[cpid][ExitVW]);
    GameTextForPlayer(playerid,CPs[cpid][ExitText],2000,5);
    }
    }
    }
    }


    Was mache ich Falsch ?

    Du lässt bein OnPlayerTakeDamage abfragen, ob die beiden Spieler ( Attacker, Victim ) in der gleichen Fraktion sind, wenn ja, setzt du die HP des Victims wieder auf den alten Wert.


    -> Möchte dir keinen ganzen Code geben, da du keine Eigeninitiative gezeigt hast.

    WantedLevel[giveplayerid] += WantedAnzahl;


    Das ist dein Code, der den Wanted vergibt.


    Das verringert dein Wanted:


    SetPlayerWantedLevel(playerid,wanted-1);


    Der Rest sollte sich von selbst erklären.

    Dh. wenn ich mein Script später über ein Linux Server laufen lasse, muss ich das ganze wieder editieren ?


    ps ich probiere \r\s gleich mal aus


    Edit: Danke geht.

    Hey, ich habe mir ein Public geschrieben, mit dem ich Sachen in eine Log schreiben kann. Jedoch schreibt er alles in eine Zeile obwohl ich "\n" genutzt habe. Hat einer ne Lösung ?