Beiträge von Nick_Smith

    Ich versuch es mal, Antwort geb ich gleich.


    So das ganze Funktioniert, ich bin mal noch mit meinem Laptop auf meinem Server verbunden und hab es versucht.


    Allerdings sieht es bei mir ziemlich ruckelig aus, obwohl es auf meinem Laptop ohne Probleme geht.


    Video
    QTIJqOff1U4

    Das ist schon ein guter Anfang und funktioniert fast, wie ich es wollte, allerdings hat der Spieler der Attached wird eine Fix Position also immer Float:x + 1. Und das ist halt nicht das was ich will. Im Prinzip müsste ich Abfragen in welche Richtung der Polizist guckt, jetzt z.B. 45° und dann den Spieler Float:X + 1 und Float:Y + 1 und dem Spieler die FacingAngle geben. Allerdings sind das bei 360° eine Menge abfragen und ich denke das es nicht so flüssig laufen wird.

    Hey Leute,
    ist es möglich einen Spieler an einen anderen Spieler zu attachen? Also so an sich mit den Standart-Includes geht es ja nicht, ich schätze das es so ein Include auch nicht gibt.


    Nun hab ich mir gedacht, den Spieler der attached wird, in die Richtung zu porten in die der Attachte guckt.


    Also Frage 1: Gibt es ein Include um Spieler an Spieler zu attachen?
    Frage 2: Gibt es eine Möglichkeit einen Spieler exakt vor einen anderen Spieler zu porten?


    Zu meiner zweiten Frage habe ich mir überlegt, wenn der Polizist (Er soll den Spieler eskortieren) z.B. in Richtung 60° guckt, den Spieler der Eskortiert wird relativ zu den Koordinaten des Polizisten zu porten und ihm die gleiche FacingAngle zu geben, diese Koordinaten müsste man allerdings auch vorher wieder heraus finden.


    Ich hoffe ihr versteht was ich meine, wenn nicht schaut euch das Video an: (PietSmiet Altis Life #35 | 14:00 (Hardi Cam))


    Mfg.

    if(dialogid==DIALOG_FRAKTION_GENRE)
    {
    if(response)
    {
    new Datei[128];
    for(new i;i<MAX_FRAK;i++)//
    {
    format(Datei,sizeof(Datei),"/Fraktion/%s.ini",inputtext);
    switch(listitem)
    {
    case 0:
    {
    dini_IntSet(Datei,"Genre", //Ist das auch im Script so?
    dini_IntSet(Datei,"Genre",FrakInfo[i][fGenre] = 1);
    }
    case 1:
    {


    dini_IntSet(Datei,"Genre",FrakInfo[i][fGenre] = 2);
    }
    case 2:
    {
    dini_IntSet(Datei,"Genre",FrakInfo[i][fGenre] = 3);
    }
    case 3:
    {
    dini_IntSet(Datei,"Genre",FrakInfo[i][fGenre] = 4);
    }
    case 4:
    {
    dini_IntSet(Datei,"Genre",FrakInfo[i][fGenre] = 5);
    }
    }
    }//
    }
    else
    {

    }
    }[/quote]


    Das ist das einzige was ich gerade so sehe.


    mfg.

    ocmd:fraklist(playerid,params[])
    {
    new string[128];
    if(IsPlayerAnAdmin(playerid,1))
    {
    SendClientMessage(playerid,COLOR_INFO,"ID | Name | Leader");
    for(new i = 0; i < MAX_FRAKS; i++)
    {
    format(string,sizeof(string),"%i | %s | %s",i,FraktionInfo[i][fName], FraktionInfo[i][fLeader]);
    SendClientMessage(playerid,COLOR_INFO,string);
    }
    }
    return 1;
    }


    Das ist der Befehl womit ich die Fraktionen aufliste

    Hey Community,


    ich hab ein kleines Problem. Ich arbeite an meinem Selfmade und wollte ein Dynamisches Fraktionssystem schreiben, wenn ich allerdings jetzt meinen Befehl /fraklist aufrufe (bzw. ein Befehl der den Namen der Fraktion und Leader ausgibt), bekomme ich eine falsche Ausgabe.


    In der MySQL Datenbank ist es so eingetragen:


    Aber im Spiel wird es so angezeigt:


    Alles was dazu gehört:
    enum Fraktion
    {
    fID,
    fName,
    fLeader,
    fKasse,
    Float:fSpawnx,
    Float:fSpawny,
    Float:fSpawnz,
    fInt,
    Float:fEinx,
    Float:fEiny,
    Float:fEinz,
    Float:fAusx,
    Float:fAusy,
    Float:fAusz,
    fGangwar,
    fFarbe,
    Text3D:fEinText,
    Text3D:fAusText,
    fEinPickup,
    fAusPickup
    }


    new FraktionInfo[MAX_FRAKS][Fraktion];


    stock LoadFraks()
    {
    new str[16];
    for(new i = 0; i < MAX_FRAKS; i++)
    {
    format(str,sizeof(str),"%i",i);
    printf("Fraktion ID: %i wird geladen!", i);
    format(FraktionInfo[i][fName],64,"%s",mysql_GetString("fraks", "Name", "ID", str));
    format(FraktionInfo[i][fLeader],64,"%s",mysql_GetString("fraks", "Leader", "ID", str));
    FraktionInfo[i][fKasse] = mysql_GetInt("fraks", "Kasse", "ID", str);
    FraktionInfo[i][fSpawnx] = mysql_GetFloat("fraks", "Spawnx", "ID", str);
    FraktionInfo[i][fSpawny] = mysql_GetFloat("fraks", "Spawny", "ID", str);
    FraktionInfo[i][fSpawnz] = mysql_GetFloat("fraks", "Spawnz", "ID", str);
    FraktionInfo[i][fInt] = mysql_GetInt("fraks", "Int", "ID", str);
    FraktionInfo[i][fEinx] = mysql_GetFloat("fraks", "Einx", "ID", str);
    FraktionInfo[i][fEiny] = mysql_GetFloat("fraks", "Einy", "ID", str);
    FraktionInfo[i][fEinz] = mysql_GetFloat("fraks", "Einz", "ID", str);
    FraktionInfo[i][fAusx] = mysql_GetFloat("fraks", "Ausx", "ID", str);
    FraktionInfo[i][fAusy] = mysql_GetFloat("fraks", "Ausy", "ID", str);
    FraktionInfo[i][fAusz] = mysql_GetFloat("fraks", "Ausz", "ID", str);
    FraktionInfo[i][fGangwar] = mysql_GetInt("fraks", "Gangwar", "ID", str);
    FraktionInfo[i][fFarbe] = mysql_GetInt("fraks", "Farbe", "ID", str);


    Delete3DTextLabel(FraktionInfo[i][fEinText]);
    Create3DTextLabel("/fenter zum betreten!",COLOR_YELLOW,FraktionInfo[i][fEinx],FraktionInfo[i][fEiny],FraktionInfo[i][fEinz],10,0);
    DestroyPickup(FraktionInfo[i][fEinPickup]);
    FraktionInfo[i][fEinPickup] = CreatePickup(1239,1,FraktionInfo[i][fEinx],FraktionInfo[i][fEiny],FraktionInfo[i][fEinz],0);


    Delete3DTextLabel(FraktionInfo[i][fAusText]);
    Create3DTextLabel("/fexit zum betreten!",COLOR_YELLOW,FraktionInfo[i][fAusx],FraktionInfo[i][fAusy],FraktionInfo[i][fAusz],10,0);
    DestroyPickup(FraktionInfo[i][fAusPickup]);
    FraktionInfo[i][fAusPickup] = CreatePickup(1239,FraktionInfo[i][fID],FraktionInfo[i][fAusx],FraktionInfo[i][fAusy],FraktionInfo[i][fAusz],0);
    printf("Fraktion: %i | [%s] wurde geladen!", i, mysql_GetString("fraks", "Name", "ID", str)); //EDIT: Hier wird es übrigens richtig angezeigt!
    }
    return 1;
    }


    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, sizeof(query), "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new Float:var;
    mysql_fetch_float(var);
    mysql_free_result();
    return var;
    }


    stock mysql_GetInt(Table[], Field[], Where[], Is[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }


    stock mysql_GetString(Table[], Field[], Where[], Is[])
    {
    new query[128], Get[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }


    Ich hoffe ihr könnt mir helfen.


    Mfg.

    Also der stock mysql_GetFloat muss über den stock LoadHauser.


    Dann musst du format(HausInfo[i][hPosY], 10, "%f", mysql_GetFloat("häuser", "PosY", "ID", str));
    ändern in:
    HausInfo[i][hPosY] = mysql_GetFloat("häuser", "PosY", "ID", str);


    Funzt thx ;)


    Fehler:


    So mein Stock:

    format(HausInfo[i][hPosX], 10, "%f", mysql_GetFloat("häuser", "PosX", "ID", str));//Von hier
    format(HausInfo[i][hPosY], 10, "%f", mysql_GetFloat("häuser", "PosY", "ID", str));
    format(HausInfo[i][hPosZ], 10, "%f", mysql_GetFloat("häuser", "PosZ", "ID", str));
    format(HausInfo[i][hEinX], 10, "%f", mysql_GetFloat("häuser", "EingangX", "ID", str));
    format(HausInfo[i][hEinY], 10, "%f", mysql_GetFloat("häuser", "EingangY", "ID", str));
    format(HausInfo[i][hEinZ], 10, "%f", mysql_GetFloat("häuser", "EingangZ", "ID", str));
    format(HausInfo[i][hEinA], 10, "%f", mysql_GetFloat("häuser", "EingangA", "ID", str));
    format(HausInfo[i][hAusX], 10, "%f", mysql_GetFloat("häuser", "AusgangX", "ID", str));
    format(HausInfo[i][hAusY], 10, "%f", mysql_GetFloat("häuser", "AusgangY", "ID", str));
    format(HausInfo[i][hAusZ], 10, "%f", mysql_GetFloat("häuser", "AusgangZ", "ID", str));
    format(HausInfo[i][hAusA], 10, "%f", mysql_GetFloat("häuser", "AusgangA", "ID", str));//Bis hier Fehler


    mysql_GetFloat:
    stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[]) // Erster Fehler
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, sizeof(query), "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new Float:var;
    mysql_fetch_float(var);
    mysql_free_result();
    return var;
    }


    Haus-Enum:
    enum Hauser
    {
    hID,
    hBesitzer,
    hKosten,
    hGekauft,
    hAbgeschlossen,
    Float:hPosX,
    Float:hPosY,
    Float:hPosZ,
    Float:hEinX,
    Float:hEinY,
    Float:hEinZ,
    Float:hEinA,
    Float:hAusX,
    Float:hAusY,
    Float:hAusZ,
    Float:hAusA,
    hText
    }

    Musst nur aufpassen, bei Strings musst du weiterhin format nutzen, bei Floats die Int-Methode.


    /e: Mach auch aus:
    format(str,sizeof(str),"%i",i);
    printf("Grundstück ID: %i wird geladen!", str);
    printf("Grundstück ID: %i wird geladen!", i);
    Spart eine Zeile und einen unnötigen String.


    Ok ich schau jetzt mal ob es funktioniert.
    Das format(str...); kann ich nicht wegmachen da jeder von meinem Befehlen den str benutzt.


    Hab nur das
    printf("Grundstück ID: %i wird geladen!", i);
    geändert.


    Funktioniert nicht...
    Ich hab mich mal auf die Suche nach dem Icon gemacht.
    Ich habe per Script die Position des Icons aufgeben lassen und es ist hier mitten in der Pampa:
    [14:39:06] Grundstück PosX: 649.000000
    [14:39:06] Grundstück PosY: -1.000000
    [14:39:06] Grundstück PosZ: 15.000000


    Edit:



    Das ganze mal so geändert zum testen:
    stock LoadHauser()
    {
    new str[16], status[4];
    for(new i = 1; i < 2; i++)
    {
    format(str,sizeof(str),"%i",i);
    printf("Grundstück ID: %i wird geladen!", i);


    HausInfo[i][hID] = mysql_GetInt("häuser", "ID", "ID", str);
    format(HausInfo[i][hBesitzer], 24, "%s", mysql_GetString("häuser", "Besitzer", "ID", str));
    printf("Grundstück Besitzer: %s", HausInfo[i][hBesitzer]);
    HausInfo[i][hKosten] = mysql_GetInt("häuser", "Kosten", "ID", str);
    printf("Grundstück Kosten: %i", HausInfo[i][hKosten]);
    HausInfo[i][hGekauft] = mysql_GetInt("häuser", "Gekauft", "ID", str);
    printf("Grundstück Gekauft: %i", HausInfo[i][hGekauft]);
    HausInfo[i][hAbgeschlossen] = mysql_GetInt("häuser", "Abgeschlossen", "ID", str);
    printf("Grundstück Abgeschlossen: %i", HausInfo[i][hAbgeschlossen]);
    //HausInfo[i][hPosX] = mysql_GetInt("häuser", "PosX", "ID", str);
    //Beachte mich :)
    format(HausInfo[i][hPosX], 10, "%f", mysql_GetInt("häuser", "PosX", "ID", str));
    //Beachte mich :)
    printf("Grundstück PosX: %f", HausInfo[i][hPosX]);
    HausInfo[i][hPosY] = mysql_GetInt("häuser", "PosY", "ID", str);
    printf("Grundstück PosY: %f", HausInfo[i][hPosY]);
    HausInfo[i][hPosZ] = mysql_GetInt("häuser", "PosZ", "ID", str);
    printf("Grundstück PosZ: %f", HausInfo[i][hPosZ]);
    HausInfo[i][hEinX] = mysql_GetInt("häuser", "EingangX", "ID", str);
    HausInfo[i][hEinY] = mysql_GetInt("häuser", "EingangY", "ID", str);
    HausInfo[i][hEinZ] = mysql_GetInt("häuser", "EingangZ", "ID", str);
    HausInfo[i][hEinA] = mysql_GetInt("häuser", "EingangA", "ID", str);
    HausInfo[i][hAusX] = mysql_GetInt("häuser", "AusgangX", "ID", str);
    HausInfo[i][hAusY] = mysql_GetInt("häuser", "AusgangY", "ID", str);
    HausInfo[i][hAusZ] = mysql_GetInt("häuser", "AusgangZ", "ID", str);
    HausInfo[i][hAusA] = mysql_GetInt("häuser", "AusgangA", "ID", str);
    if(HausInfo[i][hGekauft] == 1)
    {
    if(HausInfo[i][hAbgeschlossen] == 1)
    {
    format(status, sizeof(status), "Ja");
    }
    else
    {
    format(status, sizeof(status), "Nein");
    }
    //format(Haustext[i],1024,"Grundstück ID: %i\nBesitzer: %s", HausInfo[i][hID],HausInfo[i][hBesitzer]);
    format(HausInfo[i][hText],1024,"Grundstück ID: %i\nBesitzer: %s\nAbgeschlossen: %s", HausInfo[i][hID],HausInfo[i][hBesitzer],status);
    }
    else
    {
    format(HausInfo[i][hText],1024,"Grundstück zu verkaufen:\nHaus ID: %i\nKosten: %i €", HausInfo[i][hID],HausInfo[i][hKosten]);
    }
    Hauspickup[i] = CreatePickup(1239, 19, HausInfo[i][hPosX], HausInfo[i][hPosY], HausInfo[i][hPosZ],0);
    Haustext[i] = Create3DTextLabel(HausInfo[i][hText],COLOR_WHITE,HausInfo[i][hPosX], HausInfo[i][hPosY], HausInfo[i][hPosZ],50.0,-1,0);
    }
    return 1;
    }


    Fehler:

    Code
    D:\GTA - San Andreas\SERVER\gamemodes\NSR.pwn(2502) : warning 213: tag mismatch
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Warning.