[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Abend,
    ich möchte gerne das ich im Dialog alle Befehle anzeigen lassen wenn er den Rang dazu hat.
    Entspricht:
    Rang 1: Alle Befehle für Rang 1
    Rang 2: Alle Befehle von Rang 1 und dazu dann die von Rang 2.


    So wie ich es habe, klappt es leider nur mit dem Aktuellen Rang den man hat.



    CMD:ahelp(playerid, params[])
    {
    if(!sInfo[playerid][sEingeloggt])return 1;
    new string[512];
    switch(sInfo[playerid][sAdminrang])
    {
    case 0: SendClientMessage(playerid, -1, "["#FARBE_WEISS"SERVER"#FARBE_WEISS"]: Du hast "#FARBE_ROT"nicht die Rechte "#FARBE_WEISS"diesen Befehl zu nutzen!");
    case 1:
    {
    format(string, sizeof(string), "Porbe Supporter haben noch keine Befehle!");
    }
    case 2:
    {
    format(string, sizeof(string), "%s"#FARBE_TÜRKIS"/kick", string);
    }
    }
    ShowPlayerDialog(playerid, DIALOG_ADMIN_HILFE, DIALOG_STYLE_MSGBOX, "Admin Befehle", string, "OK", "");
    return 1;
    }


    Mit freundlichen Grüßen,


  • if(checkpointid == bmxo[playerid])
    {
    SetPlayerAttachedObject(playerid,0,1264,6,0.165999,0.003000,-0.184999,0.000000,0.000000,0.000000,0.498999,0.466999,0.489000);
    ApplyAnimation(playerid,"CARRY","liftup",4.1,0, 0, 0, 1, 1);
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,25);
    new Float:vX,Float:vY,Float:vZ;
    GetPosVorVeh(pMuellAuto[playerid], -5.0, vX, vY, vZ);
    DestroyDynamicCP(bmxo[playerid]);
    bmxo[playerid] = -1;
    fahrzeug[playerid] = CreateDynamicCP(vX,vY,vZ,4.0,-1,-1,playerid,30.0);
    TogglePlayerDynamicCP(playerid,fahrzeug[playerid],1);
    new rand1 = 5+random(3);
    muellsacke[pMuellAuto[playerid]] = rand1;
    return 1;
    }
    else if(checkpointid == fahrzeug[playerid])
    {
    if(kubik[pMuellAuto[playerid]] == 5.0)
    {
    SendClientMessage(playerid,COLOR_RED,"Das Fahrzeug ist voll, benutze /garbagestop");
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,0);
    RemovePlayerAttachedObject(playerid, 0);
    kubik[pMuellAuto[playerid]] = 0;
    DestroyDynamicCP(fahrzeug[playerid]);
    fahrzeug[playerid] = -1;
    }
    else
    {
    if(muellsacke[pMuellAuto[playerid]] == 1)
    {
    muellsacke[pMuellAuto[playerid]] = 0;
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,0);
    RemovePlayerAttachedObject(playerid, 0);
    DestroyDynamicCP(fahrzeug[playerid]);
    fahrzeug[playerid] = -1;
    kubik[pMuellAuto[playerid]] += 0.5;
    new rand = random(sizeof(bmx1));
    bmxo[playerid] = SetPlayerCheckpointEx(bmx1[rand][0],bmx1[rand][1],bmx1[rand][2],5.0,-1,-1,playerid,1000.0); //14089
    return 1;
    }
    else
    {
    new string[123],string2[123];
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,0);
    kubik[pMuellAuto[playerid]] += 0.5;
    muellsacke[pMuellAuto[playerid]] -= 1;//HIER
    RemovePlayerAttachedObject(playerid, 0);
    format(string,sizeof(string),"Kubik: %0.1f/15.0",kubik[pMuellAuto[playerid]]);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    format(string2,sizeof(string2),"Müllsäcke: %d",muellsacke[pMuellAuto[playerid]]);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string2);
    DestroyDynamicCP(fahrzeug[playerid]);
    fahrzeug[playerid] = -1;
    new globalVar[MAX_PLAYERS][3];
    bmxo[playerid] = DisablePlayerCheckpointEx(globalVar[playerid][0],globalVar[playerid][1],globalVar[playerid][2],4.0,-1,-1,playerid,30.0); //14107
    return 1;
    }
    }


    }



    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(14089) : warning 213: tag mismatch
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(14089) : warning 202: number of arguments does not match definition
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(14107) : warning 202: number of arguments does not match definition
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(14107) : warning 202: number of arguments does not match definition
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(14107) : warning 202: number of arguments does not match definition
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(14107) : warning 202: number of arguments does not match definition
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(14107) : warning 202: number of arguments does not match definition
    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(14107) : warning 202: number of arguments does not match definition


    C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(14107) : warning 202: number of arguments does not match definition



    warum errors?

  • Dafür musst du bei jedem case die format Zeile des vorherigen case einfügen, sprich:
    CMD:ahelp(playerid, params[])
    {
    if(!sInfo[playerid][sEingeloggt])return 1;
    new string[512];
    switch(sInfo[playerid][sAdminrang])
    {
    case 0: SendClientMessage(playerid, -1, "["#FARBE_WEISS"SERVER"#FARBE_WEISS"]: Du hast "#FARBE_ROT"nicht die Rechte "#FARBE_WEISS"diesen Befehl zu nutzen!");
    case 1:
    {
    format(string, sizeof(string), "Porbe Supporter haben noch keine Befehle!");
    }
    case 2:
    {
    format(string, sizeof(string), "%s\n"#FARBE_TÜRKIS"/kick", string);
    }
    case 3:
    {
    format(string, sizeof(string), "%s\n"#FARBE_TÜRKIS"/kick", string);
    format(string, sizeof(string), "%s\n"#FARBE_TÜRKIS"Befehle für Admin-Rang 3",string);
    }
    }
    ShowPlayerDialog(playerid, DIALOG_ADMIN_HILFE, DIALOG_STYLE_MSGBOX, "Admin Befehle", string, "OK", "");
    return 1;
    }
    (und natürlich ein"\n" für die nächste Zeile)

  • Weiß jemand zufällig, warum nichts in die Datenbank eingetragen wird?

    switch(type)
    {
    case 0:
    {
    mysql_format(MySQL, query, sizeof(query), "INSERT INTO `script_playerinfo` (Spieler, Methode, Uhrzeit, IP) VALUES ('%s', Server betreten, '%s', '%s')", SpielerInfo[playerid][sName], time, pIP);
    }
    case 1:
    {
    mysql_format(MySQL, query, sizeof(query), "INSERT INTO `script_playerinfo` (Spieler, Methode, Uhrzeit, IP) VALUES ('%s', Server verlassen, '%s', '%s')", SpielerInfo[playerid][sName], time, pIP);
    }
    case 2:
    {
    mysql_format(MySQL, query, sizeof(query), "INSERT INTO `script_playerinfo` (Spieler, Methode, Uhrzeit, IP) VALUES ('%s', Account eingeloggt, '%s', '%s')", SpielerInfo[playerid][sName], time, pIP);
    }
    case 3:
    {
    mysql_format(MySQL, query, sizeof(query), "INSERT INTO `script_playerinfo` (Spieler, Methode, Uhrzeit, IP) VALUES ('%s', Falsches Passwort, '%s', '%s')", SpielerInfo[playerid][sName], time, pIP);
    }
    case 4:
    {
    mysql_format(MySQL, query, sizeof(query), "INSERT INTO `script_playerinfo` (Spieler, Methode, Uhrzeit, IP) VALUES ('%s', Registriert, '%s', '%s')", SpielerInfo[playerid][sName], time, pIP);
    }
    }
    mysql_pquery(MySQL, query);

  • Hey, @ShinoX! Sollte jetzt funktionieren - Probier es aus.


    Mit freundlichen Grüßen
    Paymon

  • Kurze Frage noch anbei, wäre das Schwachsinn mit cache_insert_id()?
    mysql_format(MySQL, query, sizeof(query), "INSERT INTO `script_playerinfo` (ID, Spieler, Methode, Uhrzeit, IP) VALUES ('%d', '%s', 'Registriert', '%s', '%s')",cache_insert_id(), SpielerInfo[playerid][sName], time, pIP);


    //e: Ja ist es, merke ich gerade selber.
    Wie mache ich das mit der ID, die immer einen hochgeht in der Datenbank?

  • Kurze Frage noch anbei, wäre das Schwachsinn mit cache_insert_id()?
    mysql_format(MySQL, query, sizeof(query), "INSERT INTO `script_playerinfo` (ID, Spieler, Methode, Uhrzeit, IP) VALUES ('%d', '%s', 'Registriert', '%s', '%s')",cache_insert_id(), SpielerInfo[playerid][sName], time, pIP);


    //e: Ja ist es, merke ich gerade selber.
    Wie mache ich das mit der ID, die immer einen hochgeht in der Datenbank?

    Hey, @ShinoX! Hier schau dir diesen Screenshot an: http://prntscr.com/dhj3tf


    Mit freundlichen Grüßen
    Paymon

    • Offizieller Beitrag

    Für den Fall dass du phpMyAdmin verwendest sieht das ganze folgendermaßen aus:



    Hier dann einfach den Hacken bei "A_I" setzen, den aktuellen Autoincrement-Index kannst du im Reiter "Operationen noch anpassen


  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • Ich habe es so Probiert funktioniert wunderbar bis auf das Löschen ich klicke drauf aber es wird nicht gelöscht.

  • Wie schreibe ich den Befehl auf R41-2 um?

    public GetAdmins(playerid)
    {
    new string[512], adminrang, name[MAX_PLAYER_NAME], online, OnlineString[32];
    new rows = cache_num_rows();
    for(new i=0;i<rows;i++)
    {
    adminrang = cache_get_field_content_int(i, "Admin");
    cache_get_field_content(i, "Name", name, myCon, MAX_PLAYER_NAME);
    if(adminrang > 0 && adminrang < 6)
    {
    online = cache_get_field_content_int(i, "playerOnline");
    if(online == 0)OnlineString=""COLOR_HEX_RED"Offline";
    else if(online == 1)OnlineString=""COLOR_HEX_GREEN"Online";
    format(string, sizeof(string), "%s%s %s - %s\n", string, GetAdminName(adminrang), name, OnlineString);
    }
    }
    ShowPlayerDialog(playerid, DIALOG_ADMINS, DIALOG_STYLE_LIST, "Team-Mitglieder", string, "Schließen", "");
    return 1;
    }

  • Wie schreibe ich den Befehl auf R41-2 um?

    Versuche es mal so:



    Mit freundlichen Grüßen
    German_ScripterHD

  • Beitrag von Speezy ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Du musst einfach von case 1 in die anderen cases eintragen, sprich:format(string, sizeof(string), "Porbe Supporter haben noch keine Befehle!");
    mit einem \n zwischen " und ! in case 2, 3, usw. einfügen

    Am einfachsten kannst du auch einfach die Funktion strcat statt format nehmen. Dies bewirkt, dass der String einfach hinten angehangen hat. Gut bei deinem vorhaben.

  • Hallo, ich habe eine Frage und zwar: Derzeit arbeite ich an einem Selfmade SAMP Roleplay Server und möchte wirklich alles was Möglich ist über MySQL laufen lassen. Jedoch bin ich mir ein bisschen unsicher da ich bei vielen Gamemodes gesehen habe, das sie für vieles Enums etc. benutzen. Nun zu meiner Frage; Kann es in der Zukunft größere Probleme beschaffen wenn ich wirklich alles was Möglich ist per MySQL laufen lasse? (lags etc.)


    Ich hoffe man versteht was ich damit Fragen möchte.