Beiträge von IPrototypeI

    Eigentlich wollte ich mein beitrag editieren nochmal und schreiben doerfler hat ja schon vor mir gepostet.
    Aber warum ich das gepostet habe den code war der grund das er sieht das die string größe für seinen string niemals die größe
    haben kann von 128 Zeichen. Es sollte ja klar sein das %f , %d , %s etc .. nur platzhalter sind es war ja auch nur zur veranschaulichung gedacht mein lieber.


    Ich habe aber diese ' ' gemacht überall


    new PQuery[]="INSERT INTO blitzer (`Blitzerid`,`Blitzerx`,`Blitzery`,`Blitzerz`,`BlitzerRotz`,`Geschwindigkeit`,`Strafe`,`Punkte`,`LastBlitz`,`Filmabschnitte`, `Toleranz`,`Inuse`) VALUES ('%d','%f','%f','%f','%f','%d','%d','%d','%s','%d','%d','%d')";


    printf("%d",strlen(PQuery));


    was strlen ausgibt wirst du wohl wissen vergleich mal die größe mit der deines strings den du deklariert hast
    new query[128];

    (Error ID: 1064, You have an error in your SQL syntax; check the manual
    that corresponds to your MySQL server version for the right syntax to
    use near '' at line 1)


    Bist du eigentlich Blind oder so die MySQL log ist nicht zu dekoration da sie soll Fehler ausgeben und den verlauf der funktion des mysqlsplugins ausgeben


    zu dem ist dein string zu klein um ein großes der string hat ohne werte 234 Zeichen


    sscanf(str,"p<|>e<{i}s[24]dddddddddfffd>",PlayerInfo[id]);


    Also ich weiß auch nicht was du bei dir auslädst


    Der String wird bei dir ausgeladen und gesplittet
    "230|Nightstr3am|superkleber|1|1|0|0|0|1|0|0|370.9|-2180.3|854.9|0"


    sscanf(str,"p<|>{i}s[24]s[130]{i}dddddddddfffd",PlayerInfo[playerid][pName],PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pGeld],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pTode],
    PlayerInfo[playerid][pFM],PlayerInfo[playerid][pSkin],PlayerInfo[playerid][pFrak],PlayerInfo[playerid][pRang],PlayerInfo[playerid][pPx],PlayerInfo[playerid][pPy],PlayerInfo[playerid][pPz],PlayerInfo[playerid][pAge]);


    wie willst du ein string mit 130 Zeichen un ein integer rein hauen ich sags dir garnicht weil dies nicht geht.

    Du benutzt schon TogglePlayerSpectate da sollte es eigentlich keine Probleme geben es kann jedoch gut sein das gebäude die weiter entfernt sind etwas unscharf wirken.
    Die unschärfe kommt davon das die umgebung erst richtig eingestreamt wird wenn der spieler in der nähe ist. Das hat nix mit der Kamera position zu tun.
    Bei TogglePlayerSpectate wird der spieler so gesehen hinterher geportet und befindet sich über der kamera position. Ist jedoch nicht sichtbar für einen oder andere spieler.

    Ich bitte dich mal ein Ausschnitt aus der serverlog zu posten wo du die ganzen Daten laden lässt also du kannst auch den string welchen du splittest posten lass dir diesen am besten ausgeben und dazu hin noch poste bitte dein enum.
    Beim laden kann es auch ein problem mit der abfolge der parameter geben. Dann wird nix ausgeladen.

    Das wichtigste hat NicoAiko vergessen zu erwähnen das dieser Textdraweditor nur auf deinem homeserver funktioniert aufgrund der positionen deiner
    Maus. Also kannst du dies nicht auf einem gehosteten Server verwenden.

    Wenn du dir in Firebug z.b. mal den Code dort anguckst findest du folgendes vor:

    Code
    id="searchSubmit" class="searchSubmit inputImage"


    denke das sollte dir helfen, ich will dir jetzt keinen fertigen code geben, damit zu bisschen selber rumprobieren kannst



    Er kann auch bei den einstellungen vom Style eigene icons verwenden dazu sollte er einen ordner dazu anlegen in dem icons ordner von wbb
    und dort die grafik mit dem jeweiligen namen rein setzen.

    Sieht wirklich gut aus sogar besser als deine alte Map ,welcher dir ja dank dem samp mapeditor an handen gekommen ist.
    Nur ein Punkt gibt es zu bemängeln und zwar bei den Flaggen draußen die Deutschlandflagge hat den grauen rand um sich das sieht nicht so wirklich passend zu einer Flagge aus.


    Dort wo man hinschaut mit der Kamera von dort wird die jeweilige rotation genommen


    Nicht ganz es ging um die rotation im auto wo der spieler hinschaut also ganz genau geht das leider nicht was du damit geplant hast ich hab dazu jedoch auch auf den vorherigen Seiten mal eine berechnung gemacht um den jeweiligen punkt zu ermitteln.


    stock IsViewInRangeOfPointa(playerid, Float: r, Float: x, Float: y, Float: z){
    new Float:GP[3], Float:GPCFV[3], Float: Output[3], Float: fcarpos[3], fcar;
    fcar = GetPlayerVehicleID(playerid);
    const Float: weite = 30.0; //4.0, 5.0
    GetVehiclePos(fcar,fcarpos[0],fcarpos[1],fcarpos[2]);
    GetPlayerCameraPos(playerid, GP[0], GP[1], GP[2]);
    GetPlayerCameraFrontVector(playerid, GPCFV[0], GPCFV[1], GPCFV[2]);
    Output[0] = GP[0] + floatmul(GPCFV[0], weite);
    Output[1] = GP[1] + floatmul(GPCFV[1], weite);
    Output[2] = fcarpos[2];
    if(FKInfo[Aim_Feuerwehrauto] == 1){ SetPlayerCheckpoint(playerid, Output[0], Output[1], Output[2], r);}
    if((Output[0] - x)*(Output[0] - x) + (Output[1] - y)*(Output[1] - y) <= r*r && Output[2] <= z) return 1;
    else return 0;
    }


    musst den konstanten wert anpassen und das untere :D

    stock GetClosestVehicle(playerid,&Float:distance=0.0){
    new p,v,Float:Pos[5]={10000.0,...},cveh=-1,bool:no;
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    for(; v < MAX_VEHICLES; ++v){
    if(!IsValidVehicle(v))continue;
    for(p=0; p < MAX_PLAYERS; ++p){
    if(!IsPlayerInVehicle(p, v))continue;
    no=true;
    break;
    }
    if(!no){
    Pos[3] = GetVehicleDistanceFromPoint(v, Pos[0],Pos[1],Pos[2]);
    if(Pos[4] > Pos[3]){
    Pos[4] = Pos[3];
    cveh = v;
    no=false;
    }
    }
    }
    distance = Pos[4];
    return cveh;
    }



    stock GetClosestVehicle(playerid,&Float:distance=0.0){
    new v,Float:Pos[5]={10000.0,...},cveh=-1;
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    for(; v < MAX_VEHICLES; ++v){
    if(!IsValidVehicle(v))continue;
    Pos[3] = GetVehicleDistanceFromPoint(v, Pos[0],Pos[1],Pos[2]);
    if(Pos[4] > Pos[3]){
    Pos[4] = Pos[3];
    cveh = v;
    no=false;
    }
    }
    distance = Pos[4];
    return cveh;
    }


    Da jemand solch eine funktion gepostet hatte habe ich diese mal neu geschrieben und erweitert
    damit ist es möglich die id des nächsten zu einem spieler sich befindeten autos zu bekommen als auch die distance in zwei versionen einmal jedes auto und einmal nur leere
    Autos.


    Was wichtig ist das ihr dies oben benutzt
    native IsValidVehicle(vehicleid);


    da sich dieses native sich nicht in der a_samp include befindet aus einem mir nicht ersichtlichen grund warum überhaupt.

    Ja sollte gehen es wäre auch noch einfacher möglich mit
    GetVehicleDistanceFromPoint zu arbeiten
    hab kurz eine fünktion dazu geschrieben hier wird dir die distanz noch zurück gegeben




    native IsValidVehicle(vehicleid);
    oben im skript
    stock GetClosestVehicle2(playerid){
    new i,Float:Pos[5],cveh;
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    for(; i < MAX_VEHICLES; ++i){
    if(!IsValidVehicle(i))continue;
    Pos[3] = GetVehicleDistanceFromPoint(i, Pos[0],Pos[1],Pos[2]);
    if(Pos[4] > Pos[3] || Pos[4] == 0){
    Pos[4] = Pos[3];
    cveh = i;
    }
    }
    return cveh;
    }


    Hab mich gestern ihrgend wie verlesen du bekommst nur raus welches auto am nächsten zu einem spieler ist nicht ob es leer ist
    dazu müsste man noch eine schleife machen sollte so perfekt gehen

    stock GetClosestVehicle(playerid){
    new p,v,Float:Pos[5],cveh=-1,bool:no;
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    for(; v < MAX_VEHICLES; ++v){
    if(!IsValidVehicle(v))continue;
    for(p=0; p < MAX_PLAYERS; ++p){
    if(!IsPlayerInVehicle(p, v))continue;
    no=true;
    break;
    }
    if(!no){
    Pos[3] = GetVehicleDistanceFromPoint(v, Pos[0],Pos[1],Pos[2]);
    if(Pos[4] > Pos[3] || Pos[4] == 0){
    Pos[4] = Pos[3];
    cveh = v;
    no=false;
    }
    }
    }
    return cveh;
    }

    Hallo :),
    ich habe nun schon ein paar mal gesehen dass Leute bei SetObjectMAterialText 2 Schriftfarben genommen haben, manchmal auch verschiedene Schriftarten.
    Wie ist sowas möglich?


    Also Schriftfarben einzubinden kannst entweder per define jedoch müssen diese im RGB format sein


    beispiel:
    #define WHITE FFFFFF
    #define RED FF8200


    SetObjectMaterialText(myobject, "SA-MP {"#WHITE"}0.3{008500}e {"#RED"}RC7", 0, OBJECT_MATERIAL_SIZE_256x128,\
    "Arial", 28, 0, 0xFFFF8200, 0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);


    ohne define auch möglich
    SetObjectMaterialText(myobject, "SA-MP {FFFFFF}0.3{008500}e {FF8200}RC7", 0, OBJECT_MATERIAL_SIZE_256x128,\
    "Arial", 28, 0, 0xFFFF8200, 0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);


    Bei Fonts oben zu sehen Arial du kannst jede font benutzen es ist jedoch empfehlenswert nur WIndowsfonts zu benutzen da nicht jeder zum beispieldie Font Bebas hat.


    Also in wie fern anklickbar willst eine neue seite aufrufen oder die verlinkung zu der Firma oder wie.


    Eine normale verlinkung via html ist über

    Code
    <a href= "Hier die Verlinkung zu einer Seite oder die jeweilige datei" target="_blank">Hier der jeweilige Text oder Bild</a>


    mit target="_blank" kannst du ein neuen Tab aufrufen.

    Wie ich es schon geschrieben habe muss das bei OnPlayerGiveDamage rein...


    Es ist sinnvoller OnPlayerTakeDamage zu benutzen als OnPlayerGiveDamage da gibt es in der synchronisation immer noch unterschiede.


    Zu dem ist das was hier schon gepostet wurde richtig


    public OnPlayerTakeDamage(playerid,issuerid,Float: amount, weaponid) // DMG Machen oO
    {
    PlayerPlaySound(issuerid,17802,0.0,0.0,0.0);
    return 1;
    }


    mann sollte nur noch schauen wegen dem zufügen der eigenen damage

    Du veränderst hier autozahl nicht oder auch anders ausgedrückt setzt es vllt auch wieder auf 0.


    Da ist es kein wunder das du immer in LV raus kommst


    if(psautohaus[autozahl] <= psautohaus[35])


    entspricht der wert hinter psautohaus[0] psautohaus[35] oder ist kleiner als psautohaus[35]

    Textdraw4


    Großartige Fehler finde ich hier nicht wirklich du kannst falls die Kills , FPS etc unteinander sind diese auch in ein PlayerTextdraw packen da du mit
    ~n~ einen zeilenbruch machen kannst.
    Zu dem benutz eine Array aufgrund dessen das es verschiebungen geben kann von den Textdraws in der id.
    daher
    PlayerText:Textdraw4[MAX_PLAYERS];


    Beim formatieren reicht 1 string ^^ der wird so gesehen zuletzt überschrieben.


    Bei dem Timer benutzt SetTimer anstatt SetTimerEx für jeden spieler falls du dies so hast oder benutzt du y_timers.


    Ich kann mir nur vorstellen das die FPS nicht angezeigt wird also der Wert das Textdraw jedoch schon.


    Falls es mit dem updaten probleme gibt kann man das textdraw erst ausblenden per PlayerTextdrawHide und danach den string ändern und wieder anzeigen lassen.

    Mal so eine generelle Frage existieren bei dir auf deinem server keine anderen Pickups
    sonst würde ich zu sowas greifen und den inhalt des arrays auf eine Zahl setzen -1 aufgrund das alle ids der Pickups wie bei den Objecten auch von 0 an beginnen.



    new TotenKopf[MAX_PLAYERS]={-1,...};