Beiträge von RezZ

    @ teraphin glaube nicht xD


    @ Hardcore das wird wohl nichtmehr nötig sein, hab das problem gelöst. Zumindest musste ich mir nen Update des Laufwerks loaden, dannach ging wieder alles einwandfrei gottseidank ;)


    Danke für jede Hilfe


    /closed

    Hi Freunde,


    Also ich hab das Problem schon seit 1 Jahr. Jeder kennt das problem man freut sich auf ein neues Spiel und dann geht es nicht -.-.


    mein Problem ist jedoch das ich nicht denke das mein PC zu lahm ist.
    Ich hab heut mir vonnem Kumpel Farcry ausgeliehen (Die 1. Version finde ich irgendwie am geilsten) habe es ins CD Laufwerk eingelegt und es fängt an zu stocken. Und die CD wird im Arbeitsplatz weder erkannt noch kommt ein Autostart.


    Vorallem auffälig ist das CD-Rom´s gehen aber DVD-Rom´s gehen nicht. Habe auch schon nen Systemstart gemacht usw aber bringt nix immer wieder das scheiß Stocken.


    ich hoffe ihr könnt mir Helfen. ;)


    MFG pinguin

    Stell dich auf ein Gleis gebe /save ein dannach machst du in deinen GM unter OnGameModeInit AddStaticVehicle(zugid,deine gespeicherte position...

    GetPlayerName ist schonmal falsch..


    Du hast GetPlayername(playerid... geschrieben demnach nimmst du den Namen von dem der der Führerschein übergibt, also den Fahrlehrer.


    Dann müsstest du sspieler, fslehrer nicht mit nem string definieren sondern mit dem Namen


    zb:
    new fslehrer[MAX_PLAYER_NAME];


    dann noch SendClientMessage(fslehrer, oder spieler...

    ´mach mal die for schleife rauß und das GetPlayer(i... brauchte auch nicht , da du den Namen von dem Spieler ja schon im CMD eigetippt hast..


    Und die Strings mach die mal allerhöchstens auf 128 In SA-MP ist die maximale Zeichenanzahl im Chat auf 128 somit ist es sinnlos einen String von 256 zu machen

    Also es lag wohl eindeutig an dem Timer von 100ms. Hier der Beweiß:
    Ich hab immer bei CPU Auslastung 3.6% gestoppt. Schaut auf die Zeit. Hier der Timer bei der Include auf 2000ms:



    Jetz der Timer mit 100ms^^




    Ihr seht ja klar den Unterschied^^
    Danke für Eure Hilfe, wenns wieder Probleme gibt melde ich mich.


    Closed^^

    Wie schon gesagt ich hatte inner Include nen Timer von 100ms daran wird es wohl gescheitert haben die Timer sind bei mir so:


    SetTimer("infotime1",60000*32,1);
    SetTimer("UpdateTime",1000*60,1);
    weaponchecktimer = SetTimer("Weaponchecktimer", 2504, 1);

    Also ich kann dir ja schon zb nen command schicken weildie anderen sind dann doch schon viel zu groß hier mal nen Freeze cmd...


    dcmd_freeze(playerid,params[])
    {
    new pID,levelsetter[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME];
    new adminstring[50];
    new adminstring1[50];
    if(Spieler[playerid][AdminLevel] < 3) return ClientLanguageText(playerid, hellrot, "[ERROR] Dein AdminLvl ist nicht hoch genug!","[ERROR] Your Adminlvl is not high enough");
    if(sscanf(params, "u",pID,adminstring1)) return ClientLanguageText(playerid,hellrot,"[ERROR] Benutze: /freeze [ID]","Use: /freeze [ID]");
    if (pID == INVALID_PLAYER_ID) return ClientLanguageText(playerid,hellrot,"[ERROR] Spieler ist nicht online!","[ERROR] Player is not online");
    if (playerid == pID) return ClientLanguageText(playerid,hellrot,"[ERROR] Du kannst dich nicht selber freezen!","[ERROR] You can´t freeze yourself!");
    else if(Spieler[playerid][AdminLevel] > 2)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerLanguage[i] == 0)
    {
    GetPlayerName(pID,playername,sizeof playername);
    GetPlayerName(playerid,levelsetter,sizeof(levelsetter));
    format(adminstring,sizeof(adminstring),"Admin %s hat dich gefreezed!",levelsetter);
    SendClientMessage(pID,rot, adminstring);
    format(adminstring1,sizeof(adminstring1),"Du hast %s gefreezed!",playername);
    SendClientMessage(playerid,rot, adminstring1);
    TogglePlayerControllable(pID,0);
    return 1;
    }
    if(PlayerLanguage[i] == 1)
    {
    GetPlayerName(pID,playername,sizeof playername);
    GetPlayerName(playerid,levelsetter,sizeof(levelsetter));
    format(adminstring,sizeof(adminstring),"Admin %s has freeze you!",levelsetter);
    SendClientMessage(pID,rot, adminstring);
    format(adminstring1,sizeof(adminstring1),"You have freeze %s!",playername);
    SendClientMessage(playerid,rot, adminstring1);
    TogglePlayerControllable(pID,0);
    return 1;
    }
    }
    }
    return 1;
    }


    Edit: Also ich glaube habe Fehler in einer Include war ein Timer von 100ms das dürfte dafür gesorgt haben hoffe ich mal

    Guten Tag SA-MP Gemeinde,


    Also in den letzten 1-2 Monaten habe ich einen neuen GM gebaut, ich hoste bei GTA-Servers.de.


    So,
    Wenn ich meinen Server nun starte mit dem GM dann liegt der CPU wert bei ca 2.5 also durchschnittlich wie jeder andere GM auch. Nach 10 - bis 15 Minuten liegt der CPU Wert schon bei 5.4 und das bei einer Spieleranzahl von 0 Spielern.
    Ich habe 3 Timer im Script und noch andere die sich aber erst bei Commands aktivieren.
    Die Scriptlänge beträgt 5891 Zeilen daran kann es eig. nicht liegen. ich habe auch versucht, die Stringlänge richtig anzupassen, auch habe ich die MAX Spieler Anzahl bei for Schleifen auf 50 (Anzahl Slots Server) gebracht.


    Habt ihr vielleicht noch Tipps was ich tun kann?

    Nais für dein 1. Script. Was mich grad stört ist:


    Warum setzt du den String auf 128 (msg[128])?
    Die Nachricht "%s ist Anwesend" braucht aller höchstens einen String von 30.


    Der 2. Punkt warum setzt du die Health von dem Spieler der AFK geht auf 100000 oder was da stand wenn er doch eh gefreezt ist und nix verlieren kann?


    sonst wirklich nice für dein 1. Script

    dcmd_veh(playerid,params[])
    {
    new pID;
    if (sscanf(params, "u", pID)) return SendClientMessage(playerid, COLOR_GREY, "Benutze /veh [ID]");
    if (pID < 400 || pID > 611 ) return SendClientMessage(playerid, COLOR_GREY, "Der Skin muss zwischen 400 und 611 liegen!");
    else
    {
    if(pInfo[playerid][pRank] == 3 || IsPlayerAdmin(playerid))
    {
    new Float:vX,Float:vY,Float:vZ;
    GetPlayerPos(playerid, vX,vY,vZ);
    new carid = CreateVehicle(pID, vX,vY,vZ, 0.0, 0, 0, 60000);
    PutPlayerInVehicle(playerid, carid, 0);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist kein Admin!");
    }
    return 1;
    }
    return 1;
    }


    //Edit
    Müsste eig. jetz gehen probiers mal aus.
    Zeilen mit PWN Quelltext angezeigt ;)

    Ein Problem wäre uum Beispiel das du fast alle befehle nicht returnt hast. Das 2 Problem wäre das du bei manchen Teleports 4 Argumente hingeschrieben hast obwohl du nur 3(x,y,z) bauchst bekommst du denn keine Errors?

    Also erstmal Hi Leute,
    Ich hab heut morgen nen Hitman System gebaut soweit klappt es auch man kann Hitman setzen bla bla bla hier der Command erstmmal:


    dcmd_hitman(playerid,params[])
    {
    new levelsetter[MAX_PLAYER_NAME];
    new ThePlayer[MAX_PLAYER_NAME],pID;
    new string[128];
    new string1[128];
    if(sscanf(params, "ui",pID,hitmangeld))
    {
    return ClientLanguageText(playerid,hellrot,"[ERROR] Benutze: /hitman [ID] [Geld]","[ERROR] Use: /hitman [ID] [Money]");
    }
    if(GetPlayerMoney(playerid) < hitmangeld) return ClientLanguageText(playerid,hellrot,"[ERROR] Du hast nicht den gewünschten Betrag den du an den Spieler vergeben möchtest","You do not have the desired amount you want the award to the player");
    if (pID == INVALID_PLAYER_ID)
    {
    return ClientLanguageText(playerid,hellrot,"[ERROR] Spieler ist nicht online!","[ERROR] Player is not online");
    }
    if(hitmangeld < 1 || hitmangeld > 500000)
    {
    ClientLanguageText(playerid,hellrot,"Du kannst nicht weniger als 1$ und nicht mehr als 100000$ als Kopfgeld setzen.","You can not give less than 1$ and not more than $100,000 as hitman.");
    }
    else
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerLanguage[i] == 0)
    {
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    GetPlayerName(playerid,levelsetter,sizeof(levelsetter));
    hitmangesamt[pID] += hitmangeld;
    format(string,sizeof(string),"[HITMAN] %s setzt %i$ auf %s [Gesamt: %i$]",levelsetter,hitmangeld,ThePlayer,hitmangesamt[pID]);
    SendClientMessageToAll(gelb,string);
    GivePlayerCash(playerid,-hitmangeld);
    hathitman[pID] = 1;
    return 1;
    }
    if(PlayerLanguage[i] == 1)
    {
    hitmangesamt[pID] += hitmangeld;
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    GetPlayerName(playerid,levelsetter,sizeof(levelsetter));
    format(string1,sizeof(string1),"[HITMAN] %s set $%i on %s [Total: $%i]",levelsetter,hitmangeld,ThePlayer,hitmangesamt[pID]);
    SendClientMessageToAll(gelb,string1);
    GivePlayerCash(playerid,-hitmangeld);
    hathitman[pID] = 1;
    return 1;
    }
    }
    }
    return 1;
    }


    Die Definierungen:

    //hitman
    new hitmangeld;
    new hathitman[MAX_PLAYERS];
    new hitmangesamt[MAX_PLAYERS];


    So alles klappt soweit wie ich es oben geschrieben habe nun bei OnPlayerDeath. Also man tötet den Spieler aber der getötet bekommt auch das Hitmangeld genauso wie der Spieler der ihn tötet. Dannach kommt diese Message die fehlerhaft am Ende ist aber ich nicht den Fehler darin finde.


    [HITMAN] W4RFiGhTeR [ID:3] hat Wael gekillt. [Belohnung: is$]


    kommt dann......
    Pic:



    Hier der Hitman ausschnitt aus OnPlayerDeath:

    if(hathitman[playerid] == 1)
    {
    new string[128],string1[128],pName[MAX_PLAYER_NAME],playername[MAX_PLAYER_NAME];
    GetPlayerName(killerid,pName,MAX_PLAYER_NAME);
    GetPlayerName(killerid,pName,sizeof pName);
    GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
    GetPlayerName(playerid,playername,sizeof playername);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerLanguage[i] == 0)
    {
    format(string,sizeof(string),"[HITMAN] %s [ID:%d] hat %s gekillt. [Belohnung: %i$]",pName,killerid,playername,hitmangesamt[playerid]);
    SendClientMessageToAll(gelb,string);
    GivePlayerCash(killerid,hitmangesamt[playerid]);
    hitmangesamt[playerid] = 0;
    hathitman[playerid] = 0;
    return 1;
    }
    if(PlayerLanguage[i] == 1)
    {
    format(string1,sizeof string1,"[HITMAN] %s [ID:%d] has killed %s. He become $%i Hitman",pName,killerid,playername,hitmangesamt[playerid]);
    SendClientMessageToAll(gelb,string1);
    GivePlayerCash(killerid,hitmangesamt[playerid]);
    hitmangesamt[playerid] = 0;
    hathitman[playerid] = 0;
    return 1;
    }
    }
    }


    Ich hoffe jemand kann den Fehler finden ich wäre aufjedenfall sehr dankbar.. ;)



    MFG pinguin



    //Edit Hab Fehler gefunden hatte die selbe Abfrage 2 mal in OnPlayerDeath drin deswegen ging es nicht
    Closed^^