[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
  • Schreibweise etwas kompliziert

    Makros sind nice :love:


    Hahah xD


    Aber ist okay, dein Skript ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • 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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 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



  • 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 ().
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen