Beiträge von NicoAiko

    das bei ongamemodeinit ist falsch dann is klar das du playerid errors bekommst, mach das dahin wo der parameter 'playerid' gegeben ist z.B. bei Pickups 'OnPlayerPickupPickup'



    was muss eintreten damit du eintreten kannst
    soll er irgentwo stehen?

    ahhh da fehltn return!!!


    Ohne das Return führt er die Abfragen weiter und dann fragt er die 2 if abfrage durch und dann geht die maske weg also schön returnen :D




    if(strcmp(cmd, "/maske", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(mask[playerid]==0)
    {
    if(PlayerInfo[playerid][pMember] == 8||PlayerInfo[playerid][pLeader] == 8)
    {


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    ShowPlayerNameTagForPlayer(i, playerid, 0);
    }
    }
    SendClientMessage(playerid, COLOR_WHITE, " Du setzt deine Maske auf!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s setzt sich eine Maske auf!", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    mask[playerid] = 1;
    return 1;
    }
    else
    {
    return SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Hitman!");
    }
    }
    else if(mask[playerid]==1)
    {


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    ShowPlayerNameTagForPlayer(playerid, playerid, 1);
    }
    }
    SendClientMessage(playerid, COLOR_WHITE, "Du hast deine Maske abgesetzt!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* %s nimmt seine Maske ab!", sendername);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    mask[playerid] = 0;
    return 1;
    }
    }
    return 1;
    }

    /Edit text oben mehr gemacht

    bei sscanf lädt er alles sofort in einem zuck auf die Variablen.
    bei mysql_fetch_float(); musste einzelnt machen...


    zur 2. Frage:


    da musste denn format machen

    new query[150];
    format(query,sizeof query,"SELECT PosX,PosY,PosZ FROM `Tabelle` WHERE `Reihe` = %d",variable);
    mysql_query(query);
    und der rest halt :D

    @ Jeffro Hernandez


    MySQL kannst du dir Vorstellen wie Schubladen, darin sind Akten und darin sind die Dokumente.
    Also anders gesagt Mysql Hat eine Datenbank (=Schublade) darin sind verschiedene Tabellen (=Akten) und darin sind die Dateien gespeichert. (= Dokumente).


    Mit MySQL kann man finde ich am besten Dynamische Systeme machen (Wenn wir hier von SA:MP reden ;) )
    Aber MySQL finde ich auch etwas schwierig (Ich hab ein paar Probs damit :D)
    Jedenfalls kannst du viele Sachen in Tabellen abspeichern und wieder abrufen,verändern,löschen usw...


    /Zum Thema


    Hier eine Hilfe:



    new Float:x;
    mysql_query("SELECT PosX FROM Tabelle");
    mysql_store_result();
    x = mysql_fetch_float();
    //usw...
    //oder die Methode mit sscanf, find ich ya besser ;)
    //hab jedoch nie einzelne sachen geladen also könnte der code auch falsch sein ich würde dann doch lieber die mysql_fetch_float(); geschichte nehmen :D
    new Float:x,Float:y,Float:z;
    mysql_query("SELECT PosX,PosY,PosZ FROM Tabelle");
    mysql_store_result();
    while(mysql_fetch_row_format(query))
    sscanf(query,"p<|>fff",x,y,z);


    /Edit
    Fehler bei sscanf entdeckt

    Hier der richtige code. erkenne den Fehler ;)

    public OnGameModeInit()
    {
    BsnexitTemple=CreatePickup(1559,23,362.8914,-75.1857,1001.5078);
    BsnenterTemple=CreatePickup(1559,23,1199.2013,-918.1477,43.1235);


    BsnexitMarina=CreatePickup(1559,23,362.8624,-75.1588,1001.5078,1);
    BsnenterMarina=CreatePickup(1559,23,810.4876,-1616.2129,13.5469);


    Create3DTextLabel("Burger Shot Marina\n Eingang",Blau,810.4876,-1616.2129,13.5469,20,0);
    Create3DTextLabel("Burger Shot Marina\n Ausgang",Blau,362.8624,-75.1588,1001.5078,20,1);
    Create3DTextLabel("Burger Shot Temple\n Eingang",Blau,1199.2013,-918.1477,43.1235,20,0);
    Create3DTextLabel("Burger Shot Temple\n Ausgang",Blau,362.8914,-75.1857,1001.5078,20,0);


    DisableInteriorEnterExits();
    SetGameModeText("German-Roleplay");
    AddPlayerClass(0,817.2872,-1628.4049,13.3828,199.0709,0,0,0,0,0,0);
    return 1;
    }

    BsnenterMarina=CreatePickup(1559,1,810.4876,-1616.2129,13.5469,1);
    zu
    BsnenterMarina=CreatePickup(1559,23,810.4876,-1616.2129,13.5469,1); //sry net aufgepasst :D


    bei 23 verschwindet es nie!

    BsnenterMarina=CreatePickup(1559,1,810.4876,-1616.2129,13.5469);
    zu
    BsnenterMarina=CreatePickup(1559,1,810.4876,-1616.2129,13.5469,1); //1 = die VirtualWorld ;)


    und der 3DText is net im Script drin oO


    /Edit


    Außerdem ist das die falsche Sektion xD
    das muss nach Scripting Base...


    Das ist kein Server fehler :D

    /offtopic


    ich bin eig net so gut


    /Zum Thema


    Ja durch die SetPlayerVirtualWorld(playerid,0); //<- durch die 0 wieder normale welt


    du musst nur den ausgangspunkt bei dem bsn marina festlegen wenn du leaven willst


    das ist alles

    mach bei

    if(pickupid==BsnenterMarina)
    {
    SetPlayerPos(playerid,375.962463,-65.816848,1001.507812);
    SetPlayerInterior(playerid,10);
    SetPlayerVirtualWorld(playerid,1); //Das hier einfügen
    GameTextForPlayer(playerid,"~y~Herzlich Willkommen ~n~~y~im Burger Shot Marina.",4500,4);
    }
    if(exit) //einfügen
    {
    ...
    ...
    SetPlayerVirtualWorld(playerid,0);
    }


    MfG

    Hallo,


    ich habe ein Problem mit der Löschfunktion, genauer damit, dass die Fahrzeuge die Reloadet werden falsche IDs haben.


    Hier der Code:



    if(dialogid == Dialog_DeleteAhCar)
    {
    mysql_query("SELECT * FROM Autohaus");
    mysql_store_result();
    if(!strval(inputtext) || strval(inputtext) == 0 || strval(inputtext) > mysql_num_rows())
    {
    SendClientMessage(playerid,rot,"Kein Text, nicht 0 oder keine existierende ID!");
    return ShowPlayerDialog(playerid,Dialog_DeleteAhCar,1,"Deleting - Autohaus Fahrzeug","{FF0000}ID eingeben bitte","Weiter","Zurück");
    }
    DeleteAhID[playerid] = strval(inputtext);
    ShowPlayerDialog(playerid,Dialog_DeleteAhCarBestätigung,0,"Bestätigung","{FFFFFF}Bist du sicher, das du das Autohaus Fahrzeug {FF0000}löschen {FFFFFF}möchtest?","Löschen","Abbrechen");
    }
    if(dialogid == Dialog_DeleteAhCarBestätigung)
    {
    new query[150];
    format(query,sizeof query,"DELETE FROM Autohaus WHERE id = %d",AhCars[DeleteAhID[playerid]][mysqlID]);
    mysql_query(query);
    mysql_free_result();
    DestroyVehicle(AhCars[DeleteAhID[playerid]][vID]);
    Delete3DTextLabel(AhCars[DeleteAhID[playerid]][vAhCarText]);
    AhCars[DeleteAhID[playerid]][mysqlID] = 0;
    AhCars[DeleteAhID[playerid]][Modell] = 0;
    AhCars[DeleteAhID[playerid]][Kaufpreis] = 0;
    AhCars[DeleteAhID[playerid]][Verkaufspreis] = 0;
    AhCars[DeleteAhID[playerid]][Repairpreis] = 0;
    AhCars[DeleteAhID[playerid]][PosX] = 0;
    AhCars[DeleteAhID[playerid]][PosY] = 0;
    AhCars[DeleteAhID[playerid]][PosZ] = 0;
    AhCars[DeleteAhID[playerid]][Rotation] = 0;
    AhCars[DeleteAhID[playerid]][vID] = 0;
    //Ab hier war eigentlich gar nichts, ich hab ein wenig ausprobiert.
    //ReloadAhCars();
    new i = 1,string1[128],string2[128],col = random(126);
    format(query,sizeof query,"SELECT * FROM Autohaus");
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row_format(query))
    {
    DestroyVehicle(AhCars[i][vID]);
    Delete3DTextLabel(AhCars[i][vAhCarText]);
    sscanf(query,"e<p<|>dddddffff",AhCars[i]);
    AhCars[i][vID] = AddStaticVehicleEx(AhCars[i][Modell],AhCars[i][PosX],AhCars[i][PosY],AhCars[i][PosZ],AhCars[i][Rotation],col,col,3600000);
    format(string2,sizeof string2,"Modell: {FF0000}%s\n{00A0FF}Kaufpreis: %d€\nVerkaufspreis: %d€\nRepairpreis: %d€\nID: %d",Carname[AhCars[i][Modell]-400],AhCars[i][Kaufpreis],AhCars[i][Verkaufspreis],AhCars[i][Repairpreis],i);
    AhCars[i][vAhCarText] = Create3DTextLabel(string2,hellblau,AhCars[i][PosX],AhCars[i][PosY],AhCars[i][PosZ],15,0);
    Attach3DTextLabelToVehicle(AhCars[i][vAhCarText],AhCars[i][vID],0,0,0.75);
    SetVehicleParamsEx(AhCars[i][vID],0,0,0,1,0,0,0);
    format(string1,sizeof string1,"Autohaus %d",i);
    SetVehicleNumberPlate(AhCars[i][vID],string1);
    i++;
    }
    }

    Bei der Bestätigung war eigentlich ReloadAhCars(); (Mit der Kennzeichnung)
    Leider lief das schief...
    Hier noch die Codes von LoadAhVehicles(); und ReloadAhCars();

    ReloadAhCars()
    {
    new i = 1,query[128];
    format(query,sizeof query,"SELECT * FROM Autohaus");
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row_format(query))
    {
    DestroyVehicle(AhCars[i][vID]);
    Delete3DTextLabel(AhCars[i][vAhCarText]);
    printf("successful %d",i);
    i++;
    }
    LoadAhVehicles();
    }
    LoadAhVehicles() //Ist vielleicht wichtig ;)
    {
    new col = 0 + random(126);
    new str[128],string1[128],string2[128],i = 1;
    format(str,sizeof str,"SELECT * FROM Autohaus");
    mysql_query(str);
    mysql_store_result();
    while(mysql_fetch_row_format(str))
    {
    sscanf(str,"e<p<|>dddddffff>",AhCars[i]);
    AhCars[i][vID] = AddStaticVehicleEx(AhCars[i][Modell],AhCars[i][PosX],AhCars[i][PosY],AhCars[i][PosZ],AhCars[i][Rotation],col,col,3600000);
    format(string2,sizeof string2,"Modell: {FF0000}%s\n{00A0FF}Kaufpreis: %d€\nVerkaufspreis: %d€\nRepairpreis: %d€\nID: %d",Carname[AhCars[i][Modell]-400],AhCars[i][Kaufpreis],AhCars[i][Verkaufspreis],AhCars[i][Repairpreis],i);
    AhCars[i][vAhCarText] = Create3DTextLabel(string2,hellblau,AhCars[i][PosX],AhCars[i][PosY],AhCars[i][PosZ],15,0);
    Attach3DTextLabelToVehicle(AhCars[i][vAhCarText],AhCars[i][vID],0,0,0.75);
    SetVehicleParamsEx(AhCars[i][vID],0,0,0,1,0,0,0);
    format(string1,sizeof string1,"Autohaus %d",i);
    SetVehicleNumberPlate(AhCars[i][vID],string1);
    i++;
    }
    }


    Danke schonmal