Beiträge von Martin08

    //EDIT: Wiekann ich amchen das wenn spieler pickup geht das er da z.B Waffen kriegt ^^



    new WaffenPickup;


    public OnGameModeInit()
    {
    WaffenPickup = CreatePickup(ModelID,spawnttype, XPos,YPos,ZPos,-1); //Modellid ist was für ein Pickup; Spawntype ist wie es spawnt, also ob es verschwinden soll, wenn du es findest. Für mehr Infos such ma in google: CreatePickup samp/wiki
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == WaffenPickup)
    {
    GivePlayerWeapon(playerid,Weaponmodellid, Ammu); //ModellID findeste auch wieder mit google, Ammu = Munition.
    GivePlayerWeapon(playerid,Weaponmodellid, Ammu);//.. immer so weiter, kommt halt drauf an wie viele Waffen du vergeben willst.
    //[...]
    }
    return 1;
    }


    müsste eigentlich so gehen.

    Ja xD dann schau dir mal an wie es soo ungefääähr aussehen muss, ich weiß leider nur nich genau wie, deswegen brauch ich ja hilfe, wie man das Car nach meinem System löscht.


    /carinfo -> ID rausbekommen funktioniert, wenn ichs jez löschen will löschts nur die ini das Car IG bis zum nöchsten GMX aber net...



    EDIT:
    Kann mir keiner helfen :(

    delcar an sich geht bei mir ja^^
    aber ich brauch das ja so angepasst, das es auch bei mir das Car löscht(also die Vehicles[carID][CarIDs]) im mom wird bei mir ja die file gelöscht nur halt IG ist das Car noch da. Nach m GMX isses dann natürlich weg, wäre aber trotzdem besser, wenns ig auch direkt gelöscht wäre.

    is eig. relativ simpel:


    dcmd(delcar,6,cmdtext);


    dcmd_delcar(playerid,params[])
    {
    #pragma unused params
    new carID = GetPlayerVehicleID(playerid);
    new str[256];
    if(IsPlayerInAnyVehicle(playerid))
    {
    DestroyVehicle(carID);
    SendClientMessage(playerid, Befehl, "Fahrzeug gelöscht!");
    }
    return 1;
    }


    Müsste eigendlich so gehen ;)

    Hi hab das Problem, das mein delcar nicht richtig funzt.


    public OnGameModeInit()
    new str[256];
    new tmp[256];
    for(new count;count<MAX_VEHICLES;count++)
    {
    format(str, sizeof(str),"%d.ini",count);
    if(dini_Exists(str))
    {
    new Float:x,Float:y,Float:z,Float:a,model,carid;
    [...]
    tmp = dini_Get(str,"CarID");
    carid = strval(tmp); //hab hier nicht die carIDs von sa-mp vergebenen


    new Car = CreateVehicle(model,x,y,z,a,-1,-1,6000000);

    Vehicles[Car][CarIDs] = carid;
    }


    und der /delcar sieht so aus, File wird zwar gelöscht, aber IG bleibt das Auto immer drinne.


    dcmd_delcar(playerid,params[])
    {
    new
    ID;
    if(sscanf(params, "d",ID))
    {
    return SendClientMessage(playerid,dunklesrot,"/delcar [CarID]");
    }
    else
    {
    new carid = GetPlayerVehicleID(ID);


    format(str, sizeof(str),"%d.ini",ID);
    if(dini_Exists(str))
    {
    dini_Remove(str);
    DestroyVehicle(Vehicles[carid][CarIDs]);
    SendClientMessage(playerid, dunklesrot, "Fahrzeug gelöscht!");
    }
    }
    }
    }
    return 1;
    }


    Für Hilfe wäre ich unendlich dankbar :D


    MfG Martin08 :thumbup:

    hab jez ma


    stock GetPlayerID(const playername[], partofname=0)
    {
    new i;
    new playername1[MAX_STRING];
    for (i=0;i<MAX_PLAYERS;i++)
    {
    if (IsPlayerConnected(i))
    {
    GetPlayerName(i,playername1,sizeof(playername1));
    if (strcmp(playername1,playername,true)==0)
    {
    return i;
    }
    }
    }
    new correctsigns_userid=-1;
    new tmpuname[MAX_STRING];
    new hasmultiple=-1;
    if(partofname)
    {
    for (i=0;i<MAX_PLAYERS;i++)
    {
    if (IsPlayerConnected(i))
    {
    GetPlayerName(i,tmpuname,sizeof(tmpuname));
    if (strfind(tmpuname,partofname,true)==0)
    {
    hasmultiple++;
    correctsigns_userid=i;
    }
    if (hasmultiple>0)
    {
    return -2;
    }
    }
    }
    }
    return correctsigns_userid;
    }


    unten ins script reingemacht.


    es kommt aber


    error 035: argument type mismatch (argument 2)


    zeile 26

    warum nicht einfach


    if(pickupid == funrace)
    {
    SendClientMessage(playerid,0x33AA33AA,"Du hast die Event Fahrzeuge gespawnt.");
    CreateVehicle(434,432.1020,2483.5161,16.4573,88.1765,1,1); // Event 1
    CreateVehicle(434,432.2517,2487.1040,16.4578,91.2852,1,1); // Event 2
    CreateVehicle(434,432.5056,2490.6140,16.4882,92.2552,1,1); // Event 3
    CreateVehicle(434,432.6092,2494.4954,16.4642,88.1814,1,1); // Event 4
    CreateVehicle(434,432.8533,2497.9409,16.4602,89.9019,1,1); // Event 5
    CreateVehicle(434,432.7490,2501.6838,16.4678,87.8413,1,1); // Event 6
    CreateVehicle(434,432.7494,2505.6350,16.4657,95.9788,1,1); // Event 7
    CreateVehicle(434,432.5109,2509.0798,16.4545,94.5771,1,1); // Event 8
    CreateVehicle(434,432.4758,2512.6721,16.4544,97.5851,1,1); // Event 9
    CreateVehicle(434,432.4116,2515.9670,16.4595,95.5877,1,1); // Event 10
    return 1;
    }


    ?

    OMG lol, Vielen, vielen dank!


    das ich darauf net selbs kam xD. ich erinner mich, vorhin hatte ich auch iwie sowas gemacht, nur hatte ich da noch iwas mit tmp = dini_Get.....


    Bin auch ziemlich müde ka.


    Aber vielen dank nochmal :D

    ich hab das so kompliziert, weil ich nen cmd mit /givejob <name> gemacht hatte,


    ich habe dann in einer File gesaved (weil mir das mit dem enum text nich bekannt war) was ich geschreiben hab (also der <name>).


    dann sollte sich n menü öffnen
    ich wähl den beruf aus und es sollte in die File mit dem <Name>.


    nur ich bekomms nicht hin, das es den Name halt speichert


    so sieht der cmd aus:


    dcmd_givejob(playerid,params[])
    {
    if(Player[playerid][Level] >= 3)
    {
    if(!strlen(params))
    {
    return SendClientMessage(playerid,dunklesrot,"/givejob [name]");
    }
    else
    {


    new ThePlayer[MAX_PLAYER_NAME],
    string[256];


    GetPlayerName(playerid,ThePlayer,sizeof(ThePlayer));


    format(string,sizeof(string),Speicher,ThePlayer);
    if(dini_Exists(string))
    {
    dini_Set(string,"Geschrieben",params);
    }
    // hier hatte ich eig. stehen : Player[playerid][geschriebenes] = params; was aber nicht funzte. (error 006: must be assigned to an array)
    ShowMenuForPlayer(givejob,playerid);
    }
    }
    return 1;
    }

    Hi wollte mal fragen ob man vll. mit enum auch gespeichere wörter speichern und anzeigen kann.

    GetPlayerName(pID,GivePlayer,sizeof(GivePlayer));
    GetPlayerName(playerid,ThePlayer,sizeof(ThePlayer));


    format(string1,sizeof(string1),Speicher,ThePlayer);


    tmp = dini_Get(string1,"Geschrieben");
    geschriebenes = strval(tmp);
    Player[playerid][givejobname] = geschriebenes;


    so speichert es es ja nur Zahlen, bzw ja oder nein, wenn ich das richtig verstanden habe.


    aber ist es auch möglich, das man das "Geschriebene" auch speichern kann?
    wenn ja wäre Hilfe voll cool, danke :D


    MfG Martin08 :thumbup:


    EDIT: habe den thread nochmal n bissl geändert...

    Habs eben nochmal versucht.


    Beim connecten erstellt es ne ini mit den daten:


    Name=Martin08
    Ip=...
    Registered=-1
    Password=0
    Level=0
    Wired=0
    Jailed=0


    nachm register siehts genauso aus. keine veränderung. N fehler hatte ich beim kopieren auch nicht, ganz sicher.

    Hi ich habe hier das Tutorial gefunden:
    Klick


    Wäre eigendlich Perfekt, da es dcmd is usw.
    Nur irgentwie funzt das nicht ganz.


    Habs einmal versucht, und ein bisschen umgeschrieben, da hat gabs bugs beim Registrieren:
    beim /register wurde in der .ini file nicht das -1 auf 1 geändert. es wird lediglich beim connecten die ini erstellt.


    Auch beim nochmal normalen copy and paste, (also alles wie im Tut) geht es nicht.


    Fande das Tutorial halt perfekt, weil mit dcmd geschrieben wurde und es auch noch ausgebaut werden könnte.


    Habt ihr da auch Bugs oder liegt das vll an 0.3, weil ich habs jez echt öfters versucht.
    Und wenn jemand den Bug findet, bzw. warum es beim register/login usw. die .ini nicht ändert, könnte er das vll hier erklären bzw. richtig hinschreiben?


    Danke schonmal im Vorraus
    MfG Martin08 :D

    Vielen Dank, das funzt so :thumbup:


    Aber ich hab es schonmal in nem anderem Thema erwähnt (hat leider niemand geantwortet), ob es möglich wäre, die als CarID ne bestimmte ini.worauf das car gesaved is anzuzeigen:


    im Moment mache ich n car so:
    {
    new id=strval(params);
    if(!strlen(params) || !IsNumeric(params))
    {
    return SendClientMessage(playerid,COLOR_RED,"/createcar [carID]");
    }
    else
    {
    new Float:x, Float:y, Float:z, Float:a;
    GetPlayerFacingAngle(playerid,a);
    GetPlayerPos(playerid, x, y, z);
    GetXYInFrontOfPlayer(playerid,x,y, 4.0);
    new Car = CreateVehicle(id, x, y, z+2,a+90,1,1,0);
    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //new carID = GetPlayerVehicleID(Car);
    new carModelID = GetVehicleModel(Car);
    new Float:carPosX, Float: carPosY, Float: carPosZ, Float: carZAngle;
    new Counter = freeslot(1000);
    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    GetVehiclePos(Car, carPosX, carPosY, carPosZ);
    GetVehicleZAngle(Car, carZAngle);


    format(carFile,sizeof(carFile),"%d.ini",Counter);
    //format(carFile,sizeof(carFile),"%d.ini",Car);
    if(!dini_Exists(carFile))


    Das hier ist by [SRG]Bullet:
    stock freeslot(max)
    {
    new str[32];
    for(new i=0; i<max; i++)
    {
    format(str, sizeof(str), "%d.ini",i);
    if(!fexist(str)) return i;
    }
    return 1;
    }


    Kann man diesen filename nun auch bei /carinfo anzeigen lassen? Bzw. ist das überhaupt iwie möglich. Wenn s da ne möglichkeit gäbe, wäre ich euch ma echt richtig dankbar.