Beiträge von IPrototypeI

    Also wie schon genug gesagt solltest du den Header kleiner machen und weniger Bilder verwenden , da weniger auch mehr sein kann
    das gilt auch für dein wallpaper, diese anreihung von dunklen Bildern sieht einfach im warsten sinne des wortes scheiße aus .

    doch bei windows schon dann hast die include


    /*
    SA-MP MySQL plugin R5
    Copyright (c) 2008-2010, G-sTyLeZzZ
    */


    #if defined mysql_included
    #endinput
    #endif
    #define mysql_included


    //Common error codes (http://dev.mysql.com/doc/refman/5.0/en/error-messages-(client|server).html)


    #define ER_DBACCESS_DENIED_ERROR 1044
    #define ER_ACCESS_DENIED_ERROR 1045
    #define ER_UNKNOWN_TABLE 1109
    #define ER_SYNTAX_ERROR 1149
    #define CR_SERVER_GONE_ERROR 2006
    #define CR_SERVER_LOST 2013
    #define CR_COMMAND_OUT_OF_SYNC 2014
    #define CR_SERVER_LOST_EXTENDED 2055


    //Native functions


    #define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
    #define mysql_next_row() mysql_retrieve_row()
    #define mysql_get_field(%1,%2) mysql_fetch_field_row(%2,%1)


    native mysql_affected_rows(connectionHandle = 1);
    native mysql_close(connectionHandle = 1);
    native mysql_connect(const host[],const user[],const database[],const password[]);
    native mysql_debug(enable = 1);
    native mysql_errno(connectionHandle = 1);
    native mysql_fetch_int(connectionHandle = 1);
    native mysql_fetch_field(number,dest[],connectionHandle = 1);
    native mysql_fetch_field_row(string[],const fieldname[],connectionHandle = 1);
    native mysql_fetch_float(&Float:result,connectionHandle = 1);
    native mysql_fetch_row_format(string[],const delimiter[] = "|",connectionHandle = 1);
    native mysql_field_count(connectionHandle = 1);
    native mysql_free_result(connectionHandle = 1);
    native mysql_get_charset(destination[],connectionHandle = 1);
    native mysql_insert_id(connectionHandle = 1);
    native mysql_num_rows(connectionHandle = 1);
    native mysql_num_fields(connectionHandle = 1);
    native mysql_ping(connectionHandle = 1);
    native mysql_query(query[],resultid = (-1),extraid = (-1),connectionHandle = 1);
    native mysql_query_callback(index,query[],callback[],extraid = (-1),connectionHandle = 1);
    native mysql_real_escape_string(const source[],destination[],connectionHandle = 1);
    native mysql_reconnect(connectionHandle = 1);
    native mysql_reload(connectionHandle = 1);
    native mysql_retrieve_row(connectionHandle = 1);
    native mysql_set_charset(charset[],connectionHandle = 1);
    native mysql_stat(const destination[],connectionHandle = 1);
    native mysql_store_result(connectionHandle = 1);
    native mysql_warning_count(connectionHandle = 1);


    //forward declarations


    forward OnQueryFinish(query[], resultid, extraid, connectionHandle);
    forward OnQueryError(errorid, error[], resultid, extraid, callback[], query[], connectionHandle);

    Da hast doch die fehler
    [01:35:16] Server Plugins
    [01:35:16] --------------
    [01:35:16] Loading plugin: streamer
    [01:35:16] Failed.
    [01:35:16] Loading plugin: MapAndreas
    [01:35:16] Failed.


    daraus resultiert das dein gamemode fehlerhaft geladen wird und das nix mehr gescheit angezeigt wird
    mit debugen meine ich das du dir die crashdetect.dll /.so runter lädst und uns danach die Zeilen postest
    welcher Fehler daraus resultiert.


    //edit jedoch sollte dann beim gamemod Unknow stehen wenn du den namen aus dem script fest legst

    Dann entferne doch die betreffenden Zeilen in der include
    public CheckIPFromList(playerid)
    {
    new playerip[15], read[32], TwoNumbersLength = 0, count = 0;
    GetPlayerIp(playerid,playerip,sizeof(playerip));
    for(new c=0; c<strlen(playerip); c++)
    {
    if(playerip[code=c] == '.')
    {
    count++;
    }
    if(count == 2)
    {
    TwoNumbersLength = c-1;
    break;
    }
    }
    new File:BLACKLISTFILE = fopen("/M_Bot/M_Black.cfg", io_read);
    if(BLACKLISTFILE)
    {
    while(fread(BLACKLISTFILE,read))
    {
    for(new x=0; x<strlen(read); x++)
    {
    if(read[x] == '\n')
    {
    read[x] = '\0';
    }
    }
    if(!strcmp(read,playerip,false,TwoNumbersLength) || !strcmp(read,playerip,false))
    {
    fclose(BLACKLISTFILE);
    return 1;
    }
    }
    }
    fclose(BLACKLISTFILE);
    /*new playerip[16], read[32], ipstr[4][8], ip[2], ipstr2[4][8], ip2[2];


    GetPlayerIp(playerid,playerip,sizeof(playerip));
    split(playerip,ipstr2,'.');
    ip2[0] = strval(ipstr2[0]);
    ip2[1] = strval(ipstr2[1]);


    new File:BLACKLISTFILE = fopen("/M_Bot/M_Black.cfg", io_read);
    if(BLACKLISTFILE)
    {
    while(fread(BLACKLISTFILE,read))
    {
    split(read,ipstr,'.');
    ip[0] = strval(ipstr[0]);
    ip[1] = strval(ipstr[1]);


    if(ip[0] == ip2[0] && ip[1] == ip2[1])
    {
    fclose(BLACKLISTFILE);
    return 1;
    }
    }
    }
    fclose(BLACKLISTFILE);*/
    return 0;
    }


    und die abfrage , jedoch mal was anderes benutzt du diese Function oder lässt du die ip in die .cfg eintragen weil dann solltest du das im script umschreiben

    ahja schon mal genau hin geschaut beziehungsweise gelesen ein auschnitt

    du kannst dir dabei ein forschleife sparen mit
    SendClientMessageToAll


    und wie schon über mir beschrieben brauchst du eine for schleife


    for (new i=0; i<160; i++) {SendClientMessageToAll(0," ");}
    return 1;

    Also könntest du nochmal genau erläutern was du willst.


    Willst du den Server über deine ip laufen lassen das andere auch drauf spielen können ? ( Dann musst du die Ports frischalten)


    oder willst du das die Mysqldatenbank über deinen Server läuft ?( Dazu benötigst du entweder Xampp oder Wamp für ein Homenetzwerk, für Xampp
    schau einfach mal in maddins mysql tutorial rein dort ist das auch ein bissle beschrieben zum installieren das meiste findest du dort direkt auf
    den Seiten)

    Da solltest du erstmal die position abfragen wo der spieler steht , danach die waffen welche er hat und diese erstellen lassen auf dem Boden mit
    CreateObject oder CreateDynamicObject jedoch wäre es gut wenn du den Objecten eine id zuweißt und eine variabel beispiel waffe1[playerid] etc..


    Grundsätlich benötigst du diese Funktionen :


    GetPlayerPos,
    GetPlayerWeaponData,
    und
    CreateObject oder CreateDynamicObject


    um das ganze zu erstellen


    bei dem command
    solltest du mit
    GetObjectPos oder wieder für den streamer GetDynamicObjectPos
    benutzen und die objekte durch loopen
    mit einer schleife und wenn der spieler in der nähe dieses objekts ist dann gibst du ihm die waffe und zerstörst
    das objekt


    Ich habe gelesen der Syntax von "C" ähnelt Pawno mehr?



    Ja habe ich und leider komme ich mit Videos nicht klar.

    Semtliche Commands ist vllt. etwas viel. Aber Script lehrer gibt es.


    Ich bezweifle aber leider das irgendjemand dies kostenlos machen würde


    wenn du das zu 100 Prozent können willst dann würde ich auch hier rein schauen


    http://www.compuphase.com/pawn/pawn.htm


    da PAWN nicht nur für Samp


    Leider bin ich nicht der beste in Englisch ;)
    trozdem danke



    Also in meinem Link da geht es grundsätzlich um PAWN, dass hat fast nix mehr wirklich mit Samp zu tun außer der umgang mit AMX ( Abstracte Maschinen)
    , was man je nach dem auch sehr gut einbinden kann dazu brauchst nur ins englische forum schauem umgang mit emit aber egal.


    Schau dir hier die Tutorials an und die beginner Tuts im wiki und sonst heißt es ja learning by doing um was neues zu erlernen
    braucht man Zeit , dass geht nicht von Heut auf Morgen , wenn man keine Vorkenntnisse hat.

    Da hast du natürlich voll und ganz recht,
    aber dennoch ist die Zeile nicht nötig da so MAX_PLAYERS Funktioniert und man die 500 lassen kann.
    Da Normal die Server so wieso nicht gerade Ressourcen usw nehmen. (Wenn man gut Scriptet)

    Dir ist schon bewusst das alles Ressourcen frisst manches mehr manches weniger je nachdem wie man scriptet und solche Sachen zum beispiel beachtet.
    und nur zur Info nochmal , auch wenn du die schnellsten Dinge benutzt ( Streamer , Login/Registersystem, Commandprozessor, etc....)
    wenn du alles unnötig groß nimmst wird dein Script mehr Ressourcenfressen beispiel die Schleifen auf 500 lassen oder strings im übermaße zu nehmen.
    Sowas spiegelt sich auch immer wieder in der Amx größe. Du kannst das ja an einem GF sehen wenn du MAX_PLAYERS neu definierst das schohnt so auch die Ressourcen
    sieht man ja an der Amx größe


    Das sind keine unnötige Zeilen du kennst doch bestimmt eine for schleife welche man durch alle Spieler gehen lässt
    dazu hast du zwei möglichkeiten entweder du gehst die Slots durch standart von samp 500 oder mit GetMaxPlayers();
    daher bietet sich diese function sehr an , wenn man die schleife schneller machen will da 500 Einträge langsamer zu bewältigen sind als 50.
    MAX_PLAYERS ist auch schneller als GetMaxPlayers(); jedoch nur wenn der Server voll ist sonst bietet sich eher GetMaxPlayers(); an.
    am schnellsten währe es mit der foreach include für solche loops.

    um einen indivudellen tank zu haben brauchst du ein array in dem du die indivudellen tankfüllungen einträgst für jedes Fahrzeug
    und dazu die entsprechende Funktion Beispiel:


    stock GetTankMax(vehmodel)
    {
    if(vehmodel >= 400 && vehmodel <= 611)
    {
    return TankMax[(vehmodel-400)];
    }
    return 100;
    }


    solltest du in einem Fahrzeug, welches die id 400 - 611 besitzt wird der tank returnt also welchen du im array hast
    wenn nicht ist dieser 100.
    wie wird das erstellt array mit ein bezogen dazu ist der Codeschnipsel da


    return TankMax[(vehmodel-400)];


    Die funktioniert so bist du im Auto mit der Id 400 also in einem Landstalkerwird 400 - 400 = 0 also wird der erste Dateneintrag genommen
    da arrays immer bei 0 anfangen


    siehe zum beispiel

    new TankMax[] = {
    50,
    60,
    70,
    etc...
    90,
    10
    };


    und davon wird nun der erste wert genommen also TankMax[0] der Wert 0 dieser ist in dem falle 50