Beiträge von Hagi

    Ne das doch auch blöd, alles auf 15 und 10 Minuten wird so selten aufgerufen, dass da ein kleiner lagg nich spürbar ist.


    Und den 10 Sek Timer rausnehmen und das alle 10 Sekunden im 1 Sek Timer zu machen erscheint mir auch nicht gerade logisch.

    Also wenn ich alle 1 Sek und 10 Sek auf 5 Minuten oder so stelle laggt es gar nicht. Also liegt es wohl an den Timern. Schaut euch bitte nochmal meine Publics an (befinden sich ein paar Post höher) und sagt mir, ob ihr da etwas Ressourcen fressendes findet.

    Sorry hab ich net ganz zu Ende gedacht:


    Das hier hollte funktioneren.


    Jetzt überprüft er auch ob der Skill zu dem die in der SChleife gehörenden Werte niedriger ist als der eigene Skill wodurch nur der nächst höhere angesprochen wird.


    if(Spieler[i][Dskillpunkte] >= wanndskill[j][1] && Spieler[i][Drogenskill] < wanndskill[j][0])



    Sollte so eigentlich funktioneren wenn ich mich nicht irre. Aber ... ja... bin mir sicher, dass es funktioniert.

    Du hast ja sicher nen Command bei dem man die zu verkaufende Menge angiebt.


    Dann kannste ja einfach in diesem Command die Skillpunkte erhöhen.




    new punkte = random(3) +1;
    Spieler[playerid][Dskillpunkte] = Spieler[playerid][Dskillpunkte] + punkte;


    Er erhält also in diesem Falle einen bis vier Skillpunkte pro Menge. Du kannst natürlich auch die verkaufte Menge in Relation zu den Punkten setzten.


    So nun zum neuen Skill




    const maxskills = 3;
    new wannskill[maxskills][2] =
    {
    {2,50},
    {3,100},
    {4,200}
    };


    Im Command :



    for(new i = 0;i<maxskills;i++)
    {
    if(Spieler[playerid][Dskillpunkte] >= wannskill[i][1])
    {
    Spieler[palyerid][Drogenskill] = wannskill[i][0];
    }
    }

    Es würde meines erachtens nach auch durchaus reichen wenn man einfach alte Tread closed. Fragestellungen und Antworten kann man so immer noch lesen und keiner cheatet sich mehr post in dem er in 3 Jahre alten Treads Anmerkungen wie "versteh ich nicht" , "ja das ist toll" macht.

    Es wird zwar die Methode aufgerufen, doch ist diese nicht im PastCode enthalten. Da ist wohl ein Fehler drin


    timebanplayer(gPlayerName[pid],grund,gPlayerIP[pid],gPlayerName[playerid],zeitdauer);

    if(PlayerToPoint(2.0,playerid,einsys[i][a_x],einsys[i][a_y],einsys[i][i_z]


    ist der z Parameter nicht falsch ?


    müsste das nach der logig der anderen nicht

    if(PlayerToPoint(2.0,playerid,einsys[i][a_x],einsys[i][a_y],einsys[i][a_z]


    sein

    So ich hab mal alle Textdraws die erstellt werden mit print ausgelsesen und siehe da, es hängt beim ersten Textdrawblock.


    Hab anstatt Index 20 index 16 gehabt ^^


    Problem solved.


    Hier war das Problem


    new rankdraws[20][irankdraw] =
    {
    {"----" ,-1},
    {"----" ,0},
    {"---" ,50},
    {"---" ,100},
    {"---" ,150},
    {"------" ,250},
    {"---------" ,350},
    {"---------" ,475},
    {"---" ,575},
    {"---. ---" ,750},
    {"---" ,1000},
    {"---" ,1250},
    {"---" ,1500},
    {"---" ,1750},
    {"---" ,2500},
    {"---" ,3750},
    {"---" ,5000},
    {"---" ,7000},
    {"---" ,8500},
    {"---" ,10000}
    };


    new Text:rankdraw[20]; // var vorher [16]

    Dann müsste das doch funktionieren, nur warum tut es das denn nicht. Ich kann jetzt kein Fehler erkennen

    Warum du 6 Wanteds hast weiß ich auch nicht, bekommste immer nur zwei drauf und läuft ja auch keine loop durch. Daher keine Ahnung


    Das mit dem Selfkill und der fehlende Name ist ganz einfach:


    Der Name fehlt weil killerid nicht belegt ist, da du ja playerid bist.


    Das ganze könnte man verhindern wenn man auf selbstmord abfragt, was aber anscheinen so nicht funktioniert. Ich hab aber auch keine Ahnung wie man das machen kann.

    Klammer vergessen und ich würds anders strukturieren



    public OnPlayerDeath(playerid, killerid, reason)
    {
    new pname[20],kname[20],kstring[80];
    GetPlayerName(playerid,pname,sizeof(pname));
    GetPlayerName(killerid,kname,sizeof(kname));
    format(kstring,sizeof(kstring),"Spieler %s hat %s umgebracht",kname,pname);
    SendClientMessageToAll(0xCC0000FF,kstring);
    if(playerid != killerid)
    {
    SetPlayerWantedLevel(killerid,GetPlayerWantedLevel(killerid)+2);
    SendClientMessage(playerid, 0xFFCC00FF,"Du hast Wanteds! Flüchte vor anderen Usern!");
    SetPlayerWantedLevel(playerid,GetPlayerWantedLevel(playerid)-1);
    }
    return 1;
    }


    PS /edit: Du hast dadurch jetzt sogar die Namen im String drin und musst nicht stumpf sagen, dass irgentwer getötet wurde.


    Zitat

    Pawn Quellcode bitte immer zwischen   posten

    Ich weiß jetzt grad nicht ob man so nen selfkill abfragen kann aber ich wüsste auch eig net wie sonst ^^


    if(killerid != playerid)
    {
    SetPlayerWantedLevel(playerid,0);
    }


    edit: Sorgt dafür, dass deine Wanteds als Opfer weggehen wenn du dich nicht selber umgebracht hast

    Musst das machen, sonst bekommste immer wieder auf zwei Wanteds runter


    SetPlayerWantedLevel(killerid,GetPlayerWantedLevel(killerid)+2);


    edit: Es muss natürlich killerid als Parameter angegeben werden und nicht playerid