Beiträge von Jeffry

    Ich brauch immer noch hilfe :/


    Mach doch bitte einen Thread auf, wenn es keine kleine kurze Frage ist. Diese ewig langen Codes hier geben keinen Sinn, das ist ein riesiges Durcheinander.


    Schreibe es erst mal so, dann klappt das mit dem Löschen, und das Label sollte auch dran sein.

    Spoiler anzeigen
    ocmd:veh(playerid,params[])
    {
    if(SpielerInfo[playerid][pAlevel] >= 2)
    {
    //if(IsPlayerInAnyVehicle(playerid) == 1)return SendClientMessage(playerid, 0xFF0000FF, "Du bist bereits in einem Fahrzeug!");
    new Float:vehx,Float:vehy,Float:vehz, vehid,cc1,cc2,string[128], astring[128], aname[MAX_PLAYERS],VVW,Float:facing, veh;
    GetPlayerName(playerid,aname,sizeof(aname));
    if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, 0xFF0000FF,"[FEHLER]{FFFFFF} /Veh [FahrzeugID] [Farbe 1] [Farbe 2]");
    if(vehid < 400 ||vehid > 611)return SendClientMessage(playerid,0xFF0000FF,"[FEHLER] {FFFFFF}Falsche Veh-ID! | ~ | 400 - 611 | ~ |");
    if(SpielerInfo[playerid][pVehErstellt] == 0)
    {
    GetPlayerPos(playerid,vehx,vehy,vehz);
    GetPlayerFacingAngle(playerid, facing);
    VVW = GetPlayerVirtualWorld(playerid);
    veh = AddStaticVehicleEx(vehid,vehx,vehy,vehz,facing,cc1,cc2,-1);
    PutPlayerInVehicle(playerid, veh, 0);
    AddVehicleComponent(veh, 1010);
    SetVehicleVirtualWorld(veh, VVW);
    vehicle3Dtext[vehicle_id]= Create3DTextLabel( "** Administrator Fahrzeug **", 0x00FFBEFF, 0.0, 0.0, 0.0, 100.0, 0, 1 );
    Attach3DTextLabelToVehicle(vehicle3Dtext[vehicle_id],veh,0.0, 0.0, 2.0);
    format(astring,sizeof(astring),"[A-INFO] [%d]%s(LvL: %s) hat '{FFFFFF}/VEH{FF0000}' ausgeführt!",playerid,aname,GetAlevel(playerid));
    SendAdminMessage(0xFF0000FF,astring);
    format(string,sizeof(string),"[INFO]{FFFFFF} Du hast das Fahrzeug mit der ModelID [{FF9100}%d{FFFFFF}] und der VehicleID [{FF9100}%d{FFFFFF}] erstellt!",veh,vehid);
    SendClientMessage(playerid,0xFF0000FF,string);
    SpielerInfo[playerid][pVehErstellt] = veh;
    }
    else if(SpielerInfo[playerid][pVehErstellt] != 0)
    {
    format(string,sizeof(string),"[INFO]{FFFFFF} ModelID[%d] wurde gelöscht! Geben Sie bitte erneurt /VEH ein um einen Auto zu spawnen!",veh);
    SendClientMessage(playerid,0xFF0000FF,string);
    DestroyVehicle(SpielerInfo[playerid][pVehErstellt]);
    SpielerInfo[playerid][pVehErstellt] = 0;
    }
    }
    return 1;
    }


    Eddy: Mache bitte einen Thread auf, das hat hier so keinen Sinn, wenn man erst mal drei Meter kurbeln muss, bis man hat was man braucht, und der vorherige Post ist zwei Seiten weiter hinten und dann übersieht man einen. Und beschreibe bitte was denn genau falsch ist, sag am besten, was eigentlich in den Spalten stehen soll. Danke! :)


    @FerienFreak: Das trifft auch für dich zu, sowas ist keine kleine Frage mehr. Zudem: Welches Plugin verwendest du, wie sieht deine Datenbank-/Tabellenstruktur aus?
    EDIT:
    @FerienFreak: ^

    Ich glaube, sscanf ist nicht wirklich was für dich hier.
    Vielleicht ist das hier anschaulicher:
    MYSQL Lädt falsche werte


    Der string entspricht dem, was du aus der Datenbank lädst, also das was bei dir geprintet wird (resultline).
    case 1 wäre dann die ID
    case 2 der Besitzer
    case 3 der Slot
    case 4 die Model ID
    ...


    Kommst du damit klar?


    EDIT: Ich muss mich schon wieder entschuldigen, dass ich deine Antwort nicht gesehen habe...wobei der Thread war als gelesen markiert war. Komisch. 8|



    EDIT:
    @Jean_Pacino: Angesprochen.

    new Float:ptx,Float:pty,Float:ptz,string[80];
    sInfo[playerid][dx] = ptx;
    sInfo[playerid][dy] = pty;
    sInfo[playerid][dz] = ptz;
    GetPlayerPos(playerid, ptx,pty,ptz);


    zu:
    new Float:ptx,Float:pty,Float:ptz,string[80];
    GetPlayerPos(playerid, ptx,pty,ptz);
    sInfo[playerid][dx] = ptx;
    sInfo[playerid][dy] = pty;
    sInfo[playerid][dz] = ptz;

    Sind die Zivilisten pMember 0 oder 1?
    Wenn sie 0 sind, wird für die nämlich der Teil mit
    ForceClassSelection(playerid);
    durchgeführt.


    Willst du die Zivilisten auch so behandeln, wie die anderen Members? Wenn ja, welchen Skin sollen sie angezeigt bekommen?

    Problem 1:
    sInfo[pID][dx] = x;
    sInfo[pID][dy] = y;
    sInfo[pID][dz] = z;


    zu:
    x = sInfo[pID][dx];
    y = sInfo[pID][dy];
    z = sInfo[pID][dz];



    Problem 2:
    new query[256];
    zu:
    new query[512];


    PS: Für solche riesen-Codes lieber einen neuen Thread auf machen, das ist (schon von der Größe her) keine "kleine" Frage mehr. ;)

    Ahh, ok. Dann mach das was du gemacht hast wieder rückgängig. Und füge nur das hier ein, direkt unter den Includes (oder eben bevor CreateVehicle/AddStaticVehiclEx das erste mal benutzt wird. Wenn nur in den zwei Funktionen, kannst du es auch da drüber einfügen) :


    stock ex_CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vID = CreateVehicle(modelid, x, y, z, angle, color1, color2, respawn_delay);
    GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vID,engine,lights,alarm,0,bonnet,boot,objective);
    return vID;
    }


    #if defined _HOOK_CreateVehicle
    #undef CreateVehicle
    #else
    #define _HOOK_CreateVehicle
    #endif
    #define CreateVehicle ex_CreateVehicle



    stock ex_AddStaticVehicleEx(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vID = AddStaticVehicleEx(modelid, x, y, z, angle, color1, color2, respawn_delay);
    GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vID,engine,lights,alarm,0,bonnet,boot,objective);
    return vID;
    }


    #if defined _HOOK_AddStaticVehicleEx
    #undef AddStaticVehicleEx
    #else
    #define _HOOK_AddStaticVehicleEx
    #endif
    #define AddStaticVehicleEx ex_AddStaticVehicleEx


    Dann ist es genau gleich wie im Filterscript.

    Ist klar, dass es im Filterscript nur mit dem Fahrzeug klappt, das du damit erstellt hast. :)


    Wie erstellst du denn jetzt deine Fahrzeuge im Gamemode? Hast du meinen stock eingefügt?
    Kannst du mal nach der Vehicle_AddStatic Funktion suchen (also die Deklaration davon)? Weil normalerweise heißt es ja AddStaticVehicle.

    Ach da hast du es auch nicht geändert. Meh.


    format(string2,sizeof(string2),"{FFFFFF}Hier findest du deinen Personalausweis, wenn du ihn jemanden zeigen willst schreibe /showperso.\n\n\n{FFA600}Allgemeine Daten{FFFFFF}\n\nName: %s\nAlter: %d\nHerkunft: %s\nGeschlecht: %s\n",name,age,otext,atext);
    format(string2,sizeof(string2),"%sVerheiratet mit %s\nTelefonnummer:\n\nBankkonto: $%d\nGeld auf Hand: $%d\n\n\n{FFA600}Allgemeine Informationen{FFFFFF}\n\nLevel: %d\nLevelUp-Kosten: $%d\nRespektpunkte: %d von %d\n",string,married,pnumber,account,cash,level,costlevel,exp,expamount);
    format(string2,sizeof(string2),"%sDonatorrang: %s\nWanteds: %d\nDrogen: %d\nMaterialien: %d\n\n\n{FFA600}Sonstige Daten & Informationen{FFFFFF}\n\nVerbrechen: %d\nGefängnise: %d\nKills: %d\nTode: %d\nKrankheit: %s",string,drank,wanted,drugs,mats,crimes,arrests,kills,deaths,dtext);
    zu:
    format(string2,sizeof(string2),"{FFFFFF}Hier findest du deinen Personalausweis, wenn du ihn jemanden zeigen willst schreibe /showperso.\n\n\n{FFA600}Allgemeine Daten{FFFFFF}\n\nName: %s\nAlter: %d\nHerkunft: %s\nGeschlecht: %s\n",name,age,otext,atext);
    format(string2,sizeof(string2),"%sVerheiratet mit %s\nTelefonnummer:\n\nBankkonto: $%d\nGeld auf Hand: $%d\n\n\n{FFA600}Allgemeine Informationen{FFFFFF}\n\nLevel: %d\nLevelUp-Kosten: $%d\nRespektpunkte: %d von %d\n",string2,married,pnumber,account,cash,level,costlevel,exp,expamount);
    format(string2,sizeof(string2),"%sDonatorrang: %s\nWanteds: %d\nDrogen: %d\nMaterialien: %d\n\n\n{FFA600}Sonstige Daten & Informationen{FFFFFF}\n\nVerbrechen: %d\nGefängnise: %d\nKills: %d\nTode: %d\nKrankheit: %s",string2,drank,wanted,drugs,mats,crimes,arrests,kills,deaths,dtext);



    Wenn ich alle sage, dann meine ich auch alle. ;)

    Alle "string" heißt auch alle. ;)
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Personalausweis",string,"OK","");
    zu:
    ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Personalausweis",string2,"OK","");



    Außerdem ist new string2[255]; etwas wenig. 1024 wäre besser.

    Ich habe es mit diesem Test-Filterscript getestet:

    Spoiler anzeigen
    #include <a_samp>

    Spoiler anzeigen
    stock ex_CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vID = CreateVehicle(modelid, x, y, z, angle, color1, color2, respawn_delay);
    GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vID,engine,lights,alarm,0,bonnet,boot,objective);
    return vID;
    }

    Spoiler anzeigen
    #if defined _HOOK_CreateVehicle
    #undef CreateVehicle
    #else
    #define _HOOK_CreateVehicle
    #endif
    #define CreateVehicle ex_CreateVehicle

    Spoiler anzeigen
    public OnFilterScriptInit()
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/vehspawn"))
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x,y,z);
    new vid = CreateVehicle(411,x+5,y,z,0,-1,-1,-1);
    printf("%d", vid);
    return 1;
    }
    if(!strcmp(cmdtext, "/locktest"))
    {
    if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)return SendClientMessage(playerid,0xF3CA00FF,"Du musst der Fahrer eines Fahrzeugs sein um dein Auto auf/abzuschliessen");
    new vID=GetPlayerVehicleID(playerid),
    tmp_engine,
    tmp_lights,
    tmp_alarm,
    tmp_doors,
    tmp_bonnet,
    tmp_boot,
    tmp_objective;
    //an/aufschliessen
    GetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    if(tmp_doors==0){
    tmp_doors =1;
    SendClientMessage(playerid, 0xF3CA00FF, "*Du hast das Fahrzeug abgeschlossen*");
    }else{
    tmp_doors = 0;
    SendClientMessage(playerid, 0xF3CA00FF, "*Du hast das Fahrzeug aufgeschlossen*");
    }
    SetVehicleParamsEx(vID, tmp_engine, tmp_lights, tmp_alarm, tmp_doors, tmp_bonnet, tmp_boot, tmp_objective);
    return 1;
    }
    return 0;
    }


    Erstelle bei dir mal einen neuen Filterscript und lade ihn. Dann mach /vehspawn und im Fahrzeug dann /locktest.
    Dann siehst du, dass es beim ersten mal abgeschlossen wird.




    Wenn du bei dir im Code all "Vehicle_AddStatic" mit "ex_Vehicle_AddStatic" ersetzt (STRG+H), sollte es auch klappen.
    (!!Nicht das "Vehicle_AddStatic" in dem stock ex_Vehicle_AddStatic setzen!!)

    Also bei mir ging es. Weiß du wie das Vehicle_AddStatic deklariert ist?


    Wenn nein, mach es so: (mach das andere wieder raus)
    stock ex_Vehicle_AddStatic(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vID = Vehicle_AddStatic(modelid, x, y, z, angle, color1, color2, respawn_delay);
    GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vID,engine,lights,alarm,0,bonnet,boot,objective);
    return vID;
    }
    Füge das ganz unten in den Gamemode ein.


    Dann mach:
    STRG+H
    Vehicle_AddStatic
    ex_Vehicle_AddStatic
    -> Alle ersetzen.

    stock ex_Vehicle_AddStatic(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vID = Vehicle_AddStatic(modelid, x, y, z, angle, color1, color2, respawn_delay);
    GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vID,engine,lights,alarm,0,bonnet,boot,objective);
    return vID;
    }


    #if defined _HOOK_Vehicle_AddStatic
    #undef Vehicle_AddStatic
    #else
    #define _HOOK_Vehicle_AddStatic
    #endif
    #define Vehicle_AddStatic ex_Vehicle_AddStatic

    Die Abfrage ist doppelt:
    if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
    zu:
    if(IsPlayerConnected(playerid))



    nxtlevel
    ist nicht deklariert. Ich weiß nicht für was das steht, das musst du selbst machen.


    format(string,sizeof(string),"%sVerheiratet mit %s\nTelefonnummer:\n\nBankkonto: $%d\nGeld auf Hand: $%d\n\n\n{FFA600}Allgemeine Informationen{FFFFFF}\n\nLevel: %d\nLevelUp-Kosten: $%d\nRespektpunkte: %d von %d\n",string,married,pnumber,account,cash,level,costlevel,exp,expamount,);
    zu:
    format(string,sizeof(string),"%sVerheiratet mit %s\nTelefonnummer:\n\nBankkonto: $%d\nGeld auf Hand: $%d\n\n\n{FFA600}Allgemeine Informationen{FFFFFF}\n\nLevel: %d\nLevelUp-Kosten: $%d\nRespektpunkte: %d von %d\n",string,married,pnumber,account,cash,level,costlevel,exp,expamount);
    (Komma am Ende weg, hab ich aus Versehen stehen lassen.)

    Benenne alle "string" in dem Befehl zu "string2" um, du hast string schon irgendwo anders auf höherer Ebene deklariert.
    Dann mach:
    new ftext[20];
    zu:
    new ftext[20], drank[20], targetid = playerid;