Beiträge von IPrototypeI

    Was vllt auch paar Leuten helfen könnte auch wieder ein Thema zu Toplisten nur diesmal mit MySQL.


    new Text: topbox;
    enum TopDriver{
    tdName[MAX_PLAYER_NAME],
    tdZeit,
    };
    new DriverInfo[5][TopDriver];
    new count;

    topbox = TextDrawCreate(260.000000, 199.000000, "~n~");
    TextDrawBackgroundColor(topbox, 255);
    TextDrawFont(topbox, 1);
    TextDrawLetterSize(topbox, 0.200000, 1.000000);
    TextDrawColor(topbox, -1);
    TextDrawSetOutline(topbox, 0);
    TextDrawSetProportional(topbox, 1);
    TextDrawSetShadow(topbox, 1);


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    new string[128];
    if(IsPlayerInRangeOfPoint(playerid,2042.6235,1099.7368,10.6719,5.0)){
    new rtime, sek , minutes , pName[MAX_PLAYER_NAME];
    DisablePlayerRaceCheckpoint(playerid);
    rtime = GetTickCount() - count;
    new sql[128];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(sql,128,"INSERT INTO `Zeiten`(Name,Zeit) VALUES ('%s','%d')",pName,rtime);
    mysql_function_query(g_ConnectionHandle, sql, false, "", "i", playerid);
    minutes=rtime/60000;
    rtime-=(60000*minutes);
    sek=rtime/1000;//sekunden
    rtime -=(sek*1000);
    format(string,128,"Deine Zeit: d:d",minutes,sek);
    SendClientMessage(playerid,-1,string);
    mysql_function_query(g_ConnectionHandle, "SELECT `Name`,`Zeit` FROM `Zeiten` ORDER BY `Zeit` ASC", true, "NewBestlist", "");
    }
    return 1;
    }

    forward NewBestlist();
    public NewBestlist()
    {
    new temp[30], gesammt[500],rang,sek,minutes;
    for(new i; i < 5; i++){
    cache_get_row(i, 0, DriverInfo[i][tdName]);
    cache_get_row(i, 1, temp);
    DriverInfo[i][tdZeit] = strval(temp);
    rang += 1;
    minutes=DriverInfo[i][tdZeit]/60000;
    DriverInfo[i][tdZeit]-=(60000*minutes);
    sek=DriverInfo[i][tdZeit]/1000;//sekunden
    DriverInfo[i][tdZeit] -=(sek*1000);
    format(gesammt, sizeof(gesammt), "%s~n~~b~%d. ~w~%s - ~r~Zeit: d:d",gesammt,rang,DriverInfo[i][tdName],minutes,sek);
    }
    TextDrawSetString(topbox, gesammt);
    TextDrawShowForAll(topbox);
    return 1;
    }


    ocmd:start(playerid,param[])
    {
    new car;
    car = CreateVehicle(560,2043.5396,1307.9452,10.6719,178.8549,0,0,-1);
    PutPlayerInVehicle(playerid,car,0);
    SetPlayerRaceCheckpoint(playerid,1,2042.6235,1099.7368,10.6719,0.0,0.0,0.0,5.0);
    count = GetTickCount();
    return 1;
    }


    und dazu noch ein screen.



    Ich hab mir gedacht da ich nix dazu heute gefunden habe und Benjamin hatte es mal in dem Thread von Rocky angesprochen so bin ich auf die Idee gekommen
    so was zu releasen beziehungsweise den codeschnipsel zu posten.


    //edit
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    Da mich Gestern jemand gefragt hatte wie man das CTF hin bekommt was jedoch sehr simpel ist wollte ich das hier auch noch hinzufügen
    der Code ist zwar nicht perfekt gebe ich auch selbst zu, aber als Beispiel Code reicht er vollkommen aus ^^.



    #define MAX_ZONE 3
    new CTFTimer[MAX_PLAYERS];
    new flagge[MAX_PLAYERS];
    new ctfpickup1[MAX_ZONE];
    new ctfpickup2[MAX_ZONE];
    new ctftime[MAX_PLAYERS];
    new ZonenInfo[MAX_ZONE][zonen] ={
    {1,1691.416, -1677.914, 1759.867, -1583.168, 1537.5564, -1660.4182, 83.5469, 1536.3740, -1712.6566, 83.5469,0xF60000F6},
    {2,1436.625, -1764.764, 1611.556, -1618.698, 1537.5564, -1660.4182, 13.5469, 1536.3740, -1712.6566, 13.5469,0xF60000F6},
    {3,1159.018, -959.4252, 1292.118, -864.6794, 1537.5564, -1660.4182, 83.5469, 1536.3740, -1712.6566, 83.5469,0xF60000F6}
    };
    new zone[MAX_ZONE];




    for(new i; i< MAX_ZONE; i++){
    zone[i] = GangZoneCreate(ZonenInfo[i][zPosX],ZonenInfo[i][zPosX1],ZonenInfo[i][zPosY],ZonenInfo[i][zPosY1]);
    ctfpickup1[i] = CreatePickup(1239, 1, ZonenInfo[i][ctf1X], ZonenInfo[i][ctf1Y], ZonenInfo[i][ctf1Z], -1);
    ctfpickup2[i] = CreatePickup(1239, 1, ZonenInfo[i][ctf2X], ZonenInfo[i][ctf2Y], ZonenInfo[i][ctf2Z], -1);
    Create3DTextLabel("Benutze hier\n /ctf \n Um eine Flagge zu nehmen", -1, ZonenInfo[i][ctf1X], ZonenInfo[i][ctf1Y], ZonenInfo[i][ctf1Z], 100.0, 0);
    Create3DTextLabel("Geh mit der Flagge\n In den Punkt", -1, ZonenInfo[i][ctf2X], ZonenInfo[i][ctf2Y], ZonenInfo[i][ctf2Z], 100.0, 0);
    }



    ocmd:ctf(playerid,params[])
    {
    #pragma unused params
    new i, bool:dort;
    if(flagge[playerid] != 0) return SendClientMessage(playerid,-1,"Du hast schon eine Flagge");
    for(; i < sizeof(ZonenInfo); i++){
    if(IsPlayerInRangeOfPoint(playerid,2.0,ZonenInfo[i][ctf1X], ZonenInfo[i][ctf1Y], ZonenInfo[i][ctf1Z])){
    flagge[playerid] = 1;
    SetPlayerAttachedObject(playerid, 3, 19487, 2, 0.101, -0.0, 0.0, 5.50, 84.60, 83.7, 1, 1, 1, 0xFF00FF00);
    SendClientMessage(playerid,-1,"Du Nimmst eine Flagge.");
    dort = false;
    break;
    }else{ dort = true;}
    }
    if(dort) return SendClientMessage(playerid,-1,"Du bist an keinem CTF-Punkt");
    return 1;
    }




    for(new i; i< MAX_ZONE; i++){
    GangZoneShowForPlayer(playerid,zone[i],ZonenInfo[i][zcolor]);
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    new i;
    for(; i < MAX_ZONE; i++){
    if(pickupid == ctfpickup2[i] && flagge[playerid] == 1){
    flagge[playerid] = 2;
    printf("%d",i);
    SendClientMessage(playerid,-1,"Bleibe 20 Sekunden an dem Punkt stehen, sonst wird der Vorgang abgebrochen");
    CTFTimer[playerid] = SetTimerEx("ctftimer",1000,true,"ii",playerid,i);
    }
    }
    return 1;
    }
    forward ctftimer(playerid, id);
    public ctftimer(playerid, id){
    printf("%d",id);
    if(IsPlayerInRangeOfPoint(playerid,4.0,ZonenInfo[id][ctf2X], ZonenInfo[id][ctf2Y], ZonenInfo[id][ctf2Z])){
    if(ctftime[playerid] >= 20){
    ctftime[playerid] = 0;
    flagge[playerid] = 0;
    RemovePlayerAttachedObject(playerid, 3);
    SendClientMessage(playerid,-1,"Du hast die Flagge erobert.");
    KillTimer(CTFTimer[playerid]);
    }
    ctftime[playerid]++;
    }else{
    ctftime[playerid] = 0;
    flagge[playerid] = 0;
    RemovePlayerAttachedObject(playerid, 3);
    SendClientMessage(playerid,-1,"Du hast den Punkt verlassen! Vorgang abgebrochen");
    KillTimer(CTFTimer[playerid]);
    }
    return 1;
    }



    Bilder gibt es natürlich auch dazu. Jedoch mache ich nochmal aufmerksam das diese Codes hier nur schnipsel sind kein copy past darum release ich auch grundsätzlich
    nur ungern was beziehungsweise gar nicht ^^ und helfe eher oder poste hier Codeschnipsel.



    das nehmen der "Flagge" ich hab einen Hut genommen da ich zu faul war die koordinaten raus zu suchen für die flagge.



    Hier der Punkt wo man hin muss und 20 Sekunden warten


    und nach dem 20 Sekunden verschwindet natürlich das Objekt und mann könnte zum beispiel bei einem gangfight die punkte dann erhöhen


    //edit


    Falscher code gepostet ist mir erst beim zweiten hin schauen aufgefallen wirklich fail von mir dein code sollte eigentlich gehen ich hab es selbst getestet


    if(strcmp(cmdtext, "/rap1", true) == 0)
    {
    ApplyAnimation(playerid,"RAPPING","RAP_A_Loop",4.0,1,1,1,1,0);
    return 1;
    }


    warum es dennoch abgebrochen wird ist mir nun fraglich

    Also das liegt daran das diese Sachen schon definiert sind in deinem script oder in einer anderen include also auch
    der warning


    warning 201: redefinition of constant/macro (symbol "MAX_PICKUPS")


    der entsteht daraus das dies schon in der a_samp include defniert ist daher kannst du die variabel entweder umbenennen
    oder MAX_PICKUPS neu definieren also erst undefinieren und danach erneut


    und


    @ PawnFox ich frag mich grundsätzlich warum du hier rein postest das ist nix produktives
    du kannst dich gern in deinen eigenen Threads dumm stellen und auf noob machen, aber unterlasse das bitte in anderen Threads.

    Da ist auch nix Falsch daran nur dein Script erkennt
    gstorauf nicht.


    Entweder hast du es ihrgend wo in einen command geschoben oder in eine andere Function beziehungsweise public
    oder es könnte auch an der Zeile 90 liegen


    (90) : error 020: invalid symbol name ""


    dazu müsstest du diese mal Posten.


    @ Mellnik nein daran liegt es nicht ^^


    die 4 Error hängen immer zusammen. sollte der Fall eintretten den du meinst also das man ein Simicolon vergisst an einem oberen code beispiel wenn
    dort über dem erstellen von den Toren und dem zuweißen der variabel.
    Beispiel
    CreateObject(980, 2425.89, -1659.05, 15.20, 0.00, 0.00, -90.72)
    so würde der error kommen
    error 001: expected token: ";", but found "-identifier-"

    Also bei mir funkt. es so ^^


    Ja klar ^^ ist ja auch richtig nur wird es bei ihm nicht funktionieren allgemein schon von der spielerid pld und SCM ^^ ich weiß nicht ob er es so definiert hat
    oder den "stock/Funktion " hat naja man kann es machen wie man will ^^ und auch alles umdefinieren.


    Ich wollte das nur noch drunter schreiben wenn er sich wundern sollte , warum da errors kommen.


    Zum ergänzen also GetVehicleModel gibt die Fahrzeug id aus beispiel bei dem Sultan die id 560 ,
    GetPlayerVehicleID(playerid) gibt die id den Fahrzeugs aus diese kann 5 zum beispiel sein es ist die nummer des Fahrzeugs , die dem Auto beim erstellen
    zugeordnet wird ^^.

    Teste es mal so:
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 560){SCM(pld,ROT,"[ERROR] Nur in einem Sultan möglich!");}


    also die if abfrage stimmt nur solltest du noch die return message hinzufügen

    if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 560) return SendClientMessage(playerid,hGrau,"Du bist in keinem Sultan");

    grundsätzlich wundert es mich nicht



    P_CBUG_TICKS[playerid] ++;
    P_CBUG_TICKS[playerid] +1;
    P_CBUG_TICKS[playerid] =+;
    P_CBUG_TICKS[playerid] = 1;


    also dazu braucht man nicht mal ein brille um zu sehen was für eine scheiße das ist.



    weißt du überhaupt wie man den wert eine variabel erhöht ?


    dazu hast ja schon ein beispiel
    P_CBUG_TICKS[playerid] ++;


    oder
    P_CBUG_TICKS[playerid] += 1;


    du setzt ja den wert zum schluss auch noch auf 1 einfach nur fail


    //edit und ich versteh nicht was an sowas so schwer ist


    new Cbugwarn[MAX_PLAYERS];
    if ((oldkeys & KEY_FIRE) && (newkeys & KEY_CROUCH)) {
    new string[32];
    if(GetPlayerWeapon(playerid) == 24) {
    Cbugwarn[playerid]++;
    format(string,sizeof(string),"Lass es! Verwarnung %d / 5",Cbugwarn[playerid]);
    SendClientMessage(playerid,-1,string);
    if(Cbugwarn[playerid] >= 5) { Kick(playerid);}
    }
    }

    Grundsätzlich versteh ich nicht dein Problem das einfach an der stelle einzufügen wo du auch den account erstellst.


    besser gesagt das gegenstück dazu

    if(fexist(string))
    {


    wo es bestimmt auch ein else im weiteren code geben wird

    Liegt das an mir oder ist da kein Link ?
    PS: Pastebin Link muss vorhanden sein.


    schon grundsätzlich die erkenntnis das er in einem Thread nach sowas Frägt und ein nächsten dann auf macht und das anbietet daran ist immer was Faul.
    Zum einen ist das auch schon laut der commands nicht deins


    /efa - Erstellt ein Fraktionsfahrzeug - @Dialoge.


    /lfa - Entfernt ein Fraktionsfahrzeug in deiner nähe.


    /fpark - Parkt das Fraktionsfahrzeug in dem man sitzt.


    /flock - Schließt das Fraktionsfahrzeug auf & ab.


    /rfc - Der Leader der Fraktion repsawnt alle seine Fahrzeuge.


    /rafc - Ein Admin Respawnt alle Fraktionsfahrzeuge.


    da sich das eher nach dem von [My]Kevin anhört , welches sich so gut wie in jedem GF edit befindet und es wie ich schon geschrieben hatte es sowas auch als filterscript
    bei pastebin.de gibt eher besser gesagt der pastbin (code) davon

    Allgemein die Leute die sowas kaufen müssen doch extrem dumm sein.
    Also bitte wer würde von euch 99 $ für ihrgend welche überragende vorteile ausgeben auch noch auf einem Samp Server.
    So eine Betrag würde ich mir lieber für wichtigere Sachen zu Seite legen Beispiel: ( Führerschein , Freizeit).


    Und Grundsätzlich zum Beispiel bei LoS , ich glaube nicht das die so extrem viel einnehmen und trotz ausgaben ein fettes Plus machen, sonst würden die sich wohl kaum ein Root-Sponsor erschnorren.

    zum ersten teil solltest du die id der Flagge kennen das ist ein Objekt und zu dem auch noch mit SetPlayerObjectMaterial arbeiten
    http://wiki.sa-mp.com/wiki/SetPlayerObjectMaterial


    Du kannst es grundsätzlich bei dem einnehmen der Flaggen so machen wie du es willst entweder lässt du ein timer drüber gehen der immer abfrägt ob der spieler an einer
    bestimmten flaggen position ist oder nicht oder du machst es mit einem command oder du erstellst das Object als icon also sollte der spieler dort rein gehen muss er so und so lange dranne stehen also grundsätzlich einen Timer dazu hin ablaufen lassen der sich jede sekunde wiederholt dazu lässt du noch eine variabel mit zählen.
    Der vorteil ist daran du kannst zusätzlich abfragen der spieler noch an dem punkt ist wenn nicht wird das ganze abgebrochen und der wert der variabel die es mitzählt auf 0 wieder
    gesetzt.
    Allgemein kannst du noch eine variabel für die flaggen erstellen so wie für die punkte also das es zwei variabeln für die beiden Gangs gibt die du je nach einnahme
    hochzählen lassen kannst. Das gibt dir noch die möglichkeit , entweder du bringst das in den timer ein der eine gangzeit anzeigt also wie lange der Kampf
    noch geht . Welcher dann wieder eine variabel mit hoch zählt und diese resetet wenn sie bei 30 angekommen ist der timer versteht sich sollte sich hier jede sekunde
    wiederholen oder auch alle 30 sekunden so wäre es auch möglich . Jedoch geht es allgemein um die abfrage dann ob 30 minuten vergangen sind und ein der parteien
    diese 3 Punkte eingenommen haben.


    Grundsätzlich ist sowas nix für noobs die keine ahnung haben und das ist nur eine grobfläche Anleitung , welche jedoch noch schlecht und übersichtlich gehalten ist , jedoch kann man das im großen und ganzen alles noch weiter zusammen fassen und optimieren,dennoch ist ein kleiner einblich gewährt wie man sowas machen könnte.
    Zum ganzen noch werde ich zu sowas keine komplett lösungen posten.

    dann musst du noch viel lernen
    das is im Prinzip so naja schwer zu erklären man macht es immer mit normalerweise
    also zurück zum Problem.....


    Du hast die Zeichen `` bei adress vergessen könnte gut daran liegen


    format(query, sizeof(query), "INSERT INTO `Serial`(`adress`) VALUES ('%s')", mip);