Beiträge von Oskaar1994

    Habe mir für die Ban Liste meines Servers ein kleines Java Script zum durchsuchen der Liste bzw. des Tables geholt, aber sie durchsucht den ganzen Table. Ich hätte es gerne, dass nur die zweite Spalte des Tables durchsucht wird. Aber da ich mich garnicht mit Java auskenne bin ich gescheitert das Script abzuändern. Könnte mir jemand helfen ?


    Wie gesagt es soll halt nur die 2te Spalte durchsucht werden. Wäre nett wenn mir jemand helfen könnte :)

    Also es erscheint weder das Preview was in meinem Fall eine Skin ist noch das eigentliche Textdraw. Es öffnet sich nur ca. für eine halbe Sekunde (ohne Preview drauf) und verschwindet dann sofort wieder.
    Hat den niemand eine Idee ?

    Habe leider gerade das Problem wenn ich ein Textdraw mit einem Previewmodel erstelle, öffnet es sich nur für ca. eine halbe Sekunde und schließt sich gleich wieder. Habe heraus gefunden es liegt an :
    TEXT_DRAW_FONT_MODEL_PREVIEW
    Wenn ich das z.B durch 0 ersetze, wird das Textdraw ganz normal angezeigt, nur halt ohne Preview Model(was auch logisch ist weil man diese Font braucht).
    Hier ein Beispiel eines meiner Textdraws:
    ShuttleJob[playerid] = CreatePlayerTextDraw(playerid, 557.808776, 134.193328, "usebox");
    PlayerTextDrawFont(playerid, ShuttleJob[playerid], TEXT_DRAW_FONT_MODEL_PREVIEW);
    PlayerTextDrawLetterSize(playerid, ShuttleJob[playerid], 0.000000, 14.901111);
    PlayerTextDrawTextSize(playerid, ShuttleJob[playerid], 480.285736, 0.000000);
    PlayerTextDrawAlignment(playerid, ShuttleJob[playerid], 1);
    PlayerTextDrawColor(playerid, ShuttleJob[playerid], 0);
    PlayerTextDrawUseBox(playerid, ShuttleJob[playerid], true);
    PlayerTextDrawBoxColor(playerid, ShuttleJob[playerid], 102);
    PlayerTextDrawSetShadow(playerid, ShuttleJob[playerid], 0);
    PlayerTextDrawSetOutline(playerid, ShuttleJob[playerid], 0);
    PlayerTextDrawSetSelectable(playerid, ShuttleJob[playerid], true);
    PlayerTextDrawSetPreviewModel(playerid, ShuttleJob[playerid], 16);
    Was mache ich falsch ?


    Die Autos werden leider immer noch alle an der gleichen Stelle geparkt. Und zum GoldKiller's Frage. Das Laden der Autos habe ich mit Hilfe von MrMonats Tutorial gemacht, weil ich damals als ich das erstellt habe noch nicht so recht mit MySql zu Recht kam. Den Rest habe ich selber gemacht. Und ich weiß halt nicht welche Informationen du brauchst um mir helfen zu können. Aber wie gesagt ich denke nach wie vor es liegt an der ParkID. Habe jezt lange daran gegrübelt, aber ich komme leider einfach nicht weiter.

    Du kannst es probieren und es könnte funktionieren.
    Ich sehe aber nirgendwo wie du den Index beim Erstellen festlegst, daher kann ich das nicht beurteilen. Der Wert von CreateVehicle() müsste dann immer als Index gewählt werden, für die Daten des Fahrzeuges.
    Nur am Rande: Es mit MAX_VEHICLES zu machen wäre aber Speicherverschwendung.


    Hier ein kleiner Ausschnitt wie ich die Fahrzeuge lade:new id=getFreeCarID();
    cInfo[id][id_x]=CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],cInfo[id][vcolor1],cInfo[id][vcolor2],500);
    Ich kann mir leider immer noch nicht vorstellen wie ich dieses Problem lösen kann.

    Habe jetzt das mit dem Unkown Command gelöst indem ich das Array cInfo erhöht habe, aber leider speichern jetzt alle Fahrzeuge auf einer Position.
    enum carEnum{
    id_x,
    model,
    besitzer,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    vcolor1,
    vcolor2,
    tuning0,
    tuning1,
    tuning2,
    tuning3,
    tuning4,
    tuning5,
    tuning6,
    tuning7,
    tuning8,
    tuning9,
    tuning10,
    tuning11,
    tuning12,
    tuning13,
    db_id
    }
    new cInfo[250][carEnum];
    Hier noch zur Demonstration wenn ich das mache speichern zwar alle meiner Privaten Fahrzeuge, aber richtig auf deren Position und nicht alle auf einer :
    CMD:park1(playerid, params[])
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]==0)continue;
    if(cInfo[i][besitzer]!=sInfo[playerid][id0])continue;
    GetVehiclePos(cInfo[i][id_x],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z]);
    GetVehicleZAngle(cInfo[i][id_x],cInfo[i][c_r]);
    new query[256];
    format(query,sizeof(query),"UPDATE vehicles SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i'",cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][db_id]);
    mysql_function_query(dbhandle,query,false,"","");


    }
    return 1;
    }

    Ich habe mich entschieden ein kleines Tutorial bezüglich der Streamdistance zu schreiben. Ich hatte vor ca. 2 Monaten auch mal das Problem, dass Objekte nur laden wenn ich genau davor stehen. Ich bin nachdem ich mir ein paar Threads durchgelesen habe, auf eine Lösung gestoßen. Vorraussetzung ist der Objektstreamer von Incognito ( http://forum.sa-mp.com/showthread.php?t=102865 ). Achtet darauf, dass ihr die neuste Version des Streamers habt, sonst wird es nicht funktionieren. So aber jetzt zum eigentlichen Tutorial :

    • Schritt 1: Geht in das Hauptverzeichniss eures Servers und öffnet die server.cfg
    • Schritt 2: Ändert die Zeile stream_distance zu stream_distance 800 ( Ihr könnt sie auch noch höher stellen, ist ziemlich egal, denn soweit ich weiß liegt das Limit sowieso bei 500)
    • Schritt 3: Wenn ihr es nicht schon erledigt habt, schreibt in eurem Script unter #include <a_samp> #include <streamer>
    • Schritt 4: Geht zu der Stelle an der ihr eure Objekte erstellt (bei den meistens wird es unter OnGameModeInit() oder OnFilterScriptInit() sein ) und geht in die Zeile nach dem letzten Objekt und fügt folgenden Code ein:
    • new objects; //erstellt einen neuen String
      objects = Streamer_CountItems(STREAMER_TYPE_OBJECT,1); //zählt mit Hilfe von Streamer_CountItems wie viel gemappte Objekte geladen wurden und speichert sie im String objects
      for(new i; i<objects; i++) Streamer_SetFloatData(STREAMER_TYPE_OBJECT, i,E_STREAMER_DRAW_DISTANCE, 800.0);//erstellt eine Schleife und setzt die Drawdistance jedes gemappten Objekts auf 800 ( Diesen Wert könnt ihr natürlich so anpassen wie ihr es haben wollt)
      Streamer_VisibleItems(STREAMER_TYPE_OBJECT,1000);//Streamer_VisibleItems = Wie viele gestreamten Objekte auf ein mal angezeigt werden können (Diesen Wert könnt ihr auch anpassen)
      printf("%i mapped objects loaded",objects);//OPTIONAL: Gibt in der Konsole aus wie viele gemappten Objekte erstellt wurden

    Ich habe schon seit langem das Problem, dass das Speichern von privaten Autos einfach nicht klappen will. Immer wenn ich mein Command ausführe bekomme ich nur ERROR: Unkown command zurück. Ich habe alles immer direkt in dem Befehl gehabt, aber jetzt habe ich eine Stock daraus gemacht, immer noch der selbe Fehler: (Ich habe zwei Abfragen bezüglich des Besitzers mal ausgeklammert um Fehler zu vermeiden)
    stock SavePlayerVehicle(playerid)
    {
    new parkID;
    parkID = GetPlayerVehicleID(playerid);
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_RED,"You have to be in a vehicle to use this command.");
    //if(!IsPrivateCar(parkID))return SendClientMessage(playerid,COLOR_RED,"You can only use this command in your own vehicle.");
    //if(!IsPlayerVehicleOwner(playerid, parkID))return SendClientMessage(playerid,COLOR_RED,"You can only use this command in your own vehicle.");
    GetVehiclePos(parkID,cInfo[parkID][c_x],cInfo[parkID][c_y],cInfo[parkID][c_z]);
    GetVehicleZAngle(parkID,cInfo[parkID][c_r]);
    GetVehicleColor(parkID,cInfo[parkID][vcolor1],cInfo[parkID][vcolor2]);
    cInfo[parkID][tuning0] = GetVehicleComponentInSlot(parkID,0);
    cInfo[parkID][tuning1] = GetVehicleComponentInSlot(parkID,1);
    cInfo[parkID][tuning2] = GetVehicleComponentInSlot(parkID,2);
    cInfo[parkID][tuning3] = GetVehicleComponentInSlot(parkID,3);
    cInfo[parkID][tuning4] = GetVehicleComponentInSlot(parkID,4);
    cInfo[parkID][tuning5] = GetVehicleComponentInSlot(parkID,5);
    cInfo[parkID][tuning6] = GetVehicleComponentInSlot(parkID,6);
    cInfo[parkID][tuning7] = GetVehicleComponentInSlot(parkID,7);
    cInfo[parkID][tuning8] = GetVehicleComponentInSlot(parkID,8);
    cInfo[parkID][tuning9] = GetVehicleComponentInSlot(parkID,9);
    cInfo[parkID][tuning10] = GetVehicleComponentInSlot(parkID,10);
    cInfo[parkID][tuning11] = GetVehicleComponentInSlot(parkID,11);
    cInfo[parkID][tuning12] = GetVehicleComponentInSlot(parkID,12);
    cInfo[parkID][tuning13] = GetVehicleComponentInSlot(parkID,13);
    new query[256];
    format(query,sizeof(query),"UPDATE vehicles SET x='%f',y='%f',z='%f',r='%f',color1='%i',color2='%i',tune0='%i',tune1='%i',tune2='%i',tune3='%i',tune4='%i',tune5='%i',tune6='%i',tune7='%i',tune8='%i',tune9='%i',tune10='%i',tune11='%i',tune12='%i',tune13='%i' WHERE id='%i'",cInfo[parkID][c_x],cInfo[parkID][c_y],
    cInfo[parkID][c_z],
    cInfo[parkID][c_r],
    cInfo[parkID][vcolor1],
    cInfo[parkID][vcolor2],
    cInfo[parkID][tuning0],
    cInfo[parkID][tuning1],
    cInfo[parkID][tuning2],
    cInfo[parkID][tuning3],
    cInfo[parkID][tuning4],
    cInfo[parkID][tuning5],
    cInfo[parkID][tuning6],
    cInfo[parkID][tuning7],
    cInfo[parkID][tuning8],
    cInfo[parkID][tuning9],
    cInfo[parkID][tuning10],
    cInfo[parkID][tuning11],
    cInfo[parkID][tuning12],
    cInfo[parkID][tuning13],
    cInfo[parkID][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    SendClientMessage(playerid,COLOR_RED,"Vehicle parked!");


    return 1;
    }
    Ich bin mir zu 99% sicher es liegt an der parkID in mein Array cInfo.
    cInfo[parkID].
    Wieso bin ich mir so sicher ? Wenn ich alles in eine Schleife packe und das parkID dann durch ggf. "i" ersetze parken zwar alle Fahrzeuge an der selben Position, aber es funktioniert.

    Danke hat

    Versuch es mal so:


    if(IsPlayerInCheckpoint(playerid) && IsPlayerInDynamicCP(playerid, hausInfo[i][hCpID])){


    Ich nehme mal an die DynamicCPs sind normale CPs vom Streamer.

    Danke, hat funktioniert :)

    Habe schon seit längerer Zeit ein Probelm mit meinem Befehl mit dem ich Häuser betreten kann. Der Befehl soll nur innerhalb eines Haus Checkpoints funktionieren. Eigentlich klappt alles ganz gut, wenn ich in einem HausCheckpoint stehe packt es mich in das jeweilige Haus. Nur wenn ich außerhalb eines Hauscheckpoints bin, funktioniert der Befehl leider auch und ich werde in irgendein Interior/Virtual World gepackt.
    Normal sollte dann eigentlich nichts passieren. Habe schon auf verschiedensten Wegen probiert dieses Problem zu fixxen, aber habe es leider nicht geschafft.
    COMMAND:enter(playerid, params[]) {
    for(new i = 0; i != MAX_HOUSES; i++) {
    if(IsPlayerInDynamicCP(playerid, hausInfo[i][hCpID])){
    SetPlayerPos(playerid, hausInteriorData[hausInfo[i][hInterior]][iX], hausInteriorData[hausInfo[i][hInterior]][iY], hausInteriorData[hausInfo[i][hInterior]][iZ]);
    SetPlayerVirtualWorld(playerid, hausInfo[i][hID]);
    SetPlayerInterior(playerid, hausInteriorData[hausInfo[i][hInterior]][iInterior]);
    break;
    }
    }
    return 1;
    }

    Hey,
    ich weiß wirklich langsam nicht mehr was ich falsch mache. Die Streamdistance auf meinem Server ist so miserabel. Während man auf anderen Servern ganze Inseln sehen kann, kann ich bei mir oft fast garnichts sehen also an gemappten Objekten. Ich benutze Incognitos Streamer. Hier mal einige Beispiele :
    Eine Insel auf Nemesus Roleplay:

    http://imgur.com/zBdukd8
    Hier eine Landebahn bei mir:
    http://imgur.com/i5TaQ5t
    Könnte ich etwas mit : Streamer_CellDistance(hierhaltdiedistanz); ändern ?
    Habe auch schon bei CreateDynamicObject auch schon die Stream Distance geändert. In der server.cfg auch.

    Es ist jetzt leider schon zwei mal vor gekommen, dass meine User wegen Moneyhack gebannt wurden als sie /repair verwendet haben. Die Berechnung wie viel er zahlt ist fehlerhaft, ich habe irgendetwas falsch gemacht. Könnte mir jemand bei der richtigen Berechnung helfen ? Ich weiß es ist einfach aber ich bin gerade etwas verwirrt. Wenn z.B das Fahrzeug 800 Health hat soll der User 200 Dollar zahlen, bei 700 300 Dollar usw. Hilfe wäre nett :)
    CMD:repair(playerid, params[])
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(IsPlayerAtGasStation(playerid))
    {
    new repairVeh = GetPlayerVehicleID(playerid);
    new Float: oldHealth;
    GetVehicleHealth(repairVeh,oldHealth);
    if(oldHealth < 1000)
    {
    RepairVehicle(repairVeh);
    new repairFormat[128];
    format(repairFormat,sizeof(repairFormat),"You paid %i$ for repairing your vehicle.",(1000-(floatround(oldHealth)*10))/10);
    SendClientMessage(playerid,COLOR_ORANGE,repairFormat);
    GivePlayerMoneyEx(playerid,(1000-(floatround(oldHealth)*10))/10);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Your vehicle has already full health");
    }

    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"You have to be at a refuel stations to repair your vehicle.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"You have to be in a vehicle to use this command");
    }
    return 1;
    }

    Sry für das Offtopic. Ich habe mal eine kleine Frage vlt. hast du da schon Erfahrung. Wie kann ich im Editor Objekte in die Luft also schwebend platzieren ? Habe nähmlich schon Deathmatches in der Luft und Schannzen die ganz hoch in den Himmel gehen gesehen. Ich schaffe es leider immer nur Objekte auf soliden Grund zu setzen.