Beiträge von IPrototypeI

    Vielen danke BlackAce klappt alles hervorragendwas hätte ich nur ohne dich gemacht :D
    wahrscheinlich bis in die Morgenstund weiter rum experimentiert.


    und wieder was neues dazu gelernt.

    Guten Tag Breadfishler,
    Ich hab ein kleines Problem bei meinem Zollsystem und zwar übernimmt er nicht die weiteren tore, was ich damit genau meine ist
    mein erstes definiertes Tor in meinem enum funktioniert ohne Probleme es schließt auch ohne Probleme nun kommt er fehler er springt nicht weiter bei den anderen toren. Was ich vllt vermute ist das er nicht bei der For schleife alle definierten tore durch geht.
    Wäre sehr nett wenn eine mir helfen könnte , da ich nun mit meinem Alphabet zu ende bin.


    enum :


    enum zollsystem{
    z_id, z_torid, Float: zollx, Float: zolly, Float: zollz, Float: zollax, Float: zollay, Float: zollaz,
    Float: azollx, Float: azolly, Float: azollz, Float: azollax, Float: azollay, Float: azollaz, bool: zollvar, bool: zolllock
    };
    #define MAX_ZOLLE 20
    new ZollInfo[MAX_ZOLLE][zollsystem] = {
    {0,978,53.61148071,-1525.98864746,4.87745094,0.00000000,0.00000000,83.37002563,53.61148071,-1525.98864746,-6.87745094,0.00000000,0.00000000,83.37002563,false,false},
    {1,978,55.77261353,-1539.03112793,4.95321989,0.00000000,0.50000000,79.91503906,55.77261353,-1539.03112793,-6.95321989,0.00000000,0.50000000,79.91503906,false,false},
    {2,978,-981.43225098,-381.12454224,36.21669388,0.00000000,0.00000000,350.00000000,-981.43225098,-381.12454224,26.21669388,0.00000000,0.00000000,350.00000000,false,false}


    nur eine Auschnitt


    der command:



    ocmd:zoll(playerid,params[])
    {
    #pragma unused params
    for(new i;i<sizeof(ZollInfo);i++){
    if(ZollInfo[i][zolllock] == true) return SendClientMessage(playerid,COLOR_WHITE,"Der Zoll wurde gesperrt!");
    if(IsPlayerInRangeOfPoint(playerid, 4.0, ZollInfo[i][zollx], ZollInfo[i][zolly], ZollInfo[i][zollz])){
    if(ZollInfo[i][zollvar] == false){
    GivePlayerMoney(playerid, -100);
    SendClientMessage(playerid, COLOR_GREEN, "Zollgebühr in Höhe von 100$ bezahlt | Gute Weiterfahrt!");
    MoveObject(ZollInfo[i][z_id],ZollInfo[i][azollx],ZollInfo[i][azolly],ZollInfo[i][azollz], 3.5, ZollInfo[i][azollax],ZollInfo[i][azollay],ZollInfo[i][azollaz]);
    ZollInfo[i][zollvar] = true;
    SetTimer("closegate", 3000, 0);
    }
    }else{ return SendClientMessage(playerid,COLOR_WHITE,"Du bist an keinem Zoll!");}
    }
    return 1;
    }


    auch die tore werden erstellt ohne probleme


    for(new i=0;i<MAX_ZOLLE;i++){
    ZollInfo[i][z_id] = CreateObject(ZollInfo[i][z_torid],ZollInfo[i][zollx],ZollInfo[i][zolly],ZollInfo[i][zollz],ZollInfo[i][zollax],ZollInfo[i][zollay],ZollInfo[i][zollaz]);
    }


    Ich hoffe eine rkann mir helfen.
    ich hab es auch bei dem command auch anderes probiert
    mit
    for(new i=0;i<MAX_ZOLLE;i++)

    aber dort ist es das selbe und es macht auch keinen großen unterschied zu for(new i;i<sizeof(ZollInfo);i++)


    /Edit
    Ich habe noch etwas rum getestet und kam zu dem ergebnis das die Werte in der for schleife nicht durchgegangen werden. Sprich ich kann in
    i bei der for schleife den wert 1 geben und ich kann nur das Tor mit der id 1 aufmachen
    vllt bringt es was in der Problemlösung , ich selbst hab den fehler immer noch nicht gefunden.

    ohne bot.... gar nicht.


    Theoretisch müsste es sogar möglich sein weil es gab/gibt soviel ich weiß ein Slot bug , weil damals hab ich da smal mit gemacht auf SoL
    dort gab es auf einmal dne bug das die Spieler von 80 an hoch ging obwohl es gerade mal 40 Player waren und damals waren keine bots im Spiel.

    Ich weiß leider nicht was für ein script du verwendest.
    http://wiki.sa-mp.com/wiki/Category:NPC


    Den Bot kannst ganz normal so gesehen behandeln wie jeden User.
    Hier mal der Code der dein Bot in ein auto setzt .

    if(IsPlayerNPC(playerid))
    {
    new bot[MAX_PLAYER_NAME];
    GetPlayerName(playerid, bot, sizeof(bot));
    if(!strcmp(bot, "Taxi", true))
    {
    PutPlayerInVehicle(playerid, taxicar, 0);
    }
    }


    Was passiert hier genau. Also wenn der Spieler ein bot ist und den Namen hier als beispiel taxi besitzt wird er
    in ein Auto hier (taxicar) gesteckt beim Spawnen. Dies solltest du auch deinem Script anpassen . Wie zum beispiel dem Bot den Führerschein zu geben
    sollte er vom fahrzeug entfernt werden , wenn dieser kein Führerschein hat du kannst ihm auch ein skin geben oder im einen "Beruf" sollte dies im script vorhandne sein beispiel taxi fahrer.



    new taxicar;

    musst du oben neu definieren um eine Variabel für das Auto zu erstellen
    das auto wird bei OnGameModeInit eingefügt

    taxicar= CreateVehicle(420, 1000.0,1000.0, 1000.0, 0.0, 10, 1, -1);


    Das wirst ja bestimmt kennen
    taxicar = variabel welche wir oben definiert haben
    CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
    ist das native um ein Auto zu erstellen
    Fahrzeugid
    x koordinate
    y koordinate
    z koordinate
    angel( bestimmt die rotation) koordinate
    Farbe 1
    Farbe 2
    Die Verzögerung wann das Fahrzeug ohne Fahrer respawnt


    Dies ist jedoch nicht alles um ein Bot zu erstellen mehr Infos findest du im Wiki oder in tutorials


    - http://www.youtube.com/watch?v=9HB5S3NoQ2w
    - [ SCRIPTING ] Samp 0.3 Bots Erstellen [überarbeitet]
    - http://www.youtube.com/watch?v=2cTtyHqJaGk


    Viel Glück

    Probier mal mit GetPlayerColor


    ließ das jedoch erst durch
    http://wiki.sa-mp.com/wiki/GetPlayerColor


    dann kannst du die Farbe des spielers abfragen lassen und ausgeben


    im string mit %x
    farbe = GetPlayerColor(playerid);
    format(string, sizeof(string),"{%x}%s says: %s",farbe,sendername,text);


    du kannst auch nur GetPlayerColor(playerid); verwenden ohne farbe neu zu definieren


    format(string, sizeof(string),"{%x}%s says: %s",GetPlayerColor(playerid),sendername,text);

    du hast hier ein spieler variabel , jedoch solltest bei OnPlayerSpawn auch abfragen wenn der Spieler die Variabel auf 1 hat wird er dort auch gespawnt

    das kommt davon

    DestroyVehicle(FactionCars[fc][fCarid]);
    FactionCars[fc][fCarid] = CreateVehicle(Fetc....


    das kannst du gegen SetVehicleToRespawn ersetzen jedoch dem entsprechend hier ienfach einfügen


    SetVehicleToRespawn(FactionCars[fc][fCarid]);

    das sollte gehen

    so genau kann ich kein Fehler erkennen durchs schnell überfliegen außer das es an deiner command ordnung
    liegen könnte

    ocmd:acceptrepair(playerid,params[])
    {
    new Float:x,Float:y,Float:z, car = GetPlayerVehicleID(playerid), angebot = GetPVarInt(playerid,"RepairAngebot");
    GetPlayerPos(angebot,x,y,z);
    if(GetPlayerMoney(playerid)< GetPVarInt(playerid,"RepairAngebotPreis")) return SendClientMessage(playerid,ROT,"Fehler: Du hast zuwenig Geld bei dir!");
    if(!IsPlayerInRangeOfPoint(playerid,5,x,y,z)) return SendClientMessage(playerid,ROT,"Fehler: Du bist nich in der Nähe des Spielers!");
    if(!IsPlayerInVehicle(playerid,car)) return SendClientMessage(playerid,ROT,"Fehler:Du bist in keinem Auto!");
    if(GetPVarInt(playerid,"RepairAngebotjanein") == 1){
    GivePlayerMoney(playerid,-GetPVarInt(playerid,"RepairAngebotPreis"));
    GivePlayerMoney(angebot,GetPVarInt(playerid,"RepairAngebotPreis"));
    SendClientMessage(playerid,BLAU,sprintf("Du hast das Angebot angenommen!-%i$",GetPVarInt(playerid,"RepairAngebotPreis")));
    SendClientMessage(angebot,BLAU,sprintf("Das Angebot wurde angenommen!+%i$",GetPVarInt(playerid,"RepairAngebotPreis")));
    SetPVarInt(playerid,"RepairAngebot",0);
    SetPVarInt(playerid,"RepairAngebotPreis",0);
    SetPVarInt(playerid,"RepairAngebotjanein",0);
    RepairVehicle(car);
    }
    return 1;
    }

    Naja!
    Ich möchte nur das Interior , bzw. die Koordinaten , die ich für einen PICKUP brauche!!!


    Bitte :)


    JohnWayne_Deluxe , die stadthalle hat kein interior sie befindet sich sehr sehr weit oben in der Luft und für die Koordinaten die könntest dir auch selbst dazu
    holen es ist alles vorhanden .map datei für MTA und die Objektcodes für Samp ^^

    jedoch hier bitte ein command
    if(strcmp(cmd, "/test",true) == 0){
    if(IsPlayerInRangeOfPoint(playerid, 4.0,wunschx,wunschy,wunschz)){
    SetPlayerPos(playerid, 1360.7610,-1660.7795,6321.7251);
    SetPlayerFacingAngle(playerid, 184.1669);
    TogglePlayerControllable(playerid,0);
    SetTimerEx("freeze",5000,0,"i",playerid);
    }
    return 1;
    }
    forward freeze(playerid);
    public freeze(playerid){
    TogglePlayerControllable(playerid,1);
    return 1;
    }



    @ DarkShadow ich könnte die auch noch releasen mal schauen ^^ , wenn ja dann erst übernächste woche weil ich bin die und die nächste woche im Urlaub






    ist in meinen augen jedoch nicht ganz fertig

    du könntest das übers rcon machen aber der gewünschte effekt wirst du damit nicht wirklich erzielen aber ich denk ohne da swas fehlt wird es nicht gehen.
    Es sein den du schreibst ein Plugin womit du ein error code erzeugst oder datein löscht

    es kommt auf die tasten legung an und KEY_JUMP ist ja in dem falle die leertaste


    benutze newkeys == 132 das sollte gehen

    mir würde noch was einfallen und zwar gabs für dtc ein extra native um den slot abzufragen und den besitzer

    forward GetDtCarOwnerSlot(playerid,veh);
    Function GetDtCarOwnerSlot(playerid,veh)
    {
    for(new X = 0; X < MaxVeh; X++)
    {
    if(PlayerCar[playerid][X][CarId] == veh)
    {
    return X;
    }
    }
    return 555;
    }


    forward GetDtCarOwner(veh);
    Function GetDtCarOwner(veh)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    for(new X = 0; X < MaxVeh; X++)
    {
    if(PlayerCar[i][X][CarId] == veh){return i;}
    }
    }
    return 1;
    }


    dann kannst du es ja so verwenden


    new besitzer= GetDtCarOwner(trailercar);
    new slot = GetDtCarOwnerSlot(besitzer,trailercar);
    PlayerCar[besitzer][slot][CarPos_x] = vX;
    PlayerCar[besitzer][slot][CarPos_y] = vY;
    PlayerCar[besitzer][slot][CarPos_z] = vZ;
    PlayerCar[besitzer][slot][CarState] = 1;


    oder du bringst ganz einfach die slot abfrage ein
    also hier die for schleife
    for(new X = 0; X < MaxVeh; X++)


    weil dein problem ist du gehst nicht die carslots durch

    mal ehrlich gesagt du wirst doch wohl wissen wie du abfrägst ob der Spieler ein admin ist


    einmal so


    if(pInfo[playerid][admin] >= 1)


    oder


    if(pInfo[adminid][admin] == 0)


    also das wirst du doch wohl selbst hinbekommen es bedeutet ganz einfach das pInfo oder sSPieler
    nicht definiert ist, also es kommt nicht im script vor. Daher ersetze es durch deine Abfrage ob der Spieler admin ist.