Beiträge von theTV

    Wiki:

    Zitat

    MoveObject(objectid, Float:X, Float:Y, Float:Z, Float: Speed, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0)


    Da liegt dein Fehler:
    MoveObject(RRTor1, -33.9199, -1758.9492, -2.2370, 0.0000, 4.00);
    Deine Geschwindigkeit

    Hey,
    ich will einen string auslesen aus mysql.

    format(query,128,"SELECT '%s' FROM `account` WHERE `User` = '%s'",str,SpielerName[playerid]); //%s = Link
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(str);
    printf("%s",str); //hier printet er Link statt http://www.google.de

    Zu deinem Problem kann es sein das du die Dialoge "DIALOG_ESSEN_MAIN_MENU" und dein RegisterDialog die gleichen Zahlen haben?
    Sprich:
    #define DIALOG_ESSEN_MAIN_MENU 4
    #define DIALOG_REGISTER 4


    Unten hab ich dir gleich mal noch den Code richtig gemacht.

    Spoiler anzeigen

    if(dialogid==DIALOG_ESSEN_MAIN_MENU)
    {
    if(!response)return 1;
    switch(listitem)
    {
    case 0:
    {
    if(PlayerInfo[playerid][pBurger] > 0)
    {
    SendClientMessage(playerid,BLAU,"Du hast einen Burger gegessen.");
    SetPlayerHealth(playerid, 100.0);
    PlayerInfo[playerid][pBurger] -= 1;
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du hast keine Burger");
    }
    }
    case 1:
    {
    if(PlayerInfo[playerid][pKekse] > 0)
    {
    SendClientMessage(playerid,BLAU,"Du hast einen Keks gegessen");
    SetPlayerHealth(playerid, 100.0);
    PlayerInfo[playerid][pKekse] -= 1;
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_SMOKE_CIGGY);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du hast keine Kekse");
    }
    }
    }
    }

    Damit sollte es gehen:
    format(SpielerInfo[playerid][pEatSlot1],100,mysql_GetString("accounts", "EatSlot1", "Name",SpielerInfo[playerid][pName]));
    format(SpielerInfo[playerid][pEatSlot2],100,mysql_GetString("accounts", "EatSlot2", "Name", SpielerInfo[playerid][pName]));
    format(SpielerInfo[playerid][pEatSlot3],100,mysql_GetString("accounts", "EatSlot3", "Name", SpielerInfo[playerid][pName]));


    //edit: angepasst

    Hab noch eine Frage, dann brauch ich kein neuen Thread aufmachen.
    Undzwar

    //Meine eingabe ingame:
    /makeleader 0 Medic


    //das wird geprintet:
    Eingabe: Medic Gefunden: Zivilist(0)


    //Der Code:
    enum FraktionsEnumInfo{
    ID,
    Name[25]
    };
    new FraktionsEnum[][FraktionsEnumInfo]={
    {0,"Zivilist"},
    {1,"SAPD"},
    {2,"Medic"},
    {3,"Oamt"}
    };
    if(!IsNumeric(name)) //hat einen Fraktionsnamen eingegeben
    {
    for(new i=0;i<5;i++)
    {
    printf("%d",i);
    if(strcmp(FraktionsEnum[i][Name],name,true)==0)continue; //hier soll er überprüfen ob der eingegebene Fraktionsnamen existiert
    // aber es ist: "Zivilist"=="Medic" und er geht weiter
    print("weiter");//aber er nimmt einfach 0=Zivilist und geht weiter, obwohl Medic auf 2 ist
    format(Spieler[pID][FraktionsName],10,"%s",name);
    printf("Eingabe: %s Gefunden: %s(%d)",name,FraktionsEnum[i][Name],FraktionsEnum[i][ID]);
    Spieler[pID][FraktionsID]=FraktionsEnum[i][ID];
    Spieler[pID][Fraktionsrang]=5;
    SCMEx(playerid,grün,"Du hast %s zum Leader der Fraktion %s(ID: %d) ernannt.",SpielerName[pID],name,FraktionsEnum[i][ID]);
    break;
    }
    }

    Jetzt wird das nicht geprintet es kommt immer wieder

    /makeleader [playerid/name] [fraktionsid/fraktname]

    Ich hab IsNumeric auch miteingefügt.
    Und so siehts bei mir aus:

    Spoiler anzeigen

    ocmd@2:makeleader,setleader(playerid,params[])
    {
    new pID,name[10];
    if(!IsPlayerAnAdmin(playerid,5))return SCM(playerid,grau,"Du bist kein Admin");
    if(sscanf(params,"us[10]",pID,name))return SCM(playerid,grau,"/makeleader [playerid/name] [fraktionsid/fraktname]");
    GetPlayerName(pID,SpielerName[pID],MAX_PLAYER_NAME);
    if(!IsNumeric(name))printf("1. Name:%s Fraktname:%s",SpielerName[pID],name);
    else printf("2. Name:%s FraktID:%d",SpielerName[pID],strval(name));
    if(!IsPlayerConnected(pID))return SCM(playerid,grau,"Der Spieler ist nicht on");
    if(!IsNumeric(name)) //hat einen Fraktionsnamen eingegeben
    {
    for(new i=0;i<10;i++)
    {
    if(strcmp(FraktionsEnum[i][Name],name,true))continue;
    format(Spieler[pID][FraktionsName],10,"%s",name);
    Spieler[pID][FraktionsID]=FraktionsEnum[i][ID];
    Spieler[pID][Fraktionsrang]=5;
    SCMEx(playerid,grün,"Du hast %s zum Leader der Fraktion %s(ID: %d) ernannt.",SpielerName[pID],name,FraktionsEnum[i][ID]);
    break;
    }
    }
    else {
    for(new i=0;i<10;i++)
    {
    if(FraktionsEnum[i][ID] == strval(name))continue;
    format(Spieler[pID][FraktionsName],20,"%s",FraktionsEnum[i][Name]);
    Spieler[pID][FraktionsID]=FraktionsEnum[i][ID];
    Spieler[pID][Fraktionsrang]=5;
    SCMEx(playerid,grün,"Du hast %s zum Leader der Fraktion %s(ID: %d) ernannt.",SpielerName[pID],FraktionsEnum[i][Name],FraktionsEnum[i][ID]);
    break;
    }
    }
    return 1;
    }

    Hey,
    undzwar möchte ich das man beim Befehl /Makeleader einen Fraktionsnamen oder eine FraktionsID eingibt.
    Das Problem ist wenn ich ingame: /makeleader 0 Arzt eingebe, printet er immer die 2.Variante

    new pID,fraktid,name[10];
    if(sscanf(params,"p< >uD(-1)S()[10]",pID,fraktid,name))return SCM(playerid,grau,"/makeleader [playerid/name] [fraktionsid/fraktname]");
    if(fraktid==-1)printf("1. Name:%s Fraktname:%s",SpielerName[pID],name);
    if(fraktid!=-1)printf("2. Name:%s FraktID:%d",SpielerName[pID],fraktid);
    Das wird geprintet:
    Name:test FraktID:0 //ingame eingabe: /makeleader 0 Arzt

    Vllt. kannst du ja, wenn man ein Multi-Befehl eingibt. das man den auch wiedergibt bsp.:
    ocmd@4:help,hilfe,hallo,test(playerid,params[])return SendClientMessage(playerid,-1,"Du hast den Befehl %s benutzt.",);
    dass man statt das %s sieht welchen befehl ich eingegeben habe, in dem Fall, das man entweder /help,/hilfe,/hallo,/test sieht?

    if(strcmp(cmdtext,"/auf",true)==0)
    {
    MoveObject(sapdtor2, 1546.69921875, -1621.69921875, 14.10000038147-10,5);//geschwindigkeit als dezimalzahl benutzen
    MoveObject(sapdtor3, 1546.69921875, -1629.599609375, 14.10000038147-10,5);//geschwindigkeit als dezimalzahl benutzen
    return 1;
    }


    if(strcmp(cmdtext,"/auf",true)==0)
    {
    MoveObject(sapdtor1, 1584.69921875, -1638.099609375, 12.5-10,5);//geschwindigkeit als dezimalzahl benutzen
    return 1;
    }


    if(strcmp(cmdtext,"/zu",true)==0)
    {
    MoveObject(sapdtor2, 1546.69921875, -1621.69921875, 14.10000038147);//geschwindigkeit vergessen
    MoveObject(sapdtor3, 1546.69921875, -1629.599609375, 14.10000038147);//geschwindigkeit vergessen
    return 1;
    }


    if(strcmp(cmdtext,"/zu",true)==0)
    {
    MoveObject(sapdtor1, 1584.69921875, -1638.099609375, 12.5);//z-koordinate vergessen
    return 1;
    }


    f(strcmp(cmdtext,"/auf",true)==0)
    {
    MoveObject(yakuzator, 2520.1999511719, 1819.1999511719, 11.5-10,5);//geschwindigkeit als dezimalzahl benutzen
    MoveObject(yakuzator2, 2520.1999511719, 1827.0999755859, 11.5-10,5);//geschwindigkeit als dezimalzahl benutzen
    return 1;
    }


    if(strcmp(cmdtext,"/zu",true)==0)
    {
    MoveObject(yakuzator, 2520.1999511719, 1819.1999511719, 11.5,5);//geschwindigkeit als dezimalzahl benutzen
    MoveObject(yakuzator2, 2520.1999511719, 1827.0999755859, 11.5,5);//geschwindigkeit als dezimalzahl benutzen
    return 1;
    }


    return 0;


    }