Beiträge von IPrototypeI

    Also in der log steht es eigentlich schon
    Accessing element at negative index -400
    CarName[model-400]


    normalerweise kratzt der Server ab wenn negative zahlen an den array index zurück gegeben werden, also so kenne ich es :D aber nun gut
    das kommt daher zustande wenn deine modelid 0 ist 0-400 => -400

    ich würde sowas gar nicht machen sondern den spieler in den spectate modus setzen und wenn er sich eingloggt hat spawnen mit SetSpawnInfo
    grund dafür ist das du so das login umgehen kannst ohne probleme mit sobeit. Bei meiner variante crasht der spieler wenn er das versucht


    also TogglePlayerSpectating(playerid,1); unter public OnPlayerRequestClass(playerid, classid) falls du noch die camera position ändern willst musst du das leider per timer aufrufen.


    und nicht vergessen den spieler bevor er spawnt die spawninfo zu setzen

    Mit welchen Programm wurde das gemacht?


    Ich habs auf WBB 3.1.6 gecodet du kannst jedes design per wbb coden jedoch unterscheiden sich die Designs dann demnach auch ein wenig zum beispiel wenn du ein
    wbb 3 design rein haust in ein wbb2 lite forum so kann es kommen das manche sachen verschoben sind.


    Also im großen und ganzen kannst du jedes Design für WBB auf der installieren WBB Software coden wenn du im acp auf neues style hinzufügen gehst
    ein typ dann zum coden hol dir firebug und geh bei firefox in den privaten modus erpart viele nerven.


    Ich gebe auch offen und ehrlich zu das ich zum coden mir eine die Software für Wbb 3.1.7 jetzt und WBB 3.1.6 runter geladen habe.
    solang wie es nur dafür genutzt wird ist es in meinen augen nicht strafbar.

    Das mit dem Userpanel oben sieht mal richtig geil aus finde ich! Ansonsten trifft es genau meinen Geschmack. Die Buttons vielleicht nicht, da sie nur aus einem Text bestehen aber ansonsten, dunkel, schlicht, perfekt.. Volle Punktzahl. :)


    Auf GTA Werk kann man das design auch downloaden ich hatte es releast naja ist mir persönlich in einigen dingen zu statisch :D (container)
    kann man ja ändern.


    http://gtawerk.de/Datenbank/index.php?page=Entry&entryID=2


    So würde ich es auch machen. Ist eine einfache Lösung, alles in ein Filterscript.


    ich finde sowas unnötige verschwendung von Ram und du kannst mit der include je nach dem verschieben um so mit den variabeln oder arrays
    einfach zu arbeiten die du im gamemode deklarierst oder in der include. Zu dem ist diese Hook methode wo ich gepostet habe schneller als
    das aufrufen von CallLocalFunction oder CallRemoteFunction

    wenn du deine Objecte wie bei OnGameModeInit erstellen lassen willst musst du das callback hooken
    in der include musst auch nicht mal #include<streamer> stehen haben solang du diesen in deinem gamemode stehen hast und er
    überhalb von dir erstellten include lieget.


    #if !defined _ALS_
    forward public _ALS_();
    _ALS_()<_ALS_:unhooked>{}
    _ALS_()<_ALS_:hooked>{}
    _ALS_()<>{}
    #endif
    public OnGameModeInit()
    {
    state _ALS_:hooked;
    //------------------------------------

    printf("Map loaded");
    //------------------------------------
    return LoadMap_OnGameModeInit();
    }
    forward LoadMap_OnGameModeInit();
    #if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
    #else
    #define _ALS_OnGameModeInit
    #endif


    public LoadMap_OnGameModeInit() <_ALS_:unhooked> return 1;
    public LoadMap_OnGameModeInit() <> return 1;


    #define OnGameModeInit(%0) LoadMap_OnGameModeInit(%0)<_ALS_:hooked>


    zwischen den zwei strichen kannst du deine Objecte einfügen


    und dann auch demenstsprechend eintragen als beispiel wenn deine include map heißten würde ganz unten bei den includes eintragen


    #include <a_samp>
    #include <YSI\y_timers>
    #include <YSI\y_iterate>
    #include <streamer>
    #include <map>

    der bot ist doch keine Playerid :D ? oder !


    doch was soll er sonst sein er blockiert auch ein slot , jedoch wird dies dank samp nicht zu den spielern die bei Players in samp angezeigt werden
    dazu gezählt als User und auch nicht in der Scoreliste.

    Einfach erklärt:
    Ein bool verbraucht weniger RAM, und kann nur true(1) oder false(0) sein.
    Bei integer(was du als variable bezeichnest) kann viel mehr verschiedene und größere Zahlen aufnehmen.


    ja das stimmt jedoch sollte man sich auch darüber im klaren sein was man für ein integer man deklariert es gibt verschiedene
    Datentypen das gilt auch in Pawn jedoch verbraucht dieses auch 8 bits wie char auch .
    Jedoch würde ich y_bit benutzen da dabei bits verwendet werden um true /false zu speichern

    das geht nicht so wie du willst
    new bes[50] , besr[MAX_PLAYER_NAME] ;
    bes = mysql_GetString("bankkonten", "Besitzer", "ID", i);
    besr = SpielerName(playerid);


    so hier bitte das sollte gehen


    //edit


    wenn du direkt beim definieren dem string Zeichen zuordnen willst dann machst du dies mit


    new bes[50] ="Hallo wie gehts";


    jedoch geht dies nicht bei funktionen oder beim zuordnen von werten
    daher musst du erst den string definieren und danach den wert übergeben es ist eigentlich auch nur eine übergabe an werten.

    hm schonmal den string ausgegeben dies ist sehr komisch
    du kannst ja das auch anderes machen mit einem query
    dennoch sind 80 zeichen zu viel kannst ruhig damit runter gehen


    format(SpielerInfo[playerid][pRegisterDatum],80,"%02d.%02d.%d", Day, Month, Year);


    new query[128];
    format(query,128,"UPDATE `Spieler` SET `Registrierungsdatum` = '%s' WHERE `Name` = '%s' ",SpielerInfo[playerid][pRegisterDatum],GetName(playerid));
    mysql_query(query);

    Jeder der meint, der Header ist von creative-styles hat überhaupt keine Ahnung. Der Header ist von Patrick Brown und ich weiss von nichts, dass nur Nate die Bilder benutzen darf. Solange aber zu erkennen ist, dass der jeweilige Wallpaper von Patrick Brown ist. Weiss nicht, ob dieses Bild auch von Ihm stammt. Aber ich bitte euch, nur eine schlechte Bewertung abzugeben, nur weil Creative-Styles den selben Header/Wallpaper benutzt hat ?


    Von mir bekommste ne 6/10. Ist noch ziemlich ausbaufähig. Mich würde mal interessieren, wie es gecodet aussieht. :D


    Nein mein lieber der Header ist leider nicht von Patrick Brown


    sonder von diesem Grafiker
    ~M0M00
    http://m0m00.deviantart.com/art/Bikers-158297959


    das bild wurte natürlich bearbeitet siehe das orginal


    http://i43.tinypic.com/243rhwl.png

    Dann liegt das klar auf der hand du benutzt das von BlueG


    daher ist dein Syntax falsch jedoch gibts dazu eine alternative zur verwendung so wie du es gern hättest
    mysql_fetch_field (number, dest[], connectionHandle)


    mysql_fetch_field_row(result,"username");


    kann natürlich auch per makro verändern

    schau dir doch mal den Syntax an


    mysql_fetch_field (number, dest[], connectionHandle)


    mit number ist der index des feldes gemeint je nach dem was du verwendest ist jedoch so bei dem plugin von BlueG


    bei dem von Strickenkid ist der Syntax anders


    mysql_fetch_field (const fieldname[], dest[], MySQL:handle)


    daher frage doch nochmal welches plugin du benutzt :D

    ini_GetValue ist mir persönlich unbekannt kannst du mal den stock davon posten
    zu dem würde ich das ganze mit sscanf machen
    und eine while schleife benutzen



    new string[64],integer,floats;
    while(fread(example, string))
    {
    if(!sscanf(string, "veh_model='d'",integer))FraktionCarSystem[i][fmodel] = integer;
    else if(!sscanf(string, "veh_x='f'",floats))FraktionCarSystem[i][fx] = floats;
    ....


    Stimmt nicht, ist doch oben aufgeführt schau mal genauer ;)



    Das hat mit state doch gar nichts zu tun, das sind doch nur Operatoren, alias if-Abfragen :D


    mfg. :thumbup:


    == ist ein Operator
    dennoch ist (c == 1) eine Bedingung welche den automata auf den neuen state setzt


    state call:test1;
    state (c == 1) call:test;



    forward Test();
    public Test() <call:test1>
    {
    print("Falsch !");
    }
    public Test() <call:test>
    {
    print("Richtig !");
    }


    also was wird aufgerufen wenn du eine die variabel c deklarierst mit dem wert 1

    erstens heißt es SetTimerEx und du kannst Timer mit KillTimer(id); abbrechen lassen.


    dazu musst du jedoch erst die id des timers speichern in einer variabel.


    oben im skript
    new DeathTimer[MAX_PLAYERS char],
    bool:player_is_death[MAX_PLAYERS char];
    forward lichtlaufen(playerid);


    Nach dem setzen der position nach dem er gestorben ist
    DeathTimer{playerid} = SetTimerEx("lichtlaufen",15*60*1000,false,"i",playerid);
    player_is_death{playerid} = true;



    public lichtlaufen(playerid)
    {
    ....


    }


    beim Befehl
    new i, Pos[3];
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    for(; i < MAX_PLAYERS; ++i){
    if(IsPlayerInRangeOfPoint(i,5.0,Pos[0],Pos[1],Pos[2]) && player_is_death(i)){
    ...
    KillTimer(DeathTimer{i});
    break;
    }
    }