[SAMMELTHREAD] Kleine Scripting Fragen

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Beitrag von Rayan ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.

  • ocmd:makeadmin(playerid,params[])
    {
    if(!isAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"** Du kannst diesen Befehl nicht ausführen. **");
    new pID,a_level;
    if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,COLOR_GREY,"** Benutze: /setadmin [ID/NAME] [Adminrank] **");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"** Dieser Spieler ist nicht auf dem Server! **");
    sInfo[pID][alevel]=a_level;
    savePlayer(pID);
    SendClientMessage(pID,COLOR_RED,"Dein Adminrang wurde geändert.");
    SendClientMessage(playerid,COLOR_RED,"Du hast den Adminrang geändert.");
    return 1;
    }

    Könnte jemand machen, dass da statt "Dein Adminrang wurde geändert.", dies steht: "Dein Admin Rank wurde von SPIELER auf RANK gesetzt."
    Und bei Du hast den Adminrang geändert => "Du hast den Admin Rank von SPIELER auf RANG gesetzt."


    Kriege grade das einfachste irgendwie nicht hin..
    Komme ständig mit den formatierungen durcheinander :whistling:


    Viele Grüße

  • ocmd:makeadmin(playerid,params[])
    {
    if(!isAdmin(playerid,3))return SendClientMessage(playerid,COLOR_RED,"** Du kannst diesen Befehl nicht ausführen. **");
    new pID,a_level;
    if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,COLOR_GREY,"** Benutze: /setadmin [ID/NAME] [Adminrank] **");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"** Dieser Spieler ist nicht auf dem Server! **");
    new str[145];
    format(str, sizeof(str), "Dein Adminrang wurde von %s auf %s geändert.", GetRankName(sInfo[pID][alevel]), GetRankName(a_level));
    SendClientMessage(pID,COLOR_RED,str);
    format(str, sizeof(str), "Du hast den Adminrang von %s auf %s geändert.", GetRankName(sInfo[pID][alevel]), GetRankName(a_level));
    SendClientMessage(playerid,COLOR_RED,str);
    sInfo[pID][alevel]=a_level;
    savePlayer(pID);
    return 1;
    }


    stock GetRankName(rank)
    {
    new name[24];
    switch(rank)
    {
    case 0: name = "Spieler";
    case 1: name = "Moderator";
    case 2: name = "Admin";
    case 3: name = "Owner";
    }
    return name;
    }


    Sollte so passen.


    Jumpin: Dann sollte es aber mit den Parametern gehen, oder?

  • Warum klappt das nicht ?



    if(Engine == VEHICLE_PARAMS_OFF){
    SendClientMessage(playerid, -1, "Um den Motor zu starten drücke die Rechte [STRG] Taste oder benutze /motor");
    SendClientMessage(playerid, -1, "Schau doch mal in unserem Radiosystem rein '/radio'");
    }


    Ich möchte das wenn man ins Auto steigt und der Motor aus ist, das diese Nachrichten kommen.
    Jedoch kommen diese gar nicht.


    Ich habe das bei OnPlayerEnterVehicle

  • Warum wird das nicht texturiert Ingame:
    new lspddecke[19];
    lspddecke[1] = CreateObject(19377, 1562.57178, -1688.82532, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[2] = CreateObject(19377, 1605.23047, -1688.50403, 748.57068, 0.00000, 90.00000, 90.00000);
    lspddecke[3] = CreateObject(19377, 1595.55530, -1688.46155, 748.57068, 0.00000, 90.00000, 89.88000);
    lspddecke[4] = CreateObject(19377, 1592.95129, -1677.96985, 748.57068, 0.00000, 90.00000, 89.88000);
    lspddecke[5] = CreateObject(19377, 1585.95349, -1689.11230, 748.57068, 0.00000, 90.00000, 89.88000);
    lspddecke[6] = CreateObject(19377, 1586.01440, -1678.68958, 748.57068, 0.00000, 90.00000, 89.88000);
    lspddecke[7] = CreateObject(19377, 1572.10376, -1684.61157, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[8] = CreateObject(19377, 1581.75085, -1684.63220, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[9] = CreateObject(19377, 1576.16382, -1674.14783, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[10] = CreateObject(19377, 1572.22424, -1695.07593, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[11] = CreateObject(19377, 1581.84509, -1695.10364, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[12] = CreateObject(19377, 1548.21301, -1668.00916, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[13] = CreateObject(19377, 1557.85291, -1668.01489, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[14] = CreateObject(19377, 1552.68848, -1678.49365, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[15] = CreateObject(19377, 1562.32861, -1678.46655, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[16] = CreateObject(19377, 1543.07983, -1678.44409, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[17] = CreateObject(19377, 1548.22339, -1657.49744, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[18] = CreateObject(19377, 1557.86914, -1657.49756, 748.71069, 0.00000, 90.00000, 90.00000);


    for(new i;i<sizeof lspddecke;i++)
    {
    SetObjectMaterial(lspddecke[i], 19377, 4981, "wiresetc2_las", "lasunion7", 0xFFFFFFFF);
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 19377 bei SetObjectMaterial ist der falscher "materialindex" (2. Parameter).
    Nimm da mal 0, 1 oder 2.


    Wird nicht texturiert ist das schon richtig Bei OnGamemodeinit:
    for(new i;i<sizeof lspddecke;i++)
    {
    SetObjectMaterial(lspddecke[i], 19377, 4981, "wiresetc2_las", "lasunion7", 0xFFFFFFFF);
    }

  • Dann entferne die Objekte mal aus deinem Gamemode und nimm das hier als einzelnen Filterscript:

    Spoiler anzeigen
    #include <a_samp>

    Spoiler anzeigen
    new lspddecke[19];

    Spoiler anzeigen
    public OnFilterScriptInit()
    {
    lspddecke[1] = CreateObject(19377, 1562.57178, -1688.82532, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[2] = CreateObject(19377, 1605.23047, -1688.50403, 748.57068, 0.00000, 90.00000, 90.00000);
    lspddecke[3] = CreateObject(19377, 1595.55530, -1688.46155, 748.57068, 0.00000, 90.00000, 89.88000);
    lspddecke[4] = CreateObject(19377, 1592.95129, -1677.96985, 748.57068, 0.00000, 90.00000, 89.88000);
    lspddecke[5] = CreateObject(19377, 1585.95349, -1689.11230, 748.57068, 0.00000, 90.00000, 89.88000);
    lspddecke[6] = CreateObject(19377, 1586.01440, -1678.68958, 748.57068, 0.00000, 90.00000, 89.88000);
    lspddecke[7] = CreateObject(19377, 1572.10376, -1684.61157, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[8] = CreateObject(19377, 1581.75085, -1684.63220, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[9] = CreateObject(19377, 1576.16382, -1674.14783, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[10] = CreateObject(19377, 1572.22424, -1695.07593, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[11] = CreateObject(19377, 1581.84509, -1695.10364, 752.01068, 0.00000, 90.00000, 90.00000);
    lspddecke[12] = CreateObject(19377, 1548.21301, -1668.00916, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[13] = CreateObject(19377, 1557.85291, -1668.01489, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[14] = CreateObject(19377, 1552.68848, -1678.49365, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[15] = CreateObject(19377, 1562.32861, -1678.46655, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[16] = CreateObject(19377, 1543.07983, -1678.44409, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[17] = CreateObject(19377, 1548.22339, -1657.49744, 748.71069, 0.00000, 90.00000, 90.00000);
    lspddecke[18] = CreateObject(19377, 1557.86914, -1657.49756, 748.71069, 0.00000, 90.00000, 90.00000);
    for(new i;i<sizeof lspddecke;i++)
    {
    SetObjectMaterial(lspddecke[i], 0, 4981, "wiresetc2_las", "lasunion7", 0xFFFFFFFF);
    }
    return 1;
    }

    Spoiler anzeigen
    public OnFilterScriptExit()
    {
    for(new i;i<sizeof lspddecke;i++)
    {
    DestroyObject(lspddecke[i]);
    }
    return 1;
    }


    So habe ich es getestet, so geht es auch.


  • Hey, Frage .. Support System geht alles, Allerdings kann man das Ticket nicht Löschen ..

    Spoiler anzeigen
    #define MAX_SUP 10

    Spoiler anzeigen
    new bool:subgesendet[MAX_PLAYERS],SupDiaID[MAX_PLAYERS],ueberschrift[MAX_PLAYERS][50],subtext[MAX_PLAYERS][129],SupportID[MAX_PLAYERS],ASupportID[MAX_PLAYERS],bool:ImSupport[MAX_PLAYERS];
    new SupIDauswahl[MAX_PLAYERS];

    Spoiler anzeigen
    #define SCM SendClientMessage
    #define grün 0x04A800FF
    #define rot 0xCC0000FF
    #define hellblau 0x00A3F0FF
    #define orange 0xE68A00FF
    #define MSG DIALOG_STYLE_MSGBOX
    #define INPUT DIALOG_STYLE_INPUT
    #define LIST DIALOG_STYLE_LIST
    #define Dialog ShowPlayerDialog

    Spoiler anzeigen
    if (strcmp("/sup", cmdtext, true, 10) == 0)
    {
    if(subgesendet[playerid]==true)return SCM(playerid,rot,"Du hast bereits ein Support Ticket offen, /closesup um es zu löschen");
    return Dialog(playerid,DIALOG_SUP,INPUT,"Überschrift","Gebe eine Geeignete Überschrift ein\nBeschriebe dein Problem mit einem Wort, z.B. Bug","Weiter","Abbrechen"),SupDiaID[playerid]=1;
    }
    if (strcmp("/sup", cmdtext, true, 10) == 0)
    {
    if(subgesendet[playerid]==false)return SCM(playerid,rot,"Du hast kein Support Ticket geöffnet");
    subgesendet[playerid]=false;
    SendAdminMessage(2,playerid,1);
    return SCM(playerid,grün,"Du hast dein Support Ticket geschlossen");
    }
    if (strcmp("/supinfo", cmdtext, true, 10) == 0)
    {
    new string[1024],i=0;
    if(!CallRemoteFunction("PlayerIsAdmin","i",playerid))return SCM(playerid,rot,"Du bist nicht befugt");
    for(;i<MAX_SUP;i++)
    {
    if(SupInfo[i][erstellt]==true)
    {
    if(SupInfo[i][bearbeitung]==false){format(string,1024,"%s {00A911}%s | %s\n",string,SupInfo[i][Name],SupInfo[i][Ueberschrift]);}
    else if(SupInfo[i][bearbeitung]==true) {format(string,1024,"%s {FFA600}[In Bearbeitung]%s | %s\n",string,SupInfo[i][Name],SupInfo[i][Ueberschrift]);}
    }
    else {format(string,1024,"%s {940000}Support ID Nicht vergeben!\n",string);}
    }
    return Dialog(playerid,DIALOG_ASUP,LIST,"Support Menü",string,"Auswählen","Abbrechen");
    }

    Spoiler anzeigen
    case DIALOG_SUP:
    {
    if(response)
    {
    switch(SupDiaID[playerid])
    {
    case 1:
    {
    format(ueberschrift[playerid],50,"%s",inputtext);
    Dialog(playerid,DIALOG_SUP,INPUT,"Problem","Gebe nun dein Text ein, welcher dein Problem genauer beschreibt","Weiter","Abbrechen"),SupDiaID[playerid]=2;
    }
    case 2:
    {
    new string[300];
    format(subtext[playerid],128,"%s",inputtext);
    format(string,300,"Überschrift: %s\n\nText: %s\n\nBist du sicher das du den Support absenden möchtest?",ueberschrift[playerid],subtext[playerid]);
    Dialog(playerid,DIALOG_SUP,MSG,"Support",string,"Absenden","Abbrechen"),SupDiaID[playerid]=3;
    }
    case 3:return CreateSup(playerid,ueberschrift[playerid],subtext[playerid]);
    }
    }
    else return SCM(playerid,rot,"Du hast den Support abgebrochen"),SupDiaID[playerid]=0;
    }
    case DIALOG_ASUP:
    {
    if(response)
    {
    SupIDauswahl[playerid] = listitem;
    new string[200];
    if(SupInfo[SupIDauswahl[playerid]][erstellt]==false)return SCM(playerid,rot,"Die Support ID ist nicht vergeben"),OnPlayerCommandText(playerid,"/supinfo");
    format(string,200,"Absender: %s\nÜberschrift: %s\nText: %s",SupInfo[SupIDauswahl[playerid]][Name],SupInfo[SupIDauswahl[playerid]][Ueberschrift],SupInfo[SupIDauswahl[playerid]][Text]);
    Dialog(playerid,DIALOG_ACSUP,MSG,"Support Ticket",string,"Annehmen","Löschen");
    }
    }
    case DIALOG_ACSUP:
    {
    if(response == 1)
    {
    new string[128];
    SupInfo[SupIDauswahl[playerid]][bearbeitung]=true;
    format(SupInfo[SupIDauswahl[playerid]][Admin],MAX_PLAYER_NAME,"%s",SpielerName(playerid));
    SupInfo[SupIDauswahl[playerid]][AdminID]=playerid;
    format(string,128,"%s hat dein Support Ticket geöffnet, du kannst einfach im Chat mit ihm schreiben",SpielerName(playerid));
    SCM(SupInfo[SupIDauswahl[playerid]][SpielerID],orange,string);
    SCM(playerid,orange,"Du hast das Ticket geöffnet, du kannst im Chat mit dem User schrieben.");
    ImSupport[playerid]=true;
    ASupportID[playerid]=SupIDauswahl[playerid];
    ImSupport[SupInfo[SupIDauswahl[playerid]][SpielerID]]=true;
    SupIDauswahl[playerid]=0;
    }
    else
    {
    new string[128];
    format(string,128,"Du hast das Ticket von %s gelöscht",SupInfo[SupIDauswahl[playerid]][Name]);
    SCM(playerid,orange,string);
    format(string,128,"%s hat dein Support Ticket gelöscht",SpielerName(playerid));
    SCM(SupInfo[SupIDauswahl[playerid]][SpielerID],orange,string);
    subgesendet[SupInfo[SupIDauswahl[playerid]][SpielerID]]=false;
    SupInfo[SupIDauswahl[playerid]][erstellt]=false;
    ImSupport[playerid]=false;
    ASupportID[playerid]=-1;
    ImSupport[SupInfo[SupIDauswahl[playerid]][SpielerID]]=false;
    SupIDauswahl[playerid]=0;
    }
    }
    stock GetFreeSupID()
    {
    new i=0;
    for(;i<MAX_SUP;i++)
    {
    if(SupInfo[i][erstellt]==true)continue;
    return i;
    }
    return -1;
    }
    stock CreateSup(playerid,header[],text[])
    {
    new ID=GetFreeSupID();
    if(ID==-1)return SCM(playerid,rot,"Die Maximale Anzahl von Support Tickets ist erreicht!");
    format(SupInfo[ID][Ueberschrift],50,"%s",header);
    format(SupInfo[ID][Text],129,"%s",text);
    format(SupInfo[ID][Name],129,"%s",SpielerName(playerid));
    SupInfo[ID][SpielerID]=playerid;
    SupInfo[ID][bearbeitung]=false;
    SupInfo[ID][erstellt]=true;
    SendAdminMessage(1,playerid,ID);
    subgesendet[playerid]=true;
    SupportID[playerid]=ID;
    return SCM(playerid,grün,"Der Support wurde erfolgreich abgesendet");
    }

    Spoiler anzeigen
    stock SendAdminMessage(art,playerid,ID)
    {
    new i=0,string[256];
    if(art==1){format(string,256,"Spieler:{00A911} %s{FFFFFF} hat ein Support Ticket eingereicht:{00A911} %s{FFFFFF}, /supinfo zum einsehen",SpielerName(playerid),SupInfo[ID][Ueberschrift]);}
    else if(art==2){format(string,256,"Spieler: %s hat sein Support Ticket gelöscht",SpielerName(playerid));}
    for(;i<MAX_PLAYERS;i++)
    {
    if(CallRemoteFunction("PlayerIsAdmin","i",i))
    {
    SCM(i,-1,string);
    }
    }
    }


    Ne Idee? :D