Beiträge von Martin_Woods

    Ich denke nicht das es am Script liegt, weil ich die Probleme nie hatte. Versuch es mal mit einem anderem Server...


    Hab es nie lokal getestet, sondern hatte einen Server zur Verfügung gestellt bekommen.

    Ich bezweifle es, warum funktioniert bei mir Life of SA Skript einwandfrei und Lagfrei? Das Skript hat über 200.000 Zeilen..

    @Oskar.Schindler danke dir sowie @shoxinat0r habe das ganze hier leider vergessen und war nicht online.

    Danke,
    Ich habe keine Probleme?



    Wie soll ich dir da bitte weiterhelfen, musst schon sagen was nicht klappt.

    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.


    Siehe Video, schade das es lagt finde das Skript richtig geil..
    Woran kann es liegen? Welchen XAMPP Version hast du?

    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.

    Nein...so:


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

    Danke jedoch lagt das Skript immer noch weiter, auch wenn ich nur ganz normal schreibe...

    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?

    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;
    }

    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.");

    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 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

    Das Skript ist ganz gut, @Boyne was mir am meisten gefällt ist, das es RPG - Remake ist.
    Super Arbeit geleistet!


    ABER....
    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?