Skript lagt

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
  • Das Skript / Script, lagt unnormal, sprich wenn ich ( /makeadmin o.Ä ) eingebe lagt der Server für paar Minuten / Sekunden ( 10 ~ 60 Sek. )
    Woran liegt das?


    Im Server.cfg bereits geschrieben:
    ackslimit 5000

  • Poste mal deinen makeleader Befehl.


    Anscheinend hast du da einen Fehler drinnen und er versucht auf einen ungültigen Index in einem Array zuzugreifen :)

    ast2ufdyxkb1.png


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

  • Poste mal deinen makeleader Befehl.


    Anscheinend hast du da einen Fehler drinnen und er versucht auf einen ungültigen Index in einem Array zuzugreifen :)

    ocmd:makeadmin(playerid, params[])
    {
    new alevel,pid;
    if(!IsPlayerAdmin(playerid) && !IsAdmin(playerid,4))return noaccess
    if(sscanf(params,"ui",pid,alevel))return SendClientMessage(playerid,ROT,"Verwendung: /makeadmin (Spieler/ID) (Adminlevel)");
    if(alevel>4 || alevel<0)return SendClientMessage(playerid,GRAU,"Das Adminlevel darf nicht größer als 4 und kleiner als 0 sein!");
    if(pInfo[playerid][adminlevel]<alevel && !IsPlayerAdmin(playerid))return SendClientMessage(playerid,GRAU,"Du kannst dieses Adminlevel noch nicht setzen.");
    if(!PlayerOnline(pid))return SendClientMessage(playerid,GRAU,"Dieser Spieler ist nicht erreichbar.");


    /*for(new i=0; i<53; i++)
    {
    if(alevel!=4 && !IsAntiCheatEnabledForPlayer(pid,i))
    {
    EnableAntiCheatForPlayer(pid,i, true);
    }
    else if(alevel==4 && IsAntiCheatEnabledForPlayer(pid,i))
    {
    EnableAntiCheatForPlayer(pid,i, false);
    }
    }*/



    pInfo[pid][adminlevel]=alevel;
    new str1[120];
    format(str1,sizeof(str1),"* %s hat dein Admin Rang auf %s gesetzt.",PlayerName(playerid),RangName(pid));
    SendClientMessage(pid,GELB,str1);
    format(str1,sizeof(str1),"* Du hast %s sein Admin Rang auf %s gesetzt.",PlayerName(pid),RangName(pid));
    SendClientMessage(playerid,HBLAU,str1);
    return 1;
    }

  • Das sieht echt interessant aus :D


    Kannst du mal zeigen, wie folgendes aussieht:


    • Das enum zu pInfo
    • Die Funktion RangName
    • Das noaccess define ^^

    ast2ufdyxkb1.png


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

  • Das sieht echt interessant aus

    Wieso?


    enum ep
    {
    adminlevel,
    job,
    perso,
    fraktion,
    partner[MAX_PLAYER_NAME],
    skin,
    warns,
    payday,
    paydaytime,
    spielstunden,
    bank,
    alter,
    geburtsdatum[20],
    hausidowner,
    hausidmieter,
    bizowner,
    tankeowner,
    autoschein,
    flugschein,
    bootsschein,
    waffenschein,
    tot,
    totsek,
    muted,
    mutetime,
    supbanned,
    suptime,
    bool:loggedin,
    hathelm,
    hatangel,
    zollpass,
    busrespekt,
    hatkanister,
    handynummer,
    handykarte,
    prison,
    prisontime,
    angelskill,
    angelschein,
    drugs,
    pfandtype1,
    pfandtype2,
    tode,
    morde,
    verbrechen,
    premium,
    premiumdauer,
    respekt,
    level,
    leader,
    frang,
    ziviskin,
    inknast,
    infbiknast,
    knasttime,
    fahrsperre,
    fahrsperretime,
    punkte,
    firstaid,
    spawnchange,
    HatContract,
    ContractMoney,
    HatLotto
    }
    new pInfo[MAX_PLAYERS][ep];


    stock RangName(playerid)
    {
    new rname[20];
    switch(pInfo[playerid][adminlevel])
    {
    case 0:rname = ("Spieler");
    case 1:rname = ("Supporter");
    case 2:rname = ("Administrator");
    case 3:rname = ("Head-Administrator");
    case 4:rname = ("Projektleiter");
    }
    return rname;
    }


    #define noaccess SendClientMessage(playerid,GRAU,"Du darfst diesen Befehl nicht nutzen.");

  • Wieso?

    Weil laut der Fehlermeldung du irgendwie sowas machst:



    C
    new test[12]; //Hast ein Array mit 12 Elementen
    
    
    new alevel = 89; //Das ist der index auf den du zugreifen willst
    
    
    test[alevel] = 5; //Das geht natürlich nicht, da du nur 12 (0-11) indizes hast, aber auf den 89 zugreifen willst.

    In deinem Code allerdings...sehe ich weder ein Array mit 12 Elementen, noch dass du irgendwo alevel als index benutzt ^^


    Hast du mal dein Skript neu compilt und den Server neu gestartet? ^^

    ast2ufdyxkb1.png


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

  • Weil laut der Fehlermeldung du irgendwie sowas machst:


    C
    new test[12]; //Hast ein Array mit 12 Elementen
    
    
    new alevel = 89; //Das ist der index auf den du zugreifen willst
    
    
    test[alevel] = 5; //Das geht natürlich nicht, da du nur 12 (0-11) indizes hast, aber auf den 89 zugreifen willst.

    In deinem Code allerdings...sehe ich weder ein Array mit 12 Elementen, noch dass du irgendwo alevel als index benutzt ^^


    Hast du mal dein Skript neu compilt und den Server neu gestartet? ^^

    Ja , tut mir leid ich meinte /makeleader keine Ahnung warum es in der Server.exe makeadmin stand...


    ocmd:makeleader(playerid,params[])
    {
    new pid,pidname[MAX_PLAYER_NAME],msg1[444],msg2[444],setfrakid;
    if(!IsAdmin(playerid,3))return noaccess
    if(sscanf(params,"ui",pid,setfrakid))return SendClientMessage(playerid,GRAU,"Verwendung: /makeleader (Spieler/ID) (FraktionsID)");
    if(!PlayerOnline(pid))
    {
    if(sscanf(params,"si",pidname,setfrakid))return SendClientMessage(playerid,GRAU,"Der Spieler ist offline, daher: /makeleader (SpielerNAME) (FraktionsID)");
    if(mysql_CheckAccountNAME(pidname)==0)return SendClientMessage(playerid,GRAU,"Dieser Spieler wurde in der Datenbank nicht gefunden.");
    if(setfrakid!=0)return SendClientMessage(playerid,GRAU,"Der Spieler kann Offline nur auf FRAKTIONSID:0 gesetzt werden.");
    format(msg1,sizeof(msg1),"Du hast %s (Offline) zum Leader der Fraktion %s gemacht.",pidname,setfrakid);
    if(setfrakid==0)format(msg1,sizeof(msg1),"Du hast %s (Offline) zum Leader der Fraktion Zivilisten gemacht.",pidname);
    SendClientMessage(playerid,GRUEN,msg1);
    mysql_SetInt("spieler", "leader", 0, "name",pidname);
    mysql_SetInt("spieler", "fraktion", 0, "name",pidname);
    return 1;
    }


    pInfo[pid][fraktion]=setfrakid;
    pInfo[pid][leader]=setfrakid;
    pInfo[pid][frang]=FrakInfo[setfrakid][maxrangs];
    format(msg1,sizeof(msg1),"Du hast %s zum Leader der Fraktion %s gemacht.",PlayerName(pid),FrakInfo[setfrakid][frakname]);
    if(setfrakid==0)format(msg1,sizeof(msg1),"Du hast %s zum Leader der Fraktion Zivilisten gemacht.",PlayerName(pid));
    format(msg2,sizeof(msg2),"%s %s hat dich zum Leader der Fraktion/Gang %s gemacht.",RangName(playerid),PlayerName(playerid),FrakInfo[setfrakid][frakname]);
    if(setfrakid==0)format(msg2,sizeof(msg2),"%s hat dich als Leader entlassen!",PlayerName(playerid));
    SendClientMessage(playerid,HBLAU,msg1);
    SendClientMessage(pid,HBLAU,msg2);
    pInfo[pid][ziviskin]=pInfo[pid][skin];
    switch(setfrakid)
    {
    case 0:
    {
    SetPlayerColor(pid, COLOR_PLAYER_SPIELER);
    /*
    pInfo[pid][skin]=pInfo[pid][ziviskin];
    */
    pInfo[playerid][ziviskin]=217;
    SetPlayerSkin(pid,217);
    SendClientMessage(pid, HBLAU, "Du bist nun Zivilist.");
    /*
    SetSpawnInfo(pid, 0, pInfo[playerid][ziviskin], 0.0, 0.0, 0.0, 0.0, 0,0,0,0,0,0);
    */
    }
    case 1:
    {
    pInfo[pid][skin]=187;
    SetPlayerSkin(pid,187);
    SetPlayerColor(playerid, COLOR_PLAYER_SPIELER);
    }
    case 2:
    {
    pInfo[pid][skin]=283;
    SetPlayerSkin(pid,283);
    SetPlayerColor(playerid, COLOR_PLAYER_SPIELER);
    }
    case 3:
    {
    pInfo[pid][skin]=294;
    SetPlayerSkin(pid,294);
    SetPlayerColor(playerid, COLOR_PLAYER_SPIELER);
    }
    case 4:
    {
    pInfo[pid][skin]=71;
    SetPlayerSkin(pid,71);
    SetPlayerColor(pid, 0x00FFFFFF);
    }
    case 5:
    {
    pInfo[pid][skin]=227;
    SetPlayerSkin(pid,227);
    SetPlayerColor(pid, 0xFF5A00FF);
    }
    case 6:
    {
    pInfo[pid][skin]=275;
    SetPlayerSkin(pid,275);
    SetPlayerColor(pid, 0xE00000FF);
    }
    case 7:
    {
    pInfo[pid][skin]=107;
    SetPlayerSkin(pid,107);
    SetPlayerColor(playerid, COLOR_PLAYER_SPIELER);
    }
    case 8:
    {
    pInfo[pid][skin]=293;
    SetPlayerSkin(pid,293);
    SetPlayerColor(playerid, COLOR_PLAYER_SPIELER);
    }
    case 9:
    {
    pInfo[pid][skin]=108;
    SetPlayerSkin(pid,108);
    SetPlayerColor(playerid, COLOR_PLAYER_SPIELER);
    }
    case 10:
    {
    pInfo[pid][skin]=230;
    SetPlayerSkin(pid,230);
    SetPlayerColor(playerid, COLOR_PLAYER_SPIELER);
    }
    }
    return 1;
    }


    Und bei /aduty lagt es ebenso aber es steht nichts in der Server.exe über aduty o.Ä


    ocmd:aduty(playerid,params[])
    {
    new str[128],str2[128];
    if(!IsAdmin(playerid,1))return noaccess
    if(AdminDuty[playerid]==0)
    {
    format(str,sizeof(str),"* %s %s meldet sich zum Support an.",RangName(playerid),PlayerName(playerid));
    SetPlayerHealth(playerid, 9999);
    SendClientMessageToAll(0xE10000FF,str);
    SetPlayerColor(playerid, 0xFF0000FF);
    AdminDuty[playerid]=1;
    format(str2,sizeof(str2),"%s im Dienst",RangName(playerid));
    adutylabel[playerid]=Create3DTextLabel(str2,ROT,0.0,0.0,0.0,35.2,GetPlayerVirtualWorld(playerid),0);
    Attach3DTextLabelToPlayer(adutylabel[playerid],playerid,0.0, 0.0, 0.7);
    for(new i=0; i<sizeof(ReportTd); i++)
    {
    TextDrawShowForPlayer(playerid,ReportTd[i]);
    }
    }
    else
    {
    format(str,sizeof(str),"* %s %s hat sich vom Support abgemeldet.",RangName(playerid),PlayerName(playerid));
    SendClientMessageToAll(0xE10000FF,str);
    if(pInfo[playerid][fraktion]!=4 && pInfo[playerid][fraktion]!=5 && pInfo[playerid][fraktion]!=6)
    {
    SetPlayerColor(playerid, COLOR_PLAYER_SPIELER);
    }
    if(pInfo[playerid][fraktion]==4)
    {
    SetPlayerColor(playerid, 0x00FFFFFF);
    }
    if(pInfo[playerid][fraktion]==5)
    {
    SetPlayerColor(playerid, 0xFF5A00FF);
    }
    if(pInfo[playerid][fraktion]==6)
    {
    SetPlayerColor(playerid, 0xE00000FF);
    }
    SetPlayerHealth(playerid, 100);
    AdminDuty[playerid]=0;
    Delete3DTextLabel(adutylabel[playerid]);
    for(new i=0; i<sizeof(ReportTd); i++)
    {
    TextDrawHideForPlayer(playerid,ReportTd[i]);
    }
    }
    return 1;
    }

  • Okay :)


    FrakInfo[setfrakid][maxrangs];

    Hier ist der Fehler.


    Also FrakInfo ist auf 12 deklariert. Du willst aber jemanden in Frak 89 setzen...diese Frak existiert natürlich nicht und dementsprechend failt das.


    Du musst eine Abfrage einbauen, ob der Wert von setfrakid auch 0-11 ist :)

    ast2ufdyxkb1.png


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

  • Okay :)


    Hier ist der Fehler.
    Also FrakInfo ist auf 12 deklariert. Du willst aber jemanden in Frak 89 setzen...diese Frak existiert natürlich nicht und dementsprechend failt das.


    Du musst eine Abfrage einbauen, ob der Wert von setfrakid auch 0-11 ist :)

    C:\Users\xxx\Desktop\Test\gamemodes\aw1337.pwn(7468) : warning 213: tag mismatch
    C:\Users\xxx\Desktop\Test\gamemodes\aw1337.pwn(7468) : warning 206: redundant test: constant expression is non-zero


    if(leader>11)return SendClientMessage(playerid,GRAU,"Bitte gültigen Fraktions-ID eingeben!");


    So?

  • Nein...so:


    if(setfrakid < 0 || setfrakid > 11) return SendClientMessage(playerid,GRAU,"Bitte gültigen Fraktions-ID eingeben!");

    ast2ufdyxkb1.png


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

  • Du hast ja auch noch nicht das getan...was ich am Anfangs post geschrieben hatte :D

    Klar habe mir profiler geholt aber wo stehen jetzt die Errors?


    /e
    hier ein Video dazu:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Ich leider nicht habe aber das selbe Problem

    Mein SAMP Projekt

    logo.png

    ======================================================================================
    Waynee Family Gründer


    Wer 2020 die Hoffnung hat, dass NRP gut ist und noch drauf spielt hat die Kontrolle über sein Leben verloren.

    Wer 2020 noch Geld für nicht einzigartige SAMP Scripts/Server ausgibt hat die Kontrolle über sein Gehirn verloren.


    Aktiv auf

    GrandRP Server 4 mein "Wirb ein Freund" Link

  • Ich habe es so wie du auch local getestet und da laggt es nach einer Zeit wie bei dir

    Mein SAMP Projekt

    logo.png

    ======================================================================================
    Waynee Family Gründer


    Wer 2020 die Hoffnung hat, dass NRP gut ist und noch drauf spielt hat die Kontrolle über sein Leben verloren.

    Wer 2020 noch Geld für nicht einzigartige SAMP Scripts/Server ausgibt hat die Kontrolle über sein Gehirn verloren.


    Aktiv auf

    GrandRP Server 4 mein "Wirb ein Freund" Link