wollte fragen ob es sowas gibt

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • guten tag ich habe mal auf einem server gesehen das man sich autos machen konnte also die auto ids von der liste
    zb 409:limo


    und wen ma nda rein gegangen ist stand oben der besitzer also so


    Willommen zurück maxMusterman...


    wollte fragen ob mir jemand weiter helfen kan
    lg justin

  • Das Autozuerstellen, geht zum beispiel mit folgendem Befehl:


    if(!strcmp(strget(cmdtext, 0), "/v")) {
    if(IsPlayerAdmin(playerid)) {
    if(IsPlayerInAnyVehicle(playerid)) {
    SendClientMessage(playerid,0xFF0000AA,"Du Bist schon in einem Auto!");
    } else
    {
    new autoid = strval(strget(cmdtext, 1));
    new farbe1 = strval(strget(cmdtext, 2));
    new farbe2 = strval(strget(cmdtext, 3));
    if(autoid <= 399) {
    SendClientMessage(playerid,0xFF0000AA,"Sorry, aber die Car ID kenne ich nicht du etwa?");
    }
    if(autoid >= 612) {
    SendClientMessage(playerid,0xFF0000AA,"Sorry, aber die Car ID kenne ich nicht du etwa?");
    }
    else {
    new Float:x, Float:y, Float:z, Float:za, gla;
    GetPlayerPos(playerid,x,y,z); GetPlayerFacingAngle(playerid,za); gla = CreateVehicle(autoid,x,y,z,za,farbe1,farbe2,-1); PutPlayerInVehicle(playerid,gla,0);
    }
    }
    }
    return 1;
    }


    Und das wegen der Willkommensmessage, da musst du dann unter OnPlayerEnterVehicle mit getplayername, erstmal den name holen und dann mit einem String in SendClientmnessage, und %s den senden...hoffe das war das was du brauchst und du verstehst was ich meine ;D
    Problem dabei ist nur, das jeder der dann das Auto betritt die message bekommt und nicht nur der besitzer, da ich ja nicht weiß was dein Carsystem ist^^


    // edit: in pawn Code gesetzt

  • Gabsch: Mach ihm mal die Klammern nicht so hinter die Klammer-Zu, das ist für Neulinge irritierend.


    /EDIT:
    if(!strcmp(strget(cmdtext, 0), "/v"))
    {
    if(IsPlayerAdmin(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    SendClientMessage(playerid,0xFF0000AA,"Du Bist schon in einem Auto!");
    }
    else
    {
    new autoid = strval(strget(cmdtext, 1));
    new farbe1 = strval(strget(cmdtext, 2));
    new farbe2 = strval(strget(cmdtext, 3));
    if(autoid <= 399)
    {
    SendClientMessage(playerid,0xFF0000AA,"Sorry, aber die Car ID kenne ich nicht du etwa?");
    }
    if(autoid >= 612)
    {
    SendClientMessage(playerid,0xFF0000AA,"Sorry, aber die Car ID kenne ich nicht du etwa?");
    }
    else
    {
    new Float:x, Float:y, Float:z, Float:za, gla;
    GetPlayerPos(playerid,x,y,z); GetPlayerFacingAngle(playerid,za); gla = CreateVehicle(autoid,x,y,z,za,farbe1,farbe2,-1); PutPlayerInVehicle(playerid,gla,0);
    }
    }
    }
    return 1;
    }
    So in etwa.

    Einmal editiert, zuletzt von TutNichts ()

  • Ok hab mich jetzt bissl näher damit beschäftigt
    Also mit /v [FahrzeugID] Fahrzeug spawnen Farben per Random
    Insgesamt kann man sich 3 Autos spawnen bis die slots alle sind
    Wenn ein Auto kaputt geht wir der slot auf dem es sitzt wieder frei
    falls man es nicht mehr findet mit /ruf [SLotID(1-3)]
    so und wenn man keine Lust mehr auf das auto hat /delslot [SlotID(1-3)] wird vom server gelöscht und die owner variabel wird resettet
    Wenn man einsteigt steht wenn es das eigene ist willkommen zurück: der Name
    Falls man nicht "Owner" ist steht da Dieses Fahrzeug gehört nicht ihnen.Es gehört:Der Name


    Also beginnen wir mal

    Zuerst:


    new Auto1[MAX_PLAYERS];
    new Auto3[MAX_PLAYERS];
    new Auto2[MAX_PLAYERS];
    new slot[MAX_PLAYERS];
    new Auto11[MAX_PLAYERS];
    new Auto31[MAX_PLAYERS];
    new Auto21[MAX_PLAYERS];


    das unter die includes


    dann:

    Auto1[playerid]=999;
    Auto2[playerid]=999;
    Auto3[playerid]=999;


    unter public OnPlayerConnect(playerid)


    danach
    DestroyVehicle(Auto11[playerid]);
    DestroyVehicle(Auto21[playerid]);
    DestroyVehicle(Auto31[playerid]);


    Bei public OnPlayerDisconnect(playerid)


    Nun wenn es Kaputt geht muss der Slot wieder frei werden.Also:


    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(vehicleid == Auto11[i])
    {
    DestroyVehicle(Auto11[i]);
    Auto1[i]=999;
    SendClientMessage(i,0xddaaffff,"Slot 1 ist nun frei");
    }
    else if(vehicleid == Auto21[i])
    {
    DestroyVehicle(Auto21[i]);
    Auto2[i]=999;
    SendClientMessage(i,0xddaaffff,"Slot 2 ist nun frei");
    }
    else if(vehicleid == Auto31[i])
    {
    DestroyVehicle(Auto31[i]);
    Auto3[i]=999;
    SendClientMessage(i,0xddaaffff,"Slot 3 ist nun frei");
    }
    }
    }


    Das unter public OnVehicleDeath(vehicleid,killerid)


    Nun zum CMD:


    if(strcmp(strget(cmdtext,0),"/v",true)==0)
    {
    new vID = strval(strget(cmdtext,1));
    if( vID <= 611 && vID >= 400)
    {
    new Float:X,Float:Y,Float:Z,Float:Roat;
    new rand1=random(10);
    new rand2=random(10);
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,Roat);
    if(Auto1[playerid]== 999)
    {
    Auto11[playerid]=CreateVehicle(vID,X,Y,Z,Roat,rand1,rand2,-1);
    PutPlayerInVehicle(playerid,Auto11[playerid],0);
    slot[playerid]=1;
    new string[128];
    Auto1[playerid]=1;
    format(string,sizeof(string),"Sie haben ein Auto auf Slot %i gespawnt 1.Farbe: %i 2.Farbe: %i",slot[playerid],rand1,rand2);
    SendClientMessage(playerid,0xddaaffff,string);
    }
    else if(Auto2[playerid]== 999)
    {
    Auto21[playerid]=CreateVehicle(vID,X,Y,Z,Roat,rand1,rand2,-1);
    PutPlayerInVehicle(playerid,Auto21[playerid],0);
    slot[playerid]=2;
    new string[128];
    Auto2[playerid]=1;
    format(string,sizeof(string),"Sie haben ein Auto auf Slot %i gespawnt 1.Farbe: %i 2.Farbe: %i",slot[playerid],rand1,rand2);
    SendClientMessage(playerid,0xddaaffff,string);
    }
    else if(Auto3[playerid]== 999)
    {
    Auto31[playerid]=CreateVehicle(vID,X,Y,Z,Roat,rand1,rand2,-1);
    PutPlayerInVehicle(playerid,Auto31[playerid],0);
    Auto3[playerid]=1;
    slot[playerid]=3;
    new string[128];
    format(string,sizeof(string),"Sie haben ein Auto auf Slot %i gespawnt 1.Farbe: %i 2.Farbe: %i",slot[playerid],rand1,rand2);
    SendClientMessage(playerid,0xddaaffff,string);
    }
    else
    {
    SendClientMessage(playerid,0xffaaffaa,"Sie Haben sich schon 3 Autos gerufe /ruf[1-3]um es zu holen");
    }
    return 1;
    }
    else
    {
    SendClientMessage(playerid,0xffaaffaa,"Benutze /v [VehicleID(400-611)]");
    }
    return 1;
    }
    if(strcmp(strget(cmdtext,0),"/delslot",true)==0)
    {
    new slot1 = strval(strget(cmdtext,1));
    if(slot1 == 1){
    if(Auto1[playerid]!=999){
    DestroyVehicle(Auto11[playerid]);
    Auto1[playerid]=999;
    SendClientMessage(playerid,0xddaaffff,"Slot 1 ist nun frei");
    }
    else
    {
    SendClientMessage(playerid,0xddaaffff,"Slot 1 ist schon frei");
    }
    }
    else if(slot1 == 2){
    if(Auto1[playerid]!=999){
    DestroyVehicle(Auto21[playerid]);
    Auto2[playerid]=999;
    SendClientMessage(playerid,0xddaaffff,"Slot 2 ist nun frei");
    }
    else
    {
    SendClientMessage(playerid,0xddaaffff,"Slot 2 ist schon frei");
    }
    }
    else if(slot1 == 3){
    if(Auto1[playerid]!=999){
    DestroyVehicle(Auto31[playerid]);
    Auto3[playerid]=999;
    SendClientMessage(playerid,0xddaaffff,"Slot 3 ist nun frei");
    }
    else
    {
    SendClientMessage(playerid,0xddaaffff,"Slot 3 ist schon frei");
    }
    }
    else
    {
    SendClientMessage(playerid,0xffaaffaa,"Benutze /delslot [Slot (1-3)]");
    }
    return 1;
    }
    if(strcmp(strget(cmdtext,0),"/ruf",true)==0)
    {
    new slot1 = strval(strget(cmdtext,1));
    new Float:X,Float:Y,Float:Z,Float:Roat;
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,Roat);
    if(slot1 == 1)
    {
    if(Auto1[playerid] != 999)
    {
    PutPlayerInVehicle(playerid,Auto11[playerid],0);
    SetVehiclePos(Auto11[playerid],X,Y,Z);
    new string[128];
    format(string,sizeof(string),"Sie haben Slot %i gerufen",slot1);
    SendClientMessage(playerid,0xddaaffff,string);
    }
    else
    {
    SendClientMessage(playerid,0xffaaffaa,"Slot nicht besetzt");
    }
    }
    else if(slot1 == 2)
    {
    if(Auto2[playerid] != 999)
    {
    PutPlayerInVehicle(playerid,Auto21[playerid],0);
    SetVehiclePos(Auto21[playerid],X,Y,Z);
    new string[128];
    format(string,sizeof(string),"Sie haben Slot %i gerufen",slot1);
    SendClientMessage(playerid,0xddaaffff,string);
    }
    else
    {
    SendClientMessage(playerid,0xffaaffaa,"Slot nicht besetzt");
    }
    }
    else if(slot1 == 3)
    {
    if(Auto3[playerid] != 999)
    {
    PutPlayerInVehicle(playerid,Auto31[playerid],0);
    SetVehiclePos(Auto31[playerid],X,Y,Z);
    new string[128];
    format(string,sizeof(string),"Sie haben Slot %i gerufen",slot1);
    SendClientMessage(playerid,0xddaaffff,string);
    }
    else
    {
    SendClientMessage(playerid,0xffaaffaa,"Slot nicht besetzt");
    }
    }
    else
    {
    SendClientMessage(playerid,0xffaaffaa,"Benutze /ruf [Slot (1-3)]");
    }
    return 1;
    }


    Und jetzt das erwünschte Namen anzeigen:
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(vehicleid == Auto21[i]||vehicleid == Auto31[i]||vehicleid == Auto11[i])
    {
    if(IsPlayerConnected(i))
    {
    if(playerid == i)
    {
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(i,pname,sizeof(pname));
    new carstr[128];
    format(carstr,sizeof(carstr),"Willkommen zurück in ihrem Auto: %s",pname);
    SendClientMessage(playerid,0xffaaffaa,carstr);
    }
    else
    {
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(i,pname,sizeof(pname));
    new carstr[128];
    format(carstr,sizeof(carstr),"Das Auto gehört nicht ihnen.Es gehört %s",pname);
    SendClientMessage(playerid,0xffaaffaa,carstr);
    }
    }
    else
    {
    DestroyVehicle(Auto31[i]);
    DestroyVehicle(Auto21[i]);
    DestroyVehicle(Auto11[i]);
    SendClientMessage(i,0xddaaffff,"Owner war offline und wurde daher gelöscht");
    }
    }
    }


    und zum Schluss noch das das mit strget und den befehlen geht einfach nach der letzten Klammer im Script:


    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }



    Hat zwar ein stück gedauert ber hoffe konnte helfen
    Gruß Blackybecks :love: