Beiträge von DJ Deagle

    Hi,


    ich habe mir folgendes Script zusammengebastelt:
    public erzabgeben(playerid, vehicleid)
    {
    new str[128];
    new rnd = random(Load[vehicleid]);
    format(str,sizeof str,"Du hast %skg Gestein abgeliefert!\nIn diesem Gestein befanden sich {009BFF}%skg Eisenerz {FFFFFF}.\n\nDafür erhälst du %s€!",inspoints(Load[vehicleid]),inspoints(rnd),inspoints(rnd+1000));
    pInfo[playerid][pMoney] += rnd+1000;
    JobInfo[EisenKG] += rnd;
    PlayerTextDrawHide(playerid, JobInfo0[playerid]);
    TextDrawHideForPlayer(playerid, JobInfo1);
    PlayerTextDrawHide(playerid, JobInfo2[playerid]);
    ErzjobCP[playerid] = 0;
    JobInfo[Erzbergstadium] += 1;
    SaveJobInfo();
    ShowPlayerDialog(playerid,DLG_ERZ,DIALOG_STYLE_MSGBOX,"Job :: Erzarbeiter",str,"Schliessen","");
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0) {
    if(Erzabgeben[playerid] == 1) {
    if(GetPlayerVehicleID(playerid) == 406) {
    if(HOLDING(KEY_ANALOG_DOWN)) {
    if(IsCoordBehindVehicle(GetPlayerVehicleID(playerid),680.9702,824.3072,-26.7051)) {
    erztimer[playerid]=SetTimerEx("erzabgeben",7000,0,"dd",playerid,GetPlayerVehicleID(playerid));
    kadpressed[playerid] = 1;
    } else {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Dein Fahrzeug befindet sich nicht mit der Ladefläche zum Gesteinsfilter!");
    }
    }
    if(RELEASED(KEY_ANALOG_DOWN)) {
    if(kadpressed[playerid] == 1) { KillTimer(erztimer[playerid]); }
    }
    }
    }
    }
    return 1;
    }
    Doch leider wird der "erzabgeben"-Callback nie aufgerufen 8|
    Woran liegt es?


    lg

    Hallo!


    Ein Freund von mir hat dort einen Rootserver, und lässt darüber ein Minecraft-Servernetzwerk laufen.
    Dieses läuft flüssig. Der Support antwortet zügig und ist stets freundlich. Auch einen vServer besitzt er und kann sich nicht beschweren. :)


    lg
    Deagle.

    Hey,


    Ich habe mir vor einiger Zeit eine Skinauswahl erbastelt. Nun möchte ich für diese Auswahl einige Skins "restricten", also verbieten.
    Die Skins habe ich in folgendem Array gespeichert:

    Klickstdu hier!
    new GangSkins[105] = {11,30,46,47,48,59,68,70,71,80,81,91,93,98,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,141,142,147,150,
    155,163,164,165,166,167,171,172,173,174,175,185,186,187,189,194,203,204,205,209,220,221,222,223,233,240,247,248,253,254,255,265,266,267,268,269,270,271,272,273,274,275,276,277,278,
    279,280,281,282,283,284,285,286,287,288,292,293,294,295,297,299};


    Hier ist mein OnPlayerClickTextDraw-Code:
    public OnPlayerClickTextDraw(playerid,Text:clickedid)
    {
    if(clickedid == Skinselect1) {
    if(GetPlayerSkin(playerid) == 1){
    SetPlayerSkin(playerid,299);
    } else {
    SetPlayerSkin(playerid,GetPlayerSkin(playerid)-1);
    }
    }
    if(clickedid == Skinselect2) {
    if(GetPlayerSkin(playerid) == 299){
    SetPlayerSkin(playerid,1);
    } else {
    SetPlayerSkin(playerid,GetPlayerSkin(playerid)+1);
    }
    }
    if(clickedid == Skinselect3) {
    CancelSelectTextDraw(playerid);
    SpawnPlayer(playerid);
    }
    return 1;
    }


    Wie kann ich dies nun tun?


    lg
    Deagle.

    Hallo,


    ich wollte mal wissen, ob man herausfinden kann, ob Vehicle X mit der Rückseite (Kofferraum) zur Koordinate XXX steht.
    Ich habe irgendetwas von Sinus & Cosinus gefunden, doch das hatte ich noch nicht einmal in der Schule :D


    Kann mir da jemand helfen?


    lg


    P.S.: Das hier hab ich noch gefunden:
    stock IsPlayerBehindVehicle(playerid,veh)
    {
    new Float:vcoord[3]; GetVehiclePos(veh,vcoord[0],vcoord[1],vcoord[2]);
    new Float:size[3]; GetVehicleModelInfo(GetVehicleMode(veh), VEHICLE_MODEL_INFO_SIZE, size[0],size[1],size[2]);
    new Float:vangle; GetVehicleZAngle(veh,vangle);
    vcoord[0] = floatadd(vcoord[0],(-size[0]* floatsin(-vangle,degrees)));
    vcoord[1] = floatadd(vcoord[1],(-size[1]* floatcos(-vangle,degrees)));
    if(IsPlayerInRangeOfPoint(playerid,3.0,vcoord[0],vcoord[1],vcoord[2])) return 1;
    return 0;
    }

    Wäre es möglich diese Funktion umzubauen?

    Oben im Script nach new cargod; suchen.
    Wenn gefunden folgendes raus machen:
    new cargod[MAX_PLAYERS];


    Dann beim Befehl:
    if (PlayerInfo[playerid][pAdmin] >= 1337 && cargod[playerid] == 0)
    {
    cargod[playerid] = 1;
    SendClientMessage(playerid,COLOR_GRAD2, "Cargod eingeschaltet.");
    // usw....


    lg
    :thumbup:

    Was wird als case geprintet?


    Falls gar nichts kommt, füge bitte zwischen die Zeilen deines Timers immer wieder prints um so zu verfolgen, wohin der Code geht, dann findest du vielleicht schon selbst heraus, warum string leer ist.
    Ansonsten poste den Code und das geloggte Ergebnis.



    Bevor du fragst wo ich den Tank setze, hier:
    new Float:X,Float:Y,Float:Z,string[128];
    GetPlayerName(playerid, sendername, sizeof sendername);
    format(string,sizeof string,"Supportmobil - %s",sendername);
    GetPlayerPos(playerid,X,Y,Z);
    new veh = CreateVehicle(carid,X+3,Y,Z,0,c1,c2,-1);
    SetVehicleNumberPlate(veh,string);
    SetPVarInt(playerid,"Admincar",veh);
    SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    KM[veh] = 0;
    Motor[veh] = true;
    Tank[veh] = MaxTank[(carid)-400];//HIER :D


    Und bevor du noch fragst, wo MaxTank definiert ist, hier:

    Spoiler anzeigen
    new MaxTank[212] = {
    90,//Landstalker
    40,//Bravura
    45,//Buffalo
    150,//Linerunner
    60,//Perenniel
    50,//Sentinel
    150,//Dumper
    80,//Firetruck
    75,//Trashmaster
    60,//Stretch
    40,//Manana
    45,//Infernus
    30,//Voodo
    65,//Pony
    70,//Mule
    45,//Cheetah
    60,//Amublance
    200,//Leviathan
    70,//Moonbeam
    40,//Esperanto
    45,//Taxi
    50,//Washington
    50,//Bobcat
    60,//Mr. Whoopee
    30,//BF Injection
    200,//Hunter
    55,//Premier
    70,//Enforcer
    70,//Securicar
    45,//Banshee
    125,//Predator
    75,//Bus
    150,//Rhino
    90,//Barracks
    40,//Hotknife
    300,//Artic Trailer 1
    40,//Previon
    70,//Coach
    40,//Cabbie
    40,//Stallion
    60,//Rumpo
    300,//RC Bandit
    55,//Romero
    100,//Packer
    60,//Monster
    45,//Admiral
    90,//Squalo
    150,//Seasparrow
    8,//Pizza Boy
    300,//Tram
    300,//Artiv Trailer 2
    45,//Turismo
    90,//Speeder
    90,//Reefer
    110,//Tropic
    100,//Flatbed
    70,//Yankee
    20,//Caddy
    50,//Solair
    60,//Top Fun
    120,//Skimmer
    15,//PCJ-600
    8,//Faggio
    20,//Freeway
    300,//RC Baron
    300,//RC Raider
    30,//Glendale
    40,//Oceanic
    12,//Sanchez
    120,//Sparrow
    70,//Patriot
    18,//Quad
    100,//Coastguard
    40,//Dighny
    45,//Hermes
    50,//Sabre
    100,//Rustler
    50,//ZR-350
    40,//Walton
    55,//Regina
    60,//Comet
    0,//BMX
    70,//Burrito
    80,//Camper
    140,//Marquis
    20,//Baggage
    80,//Dozer
    120,//Maverick
    100,//SAN Maverick
    60,//Rancher
    65,//FBI Rancher
    45,//Virgo
    50,//Greenwood
    100,//Jetmax
    70,//Hotring
    75,//Sandking
    50,//Blista Compact
    125,//Police Maverick
    75,//Boxville
    75,//Benson
    60,//Mesa
    300,//RC Goblin
    70,//Hotring Racer A
    70,//Hotring Racer B
    60,//Bloodring Banger
    60,//Rancher (lure)
    50,//Super GT
    50,//Elegant
    70,//Journey
    0,//Bike
    0,//Mountain Bike
    160,//Beagle
    90,//Cropduster
    80,//Stuntplane
    120,//Petrol
    180,//Roadtrain
    45,//Nebula
    45,//Majestic
    45,//Buccaneer
    200,//Shamal
    195,//Hydra
    18,//FCR-900
    20,//NRG-500
    19,//HPV-1000
    80,//Cement Truck
    70,//Tow Truck
    50,//Fortune
    50,//Cadrona
    80,//FBI Truck
    45,//Willard
    20,//Forklift
    15,//Tractor
    90,//Combine
    40,//Feltzer
    45,//Remington
    50,//Slamvan
    45,//Blade
    300,//Freight
    300,//Streak (Brown Streak)
    20,//Vortex
    45,//Vincent
    40,//Bullet
    40,//Clover
    50,//Sadler
    80,//Firetruck LS
    45,//Hustler
    50,//Intruder
    50,//Primo
    200,//Cargobob
    50,//Tampa
    50,//Sunrise
    55,//Merit
    70,//Utility Van
    220,//Nevada
    50,//Yosemite
    40,//Windsor
    65,//Monster A
    65,//Monster B
    50,//Uranus
    45,//Jester
    55,//Sultan
    60,//Stratum
    50,//Elegy
    200,//Raindance
    300,//RC Tiger
    50,//Flash
    45,//Tahoma
    40,//Savanna
    35,//Bandito
    300,//Freight Flat
    300,//Streak
    5,//Kart
    15,//Mower
    75,//Duneride
    30,//Sweeper
    45,//Broadway
    45,//Tornado
    300,//AT-400
    75,//DFT-30
    65,//Huntley
    50,//Stafford
    15,//BF-400
    55,//News van
    25,//Tug
    300,//Petrol Tanker
    50,//Emperor
    20,//Wayfahrer
    45,//Euros
    70,//Hotdog
    50,//Club
    300,//Freight Box
    300,//Artiv Trailer
    500,//Andromada
    100,//Dodo
    300,//RC Cam
    120,//Launch
    50,//Cop Car LS
    50,//Cop Car SF
    50,//Cop Car LV
    60,//Ranger
    50,//Picador
    80,//SWAT Tank
    45,//Alpha
    45,//Phoenix
    25,//Glendale damaged
    25,//Sadler damaged
    300,//Bag Box A
    300,//Bag Box B
    300,//Stairs
    80,//Boxville Black
    300,//Farm Trailer
    300,//Utility Trailer
    };


    lg :D


    /e:
    Ich erstelle immer einen Infernus

    Hi,


    ich habe mir einen Tacho zusammengebastelt.
    Der String des Tachos ist aber leer, hier der print dazu, der Screenshot ist im Anhang:


    Und hier der PWN-Code:
    [pwn=3163]if(Tank[veh] == -1) {
    format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I I I I I ~w~(n/V)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,chealth,PlayerVehicle[modelid - 400]);
    PlayerTextDrawSetString(i, Tacho0[i], string);
    } else {
    switch(Tank[veh]/(MaxTank[(modelid)-400]/10))
    {
    case 10: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 9: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I I I I ~r~I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 8: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I I I ~r~I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 7: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I I ~r~I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 6: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I I ~r~I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 5: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I I ~r~I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 4: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I I ~r~I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 3: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I I ~r~I I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 2: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I I ~r~I I I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 1: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~g~I ~r~I I I I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    case 0: format(string,sizeof string,"Geschwingidkeit: %d km/h~n~Tankinhalt: ~r~I I I I I I I I I I ~w~(%d/%dL)~n~Zustand: %d%%~n~Fahrzeug: %s",kmh,Tank[veh],MaxTank[(modelid)-400],chealth,PlayerVehicle[modelid - 400]);
    }
    PlayerTextDrawSetString(i, Tacho0[i], string);
    }
    printf("%s",string);[/pwn]
    Der string ist mit einer Größe von 512 Zeichen deklariert.


    Warum ist er denn dann leer?


    lg


    P.S.: Tank ist auch drin.

    stock LoadJobCars()
    {
    new str[512],rows;
    mysql_query("SELECT * FROM `Jobcars`");
    mysql_store_result();
    rows = mysql_num_rows();
    if(rows >= 1) {
    printf("%d",rows);
    new idx=0;
    while(mysql_fetch_row(str))
    {
    sscanf(str, "e<p<|>dddddfffff>",JCarInfo[idx]);
    mysql_free_result();
    JCarInfo[idx][cVeh]=CreateVehicle(JCarInfo[idx][cModel],JCarInfo[idx][cPosX],JCarInfo[idx][cPosY],JCarInfo[idx][cPosZ],JCarInfo[idx][cPosA],JCarInfo[idx][cColor1],JCarInfo[idx][cColor2],-1);
    Tank[JCarInfo[idx][cVeh]] = -1;
    JCarInfo[idx][cCreated] = true;
    idx++;
    }
    }
    return 1;
    }
    Er lädt trotzdem nur 1 Fahrzeug..

    stock LoadJobCars()
    {
    new str[512],rows;
    mysql_query("SELECT * FROM `Jobcars`");
    mysql_store_result();
    rows = mysql_num_rows();
    if(rows >= 1) {
    printf("%d",rows);
    while(mysql_fetch_row(str))
    {
    sscanf(str, "e<p<|>dddddfffff>",JCarInfo[rows]);
    }
    mysql_free_result();
    JCarInfo[rows][cVeh]=CreateVehicle(JCarInfo[rows][cModel],JCarInfo[rows][cPosX],JCarInfo[rows][cPosY],JCarInfo[rows][cPosZ],JCarInfo[rows][cPosA],JCarInfo[rows][cColor1],JCarInfo[rows][cColor2],-1);
    Tank[JCarInfo[rows][cVeh]] = -1;
    JCarInfo[rows][cCreated] = true;
    }
    return 1;
    }
    [DT]Sniper:

    Okay, ich hab ne Schleife genommen, anstatt die Rows auszulesen.


    Okay, nun lädt er nur 1 von 2 Fahrzeugen. Obwohl halt 2 in der Tabelle sind und mein Debug-Print auch 2 Rows ausgibt:


    Wie gesagt, es wird nur 1 gespawnt.. (Der Zweite Eintrag wird gespawnt)
    Warum???

    Hi,


    ich habe ein Problem, und zwar das was in der Überschrift beschrieben ist (You don't say?).
    In der Datenbank stehen 2 Fahrzeuge. Hier mein Stock:
    #define MAX_JOBCARS 200
    stock LoadJobCars()
    {
    new str[512];
    for(new i;i<MAX_JOBCARS;i++) {
    if(JCarInfo[i][cCreated] == false) {
    mysql_query("SELECT * FROM `Jobcars`");
    mysql_store_result();
    while(mysql_fetch_row(str))
    {
    sscanf(str, "e<p<|>dddddfffff>",JCarInfo[i]);
    }
    mysql_free_result();
    JCarInfo[i][cVeh]=CreateVehicle(JCarInfo[i][cModel],JCarInfo[i][cPosX],JCarInfo[i][cPosY],JCarInfo[i][cPosZ],JCarInfo[i][cPosA],JCarInfo[i][cColor1],JCarInfo[i][cColor2],-1);
    Tank[JCarInfo[i][cVeh]] = -1;
    JCarInfo[i][cCreated] = true;
    } else {
    return 1;
    }
    }
    return 1;
    }


    Warum erstellt er 200 Fahrzeuge?? Jeffry: :whistling:


    lg

    Ich habe euch doch den Lösungsweg gegeben? nur weil ich euch keinen fertigen Copy & paste Code gebe bin ich fehl am platz?


    mfg Mika


    1. Dieses Thema ist erledigt.
    2. Du hast uns den "Lösungsweg" gegeben. Es gibt mehr als nur 2 Lösungswege, und ich habe mich für den entschieden, welchen ich jetzt benutze.
    3. Nein.


    Btw: Bei 50 km/h würde ich 13,8... Meter pro Sekunde zurücklegen. Ich will mal wissen, was du für ein Auto hast, dass du solche Werte erreichst :huh: