Beiträge von KeksOfDeath

    Um nochmal auf das /hi zurückzukommen:
    if(strcmp(cmdtext,"/hi",true)==0) {
    new name[MAX_PLAYER_NAME], s[100];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"%s sagt hi zu allen",name);
    SendClientMessageToAll(FARBE,s);
    return 1;
    }
    Zum Autospawn ohne andere Funktionen:
    Du darfst den cmdnamen hier nicht ändern, sofern du die übrigen Komponenten nicht mitänderst, weil er sonst nicht mehr funktioniert
    if(strcmp(cmdtext,"/auto",true,5)==0) {
    if(!strlen(cmdtext[6])) return SendClientMessage(playerid,FARBE,"/auto ID");
    new mid=strval(cmdtext[6]);
    if(mid>=400 && mid<=611) {
    new Float:x, Float:y, Float:z, Float:za, gla;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,za);
    gla=CreateVehicle(mid,x+2,y,z,za,-1,-1,-1);
    LinkVehicleToInterior(gla,GetPlayerInterior(playerid)); }
    else { SendClientMessage(playerid,FARBE,"ID muss zwischen 400 und 611 liegen"); }
    return 1;
    }
    Es ist zwar auch ohne Funktionen wie strtok, strget, dcmd, sscanf möglich, dennoch empfehle ich dir solche Funktionen zu verwenden, da es viel einfacher ist

    Dann grenz ma den Fehler ein, kommentier mal zum Anfang alle deine Autos und probs nochmal, danach alle Pickups und wieder probieren, wenn dann immernoch exe Crash kommt, dann nehm mal alle Objekte raus und probiers nochmal, wenn keins davon hilft, dann guck mal, was bei OnPlayerConnect steht

    Oder man machts anders:
    //ganz nach unten:
    stock PolizeiAuto(aid) {
    new mids[]= { hier trägst du die modelids von den copautos sein, beispiel: "296,297,298,300" };//die " " natürlich weglassen
    for(new i=0; j=sizeof(mids); i<j; i++) {
    if(GetVehicleModel(aid)==mids[i]) { return 1; }}
    return 0;
    }
    //onplayerstatechange:
    new aid=GetPlayerVehicleID(playerid);
    if(PolizeiAuto(aid)) {
    if(wenn erk ein cop ist) {
    RemovePlayerFromVehicle...
    //ja, er darf halt nicht rein

    Du meinst das in etwa so?
    new a=5, s[20];
    format(s,sizeof(s),"a ist zurzeit %d",a);
    SendClientMessage(playerid,FARBE,s);
    //EDIT: Bright war schneller
    PS: @ Bright:
    str hätt nicht not getan:
    printf("%d",somevar);

    dcmd_register(playerid,params[]) {
    if(!strlen(params)) return SendClientMessage(playerid,FARBE,"/register Passwort");
    new name[MAX_PLAYER_NAME], s[20];//sollte die variable "s" zu klein sein, dann mach aus der 20 ne 256
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"%s.ini",name);
    if(!dini_Exists(s)) {
    dini_Create(s);
    new ip[15];
    GetPlayerIp(playerid,ip,sizeof(ip));
    dini_Set(s,"ip",ip);
    dini_IntSet(s,"passwort",udb_hash(params));
    dini_IntSet(s,"kills",0);
    //...
    dcmd_login(playerid,params[]) {
    if(!strlen(params)) return SendClientMessage(playerid,FARBE,"/login Passwort");
    new name[MAX_PLAYER_NAME], s[20], s2[256];//hier ei "s[20]" gilt das gleiche, wie oben
    GetPlayerNmae(playerid,name,sizeof(name));
    format(s,sizeof(s),"%s.ini",name);
    if(dini_Exists(s)) {
    s2=dini_Get(s,"passwort");
    if(strval(s2)==udb_hash(params)) {
    //als beispiel
    kills[playerid]=dini_Int(s,"kills");
    //...
    Du braucsht dafür die Includes "dini" und "dudb"
    Bei diesem System könnt man sich auch des öfteren einloggen, müsstest du dann noch selbst ausbauen

    Beim register:
    new s[15];
    GetPlayerIp(playerid,s,sizeof(s));
    dini_Set(filename"ip",s);
    beim login:
    new s[15];
    GetPlayerIp(playerid,s,sizeof(s));
    dini_Set(filename"ip",s);
    bei onplayerconnect:
    new name[MAX_PLAYER_NAME], s[20], s2[15];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"%s.ini",name);//falls du die dateiendung ini verwendest
    if(dini_Exists(s)) {
    GetPlayerIp(playerid,s2,sizeof(s2));
    if(strcmp(dini_Get(s,"ip"),s2,true)==0) {
    eingeloggt[playerid]=1;//hab ich ma so genannt
    SendClientMessage(playerid,FARBE,"Du wurdest automatisch eingloggt");
    //....