Beiträge von IPrototypeI

    Ich hätte da auch noch paar interessante Tricks.


    Eine Alternative für != -1
    So kann man das ganze statt so zu schreiben
    if(strfind("Hallo wie gehts", "wie") != -1) print("Gefunden");


    auch einen Bitoperator nehmen


    if(~strfind("Hallo wie gehts", "wie"))print("Gefunden");


    Ebenfalls ist es möglich auf einen Index eines zurückgegebenen Arrays zuzugreifen.


    enum tData {
    a[10],
    b[10],
    c[10],
    }


    stock test() {
    new str[2][tData] ={{"Hallo","wie","gehts"},{"Hallo","wie","gehts"}};
    return str;
    }

    print((test())[0][a]);


    Ausgabe "Hallo"


    natürlich geht das auch mit einfachen strings


    stock test() {
    new str[40] ="Hallo wie gehts";
    return str;
    }


    print((test())[5]);

    Also was das coding betrifft kannst du mit zwischen 10 -15 Euro rechnen, da der Aufwand ziemlich gering ist, Falls das Design einen Platz für die Suchleiste, Beitragsansicht und auch eine Idee für die Farbwahl der Buttons hat kannst du gerne auf mich zukommen.

    Jeffry


    Gut zu wissen, ich dachte immer das ganze geht nur bei Arrays ohne Enum als Index, jedoch wurde ich eines besseren belehrt.



    stock AddEntry(aName[],aTime,aReason[]){
    new i = sizeof(WantedHistory)-1;
    for(; i != 0;--i){
    WantedHistory[i] = WantedHistory[i-1];
    }
    format(WantedHistory[i][name],MAX_PLAYER_NAME,aName);
    format(WantedHistory[i][reason],64,aReason);
    WantedHistory[i][time] = aTime;
    return 1;
    }

    IPrototypeI Bei deiner Zeile 8,9,10 verstehe ich das "i" nicht das ist laut deiner definition 49 weil das array 50 plätze hat ich will den neuen Eintrag aber immer auf 0 haben.
    Oder lese ich etwas falsch?


    Ja du verstehst das ein wenig falsch sie Schleife fängt bei zum bsp beim index 49 an und verschiebt die ganzen werte um 1 nach oben , da er nach unten zählt, für den neuen Eintrag hat i den wert 0 sodass der 1 Eintrag immer gefüllt wird.


    Der Code ist getest und funktioniert auch ^^

    Das sollte so funktionieren


    stock AddEntry(aName[],aTime,aReason[]){
    new i = sizeof(WantedHistory)-1;
    for(; i != 0;--i){
    format(WantedHistory[i][name],MAX_PLAYER_NAME,WantedHistory[i-1][name]);
    format(WantedHistory[i][reason],64,WantedHistory[i-1][reason]);
    WantedHistory[i][time] = WantedHistory[i-1][time];
    }
    format(WantedHistory[i][name],MAX_PLAYER_NAME,aName);
    format(WantedHistory[i][reason],64,aReason);
    WantedHistory[i][time] = aTime;
    return 1;
    }


    Auf den Enumname kann man nicht direkt zugreifen um alle Werte zu übertragen

    Sry, wenn ich eure Unterhaltung störe, aber der Themenersteller will nur wissen, was ihr ihm bietet und was es kosten soll und bestimmt keine Debatte um Dienstleistungen


    Zitat

    Wer bietet sich an und was würde mich das kosten?

    Was du suchst ist ja eigentlich nur ein gutes CMS (Content-Management-System).
    Joomla ist etwas umfangreich aber auf jeden Fall gut! Du könntest auch auf Wordpress zurückgreifen, wobei du da dann vermutlich durch zusätzliche Plugins die Kommentare deaktivieren solltest.
    Das macht es dann nicht zur Blog Software sondern zu einem einfachen Baukasten. Mir gefällt die Administration da recht gut, ist sehr einfach gehalten ^^
    Die Installationen davon sind ebenso einfach wie die von WBB :D


    Zum Thema Wordpress ist die Frage ob er sich da auch auskennt.


    Ich würde wie Copyright schon angemerkt hat Jimdo verwenden, du kannst zwischen verschiedenen Layout auswählen und ganz einfach via Editor darauf zugreifen.



    http://de.jimdo.com/

    Also ich würde von sowas abraten, da du damit den Zugriff auf ein UCP beschränkst, da man mit dem PC nicht drauf zugreifen kann.


    Du könntest, wie bereit schon angesprochen ein Adminpanel schreiben oder was auch oft angesprochen wurde im Forum ein Skripteditor für Unterwegs, den du noch mit Dropbox verbindest sprich das man den Ordner von Dropbox importieren kann und natürlich sollte man die möglichkeit haben das Skript zu kompilieren.

    ist MAX_VEHICLES ein vorgegebener Wert, oder ändert der sich auf die tatsächliche Fahrzeug Anzahl ?


    MAX_VEHICLES ist ein Define bedeutet es ist ein konstanter wert und beträgt 2000, aber dies kannst du in der a_samp.inc nachlesen


    // Limits and internal constants
    #define MAX_PLAYER_NAME (24)
    #define MAX_PLAYERS (500)
    #define MAX_VEHICLES (2000)
    #define INVALID_PLAYER_ID (0xFFFF)
    #define INVALID_VEHICLE_ID (0xFFFF)


    Beim kompilieren des Skriptes ist es so das die defines gegen diese Wert getauscht werden, dies kennt man unter dem Namen Pre-Processor


    für weiteres siehe auch


    http://forum.sa-mp.com/showthread.php?t=166680

    Ich würde das via timestamp lösen und nicht mit dem Timer bedeutet:


    • Du erweiterst dein Enum für das Array sInfo um einen Eintrag

    Bei /quitjob machst das ganze so


    sInfo[playerid][job_delay] = gettime() + (PROBE_LS_BUS * 60 );


    (PROBE_LS_BUS * 60 ) steht für 15 Minuten 15 * 60s



    und bei startjobs die Abfrage


    if(sInfo[playerid][job_delay] >= gettime())return SendClientMessage(playerid,-1,"Du kannst den Job noch nicht ausführen");


    weitere Infos zu timestamps und gettime


    http://wiki.sa-mp.com/wiki/Gettime

    Du musst abfragen ob das Auto existiert


    das oben ins Skript


    native IsValidVehicle(vehicleid);


    for(new i=1; i==sizeof(tank); i++)
    {
    if(!IsValidVehicle(i))continue;
    new vModel = GetVehicleModel(i);
    tank[i]=VehicleName[vModel-400][carinfo_tankvolumen];
    }


    Falls das Fahrzeug nicht existiert ist vModel quasi 0 und du greifst auf einen negativen index des Arrays zu.