Beiträge von Jane

    danke dir ich werde es ausprobieren-->danke dass du dir
    die zeit nimmst es auch zu erklären



    edit danke hab keine errors und warnings mehr den rest werde ich ausprobieren




    es funktioniert nach wievor nicht

    [quote='Jane','index.php?page=Thread&postID=1943477#post1943477']format(query,sizeof(query),"UPDATE Spielerautos SET X='%f',Y='%f',Z='%f',ROTATION='%f' WHERE DB_ID='%i'",cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],cInfo[i][DB_ID]); mysql_function_query(dbhandle,query,false,"","");


    war wohl nix mit copy&paste-->aber egal


    nun zum erstellen der fahrzeuge


    createplayercar(playerid,model,Float:x,Float:y,Float:z,Float:rota,Farb1,Farb2,respawn)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][SID] !=0)
    continue;
    cInfo[i][besitzer] = sInfo[playerid][db_id];
    cInfo[i][modelID] = model;
    cInfo[i][carx] = x;
    cInfo[i][cary] = y;
    cInfo[i][carz] = z;
    cInfo[i][carrota] = rota;
    cInfo[i][Farbe1] = Farb1;
    cInfo[i][Farbe2] = Farb2;
    cInfo[i][SID]= CreateVehicle(model,x,y,z,rota,Farb1,Farb2,respawn);
    SaveCarToDB(playerid,i,model,Farb1,Farb2,respawn);
    return 1;
    }
    return 1;
    }
    ocmd:playercspawn(playerid,params[])
    {
    if(sInfo[playerid][alevel]>=7)
    {
    if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
    {
    new pID,vID,Float:x,Float:y,Float:z,Float:rota;
    new Farb1,Farb2,respawn;
    if(sscanf(params,"uiiii",pID,vID,Farb1,Farb2,respawn))return SendClientMessage(playerid,CL_WHITE,"ERROR: /cspawn [id][vID][farb1][farb2][respawn(-1 nein), 1->ja]");
    GetPlayerPos(pID,x,y,z);
    GetPlayerFacingAngle(pID,rota);
    createplayercar(pID,vID,Float:x,Float:y,Float:z,Float:rota,Farb1,Farb2,respawn);
    SendClientMessage(playerid,CL_HROT,"Du hast den befehl benutzt.");
    return 1;
    }
    }
    SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
    return 1;
    }


    freecarid()
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][SID]==0)return i;
    }
    return 0;
    }
    loadcars(playerid)
    {
    new query[200];
    format(query,sizeof(query),"SELECT * FROM Spielerautos WHERE BESITZER='%i'",sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,true,"PlayerCarsLoad","i",playerid);

    return 1;
    }
    SaveCarToDB(playerid,i,modelid,farb1,farb2,respawn)
    {
    new query[200];
    new Float:rotation;
    GetVehicleZAngle(modelid,Float:rotation);//-->da muss hin wo es gepeichert wird
    format(query,sizeof(query),"INSERT INTO Spielerautos(BESITZER,MODEL,X,Y,Z,ROTATION,FARBE1,FARBE2,RESPAWN,KENNZEICHEN)VALUES('%i','%i','%f','%f','%f','%f','%i','%i','%i','%s')",sInfo[playerid][db_id],modelid,cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],farb1,farb2,respawn,cInfo[i][kennzeichen]);
    mysql_function_query(dbhandle,query,true,"CarSavedDB","i",i);
    return 1;
    }





    ich hoffe + OnPlayerDisconnect(siehe oben) das reicht :D


    wenn nicht bitte melden


    edit hat keiner eine idee=?

    enum sInfoenum playerInfo{
    eingeloggt,
    db_id,
    level,
    geld,
    skin,
    bankgeld,
    kredit,
    kzins,
    //adminstrativ
    baned,
    alevel,
    aduty
    //Fraktionen
    //XYZ
    }


    dazu new sInfo[MAX_PLAYERS][playerInfo];


    danke für deine mühe

    Hallo


    ich bin nicht faul aber da ich es noch nie gemacht habe lasse ich es mir gerne erklären


    ich möchte per enum den spieler an x y z koordinaten spawnen lassen


    das enum sieht so aus


    new frakspawn[][fspawn] = {
    {0.0,0.0,0.0,0},
    {}


    };


    dazu


    enum fspawn
    {
    Float:f_x,
    Float:f_y,
    Float:f_z,
    Float:f_rota,
    f_interior
    }


    nun die frage in dem stock der von OnPlayerSpawn aufgerufen wird
    stock spawnfrak(playerid)
    {




    SetPlayerColor(playerid,CL_WHITE);
    SetPlayerHealth(playerid,100);
    clock();
    static states;
    introstop(playerid);
    SetPlayerSkin(playerid,sInfo[playerid][skin]);
    if(sInfo[playerid][alevel]>=2)
    {
    if(sInfo[playerid][aduty]==1)return SetPlayerPos(playerid,1022.8530,-3960.8057,2.7001),SetPlayerColor(playerid,CL_KNALLROT);
    if(states==0)
    {
    states = 1;
    StopAudioStreamForPlayer(playerid);
    SendClientMessage(playerid,CL_WHITE,"INFO: Du Spawnst an der Adminbase. Gehe Admin-On-Duty mit /aduty.");
    SetPlayerPos(playerid,1022.8530,-3960.8057,2.7001);

    return 1;
    }
    return 1;
    }
    return 1;
    }



    wie baue ich da die abfrage ein in welcher frak er ist?

    2 warnings shadows a preceding level


    ocmd:cspawn(playerid,params[])
    {
    if(sInfo[playerid][alevel]>=7)
    {
    if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
    {
    new vID;
    //Hier kannst du jetzt wie oben reinschreiben was passiert wenn man diesen Befehl aufruft.
    if(sscanf(params,"i",vID))return SendClientMessage(playerid,CL_WHITE,"Aussage: /cspawn Fahrzeug--->[ID]"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
    new Float:X,Float:Y,Float:Z,Float:ROTA;
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,ROTA);
    new vehicle;//----------->daa
    vehicle=CreateVehicle(vID,X,Y,Z,ROTA,-1,-1,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
    PutPlayerInVehicle(playerid,vehicle,0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
    return 1;
    }
    }
    SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
    return 1;
    }



    ocmd:acar(playerid,params[])
    {
    new vID;
    new Float:X,Float:Y,Float:Z,Float:ROTA,FARB1,FARB2;
    static vehicle[MAX_PLAYERS];
    static acarexist[MAX_PLAYERS];//-------->da
    new Text3D:VehicleAdminName[MAX_PLAYERS];
    if(sInfo[playerid][alevel] >= 2)
    if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
    {
    if(acarexist[playerid] == 1)
    {
    SendClientMessage(playerid,CL_HGRÜN,"Admin-Car gelöscht");
    DestroyVehicle(vehicle[playerid]);
    Delete3DTextLabel(VehicleAdminName[playerid]);
    acarexist[playerid] = 0;
    return 1;
    }
    else if(acarexist[playerid]==0)
    {
    if(sscanf(params,"iii",vID,FARB1,FARB2))return SendClientMessage(playerid,CL_KNALLROT,"INFO: /acar Fahrzeug--->[ID] Farbe 1 Farbe 2"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
    new str[128];
    new a_level;
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,ROTA);
    vehicle[playerid] = CreateVehicle(vID,X,Y,Z,ROTA,FARB1,FARB2,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
    PutPlayerInVehicle(playerid,vehicle[playerid],0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
    a_level=sInfo[playerid][alevel];
    format(str,sizeof(str),"%s Car von %s",a_rang[a_level],SpielerName(playerid));
    VehicleAdminName[playerid] = Create3DTextLabel(str,CL_HGRÜN,X,Y,Z,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
    Attach3DTextLabelToVehicle(VehicleAdminName[playerid],vehicle[playerid],0,-1.3,0.7);//30.0,40.0,50.0
    SetVehicleNumberPlate(vehicle[playerid],"MVS-ADMIN");//------>hier gehts nicht
    SetVehicleToRespawn(vehicle[playerid]);

    SendClientMessage(playerid,CL_HGRÜN,"Admin-Car erstellt ");
    PutPlayerInVehicle(playerid,vehicle[playerid],0);
    acarexist[playerid] = 1;
    return 1;
    }

    }
    SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
    return 1;
    }

    ocmd:acar(playerid,params[])
    {
    new vID;
    new Float:X,Float:Y,Float:Z,Float:ROTA,FARB1,FARB2;
    static vehicle[MAX_PLAYERS];
    static acarexist[MAX_PLAYERS];
    new Text3D:VehicleAdminName[MAX_PLAYERS];
    if(sInfo[playerid][alevel] >= 2)
    if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
    {
    if(acarexist[playerid] == 1)
    {
    SendClientMessage(playerid,CL_HGRÜN,"Admin-Car gelöscht");
    DestroyVehicle(vehicle[playerid]);
    Delete3DTextLabel(VehicleAdminName[playerid]);
    acarexist[playerid] = 0;
    return 1;
    }
    else if(acarexist[playerid]==0)
    {
    if(sscanf(params,"iii",vID,FARB1,FARB2))return SendClientMessage(playerid,CL_KNALLROT,"INFO: /acar Fahrzeug--->[ID] Farbe 1 Farbe 2"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
    new str[128];
    new a_level;
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,ROTA);
    vehicle[playerid] = CreateVehicle(vID,X,Y,Z,ROTA,FARB1,FARB2,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
    PutPlayerInVehicle(playerid,vehicle[playerid],0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
    a_level=sInfo[playerid][alevel];
    format(str,sizeof(str),"%s Car von %s",a_rang[a_level],SpielerName(playerid));
    VehicleAdminName[playerid] = Create3DTextLabel(str,CL_HGRÜN,X,Y,Z,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
    Attach3DTextLabelToVehicle(VehicleAdminName[playerid],vehicle[playerid],0,-1.3,0.7);//30.0,40.0,50.0
    SetVehicleNumberPlate(vehicle[playerid],"MVS-ADMIN");//------>hier gehts nicht
    SetVehicleToRespawn(vehicle[playerid]);

    SendClientMessage(playerid,CL_HGRÜN,"Admin-Car erstellt ");
    PutPlayerInVehicle(playerid,vehicle[playerid],0);
    acarexist[playerid] = 1;
    return 1;
    }

    }
    SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
    return 1;
    }



    der code wo das acar erstellt wird



    ps : Dieser Beitrag wurde bereits 34923085 mal editiert, zuletzt von »ErikSon« (18.08.1998, 18:15)


    wie das?

    Hallo


    ich möchte gerne das normale spieler auto was beim login spawnt beim logout/disconnect wieder löschen da sonst beim login jeweils 1 auto dazu kommt


    der disconnect code im pwn format


    public OnPlayerDisconnect(playerid, reason)
    {
    SetPlayerColor(playerid,CL_GRAU);
    saveplayer(playerid);
    resetplayer(playerid);


    //Spielerautos löschen
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][SID]==0)continue;
    if(cInfo[i][besitzer] != sInfo[playerid][db_id])continue;
    new query[289];

    format(query,sizeof(query),"UPDATE Spielerautos SET X='%f',Y='%f',Z='%f',ROTATION='%f' WHERE DB_ID='%i'",cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],cInfo[i][DB_ID]);
    mysql_function_query(dbhandle,query,false,"","");
    DestroyVehicle(cInfo[i][SID]);
    printf("%i gelöscht",cInfo[i][SID]);
    }
    return 1;
    }

    habs geschafft



    public CountTimer(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid,8.0,2309.1897,-8.4204,26.7422))//bankkoordinaten
    {
    new bankraubgeld = random(5000);
    new string[128];
    format(string,sizeof(string),"Du hast für den Bankraub %i$ erhalten pro Minute erhälst du weiter geld.",bankraubgeld);
    printf("%i geld",bankraubgeld);
    printf("Spieler hat %i$ erhalten!",bankraubgeld);
    GivePlayerMoney(playerid,bankraubgeld);
    return 1;
    }
    SCM(playerid,CL_KNALLROT,"INFO: Der Bankraub wurde abgebrochen da du nicht mehr in der Bank bist!");
    sInfo[playerid][geld] = GetPlayerMoney(playerid);
    stat = 0;
    return 1;
    }

    das wiki habe ich gelesen kein erfolg


    das ist das bisher



    public CountTimer(playerid)
    { //Callback
    Bankraub ++;
    if(IsPlayerInRangeOfPoint(playerid,8.0,2309.1897,-8.4204,26.7422))//bankkoordinaten
    {
    new bankraubgeld = random(5000);
    printf("%i geld",bankraubgeld);
    if(Bankraub == 1)return GivePlayerMoney(playerid,bankraubgeld);
    else if(Bankraub == 0) return GivePlayerMoney(playerid,bankraubgeld);
    else if(Bankraub == 2)return GivePlayerMoney(playerid,bankraubgeld);
    return 1;
    }
    SCM(playerid,CL_KNALLROT,"INFO: Der Bankraub wurde abgebrochen da du nicht mehr in der Bank bist!");
    return 1;
    }



    dazu der log


    [22:26:40] 4574 geld
    [22:26:41] 2849 geld
    [22:26:42] 2943 geld
    [22:26:43] 301 geld
    [22:26:44] 4793 geld
    [22:26:45] 3715 geld
    [22:26:46] 1933 geld
    [22:26:47] 420 geld
    [22:26:48] 4895 geld
    [22:26:49] 2533 geld
    [22:26:50] 2657 geld
    [22:26:51] 2834 geld
    [22:26:52] 4887 geld
    [22:26:53] 4703 geld



    aber das ist bei einmaligem eingeben aber das geld bekomme ich nicht alles

    Bankraubsystem jemanden zufällig pro minute in einem bestimmten rahmen geld geben wenn er noch in der bank ist
    aber das funktioniert bei mir nicht also das system


    Da wo 1000 und 5000 dollar stehen soll eine zufallszahl hin die zwischen 10 und 5000 dollar liegen soll



    public CountTimer(playerid)
    { //Callback
    Bankraub ++;
    if(IsPlayerInRangeOfPoint(playerid,8.0,2309.1897,-8.4204,26.7422))
    {
    if(Bankraub == 1)return GivePlayerMoney(playerid,1000);
    else if(Bankraub == 2)return GivePlayerMoney(playerid,5000);
    return 1;
    }
    return 1;
    }

    enum buildingsEnum{
    Float:b_x,
    Float:b_y,
    Float:b_z,
    Float:b_ix,
    Float:b_iy,
    Float:b_iz,
    b_interior
    }


    und ja du irrst dich



    ich löse mal auf


    folgende problembehandlung


    Befehl getvirtualworld
    dann die virtuelle welt -->indemfall war sie 2 auf 2 geändert
    AddStaticPickup siehe oben benutzt und die Coordinaten eingefügt



    Danke an alle die helfen


    (problembehandlung für anfänger)
    :D