Beiträge von KeksOfDeath

    //ganz nach oben:
    new Float:aax[MAX_PLAYERS], Float:aay[MAX_PLAYERS], Float:aaz[MAX_PLAYERS], hat[MAX_PLAYERS], inte[MAX_PLAYERS];
    //da, wo du ihn killst
    GetPlayerPos(playerid,aax[playerid],aay[playerid],aaz[playerid]);
    inte[playerid]=GetPlayerInterior(playerid);
    hat[playerid]=1;
    //OnPlayerSpawn:
    if(hat[playerid]==1) {
    SetPlayerPos(playerid,aax[playerid],aay[playerid],aaz[playerid]);
    hat[playerid]=0;
    SetPlayerInterior(playerid,inte[playerid]); }
    PS: 1600. Post

    Häh? Der Befehl ist dafür da, um ein Fahrzeug zu reparieren und ncihit, um es so abzuspeichern
    Was du meinst wäre sowas:
    if(strcmp(cmdtxt,"/fixieren",true)==0) {
    if(GetPlayerState(playerid)==2) {
    new Float:x, Float:y, Float:z, aid=GetPlayerVehicleID(playerid), mid=GetVehicleModel(aid), Float:za;
    GetVehiclePos(aid,x,y,z);
    GetVehicleZAngle(aid,za);
    DestroyVehicle(aid);
    aid=CreateVehicle(mid,x,y,z,za,-1,-1,-1);
    PutPlayerInVehicle(playerid,aid,0); }
    return 1;
    }

    Immernoch falsch^^
    //ganz nch oben:
    forward Nachrichten();
    //ganz nach unten:
    public Nachrichten() {
    new texte[]= { "text1","text2","text3" };//kannst selbst erweitern oder kürzen
    new a=random(sizeof(texte));
    SendClientMessageToAll(FARBE,texte[a]);
    return 1;
    }
    //OnGameModeInit:
    SetTimer("Nachrichten",600000,1);

    Das ist eine unnötige Abfrage, wenn er nicht connected ist, wie soll er den Befehl dann eingeben?
    PS: Die Abfrage überprüft nicht, ob er eingeloggt ist, sondern ob der Spieler aufm Server ist

    Nochmal neu hingeschrieben, hatte ein Denkfehler, der ist jetzt behoben...
    Dafür ist dort jetzt ein Scriptfehleru nd ich bkomme ihn nicht behoben, ich schildere ihn mal:
    Auszug ausm Script:
    new s[128];
    if(gla2==0) {
    printf("5 z: %d gla2: %d",z,gla2);
    format(s,sizeof(s),"%s",text);//in dieser Zeile wird z=0
    printf("7 z: %d gla2: %d",z,gla2); }
    else {
    printf("5 z: %d gla2: %d",z,gla2);
    format(s,sizeof(s),"%s",text[gla2+z]);//in dieser Zeile wird z=0
    printf("7 z: %d gla2: %d",z,gla2); }
    Auszug aus der Log

    Zitat

    [14:06:40] 5 z: 1 gla2: 0
    [14:06:40] 7 z: 0 gla2: 0
    Und für den zweiten Durchlauf:
    [14:06:40] 5 z: 1 gla2: 125
    [14:06:40] 7 z: 0 gla2: 125


    Ich habe ja die Zeilen markiert, in dieser Zeile "format(s..." überschreibt sich "z" einfach undi ch weiß nicht, warum


    Dieser Scriptfehler hat aber keine großen Auswirkungen, wenn der Text länger als 256 Zeichen ist, dann ist anfangs ein Leerzeichen zu viel


    PS: Dennoch möcht ich mich für das nette Feedback bedanken :love:

    Das siehste ja Beispiele:
    Register System


    PS: dini_Get - liest einen Text aus der Datei | dini_Int - liest ein Intergerwert aus der Datei | dini_Float - liest einen Float (Gleitkommawert) aus der Datei
    dini_Set - schreibt einen Text in die Datei | dini_IntSet - schreibt ein INtergerwert in die Datei | dini_FlaotSet - schreib einen Float in die Datei

    Dafür musst mal den public ein bissl verändern (ich glaub, dass es so ist, sowas hat noch nie jemand gefragt^^)
    //ganz nach oben:
    new darfconnecten[MAX_PLAYERS];
    //OnPlayerConnect:
    public OnPlayerConnect(playerid) {
    if(darfconnecten[playerid]==0) {
    GameTextForPlayer(playerid,"Objekte werden geladen",5000,5);
    SetTimerEx("OnPlayerConnect",5000,0,"d",playerid);//in 5 sekunden darf er erst connecten
    darfconnecten[playerid]=1;
    return 0; }
    return 1;
    }
    //ONPlayerDisconnect:
    darfconnecten[playerid]=0;
    Bin mir halt nicht sicher, obs so funktioniert

    Lieber mal so (beim anderen hätte jeder Wanteds vergeben können):
    if(!strcmp(strget(cmdtext,0),"/su"))
    {
    if(gTeam[playerid]==TEAM_POLICE) {
    if(!strlen(strget(cmdtext,1))) return SendClientMessage(playerid,COLOR_GREY,"Benutze: /su [ID]");
    new verbrecher = strval(strget(cmdtext,1)),
    wanted = GetPlayerWantedLevel(verbrecher);
    SetPlayerWantedLevel(verbrecher,wanted+1);
    SendClientMessage(verbrecher,COLOR_RED,"Du hast ein Verbrechen begangen (+1Wanted)"); }
    else { SendClientMessage(playerid,COLOR_GREY," Du bist kein Polizist!"); }
    return 1;
    }

    Es ist zwar nur ein kleiner Code, aber dennoch dachte ich mir, ihn mal zu posten...
    Kennst du es auch, wenn du Nachrichten hast, wo du nicht weißt, ob sie zu lang sind?
    Ich persönlich habe dann immer zu viele Nachrichten versendet, die nebenbei gesehen noch zu kurz waren (wie auch bei unserer automatischen Fahrschule)
    Da dacht ich mir, entwickel mal ne Funktion, die die Texte dann "durchschneidet" und erst, wenn 128 Zeichen erreicht sind, so viel gibt das Textfeld von sa:mp her, sendet er den Textu nd packt das übrige in einen neuen Text.
    Dieser Code schneidet den Text dann noch passend in Stücke, sodass kein zusammenhängendes Wort, esseidern es ist länger als 128 Zeichen, kaputt geht, ich habe im Script jetzt mal das stehen:
    LangeNachricht(playerid,blau,"ajgklajklgajgklaj aklgjalkgjalkgjal jaglk ajlkgjalkgjalkgjalkgja aklgjaklgjaklgjalk agkljaklgjaklgjakl aklgjaklgjaklgjaklgj akgjaklgjaklgjaklgj aklgjaklgjalkgjal akgjaklgjaklgjalkg aklgjalkgajkl gajklgakajaklg klagjaklgjaklgjal jalkgja ljaglkgjaklgjalkgjalkgj aklgjaklgjalkgjalk agkjalkgjalkgjalkgj agkjalkgjaklgjaklgj akgjalkgjalkgjalkgj lajglkajglkagjla alagkjalkga",0);
    Und die Funktion macht mir das daraus:


    Zur Funktion:
    //ganz nach unten:
    stock LangeNachricht(playerid,farbe,text[],an=0) {
    new gla, st=strlen(text), gla2;
    hier: {
    if(st>128) {
    new s[128];
    if(gla2==0) {
    format(s,sizeof(s),"%s",text); }
    else {
    format(s,sizeof(s),"%s",text[gla2+1]); }
    for(new i=0; i<128; i++) {
    if(s[i]==' ') {
    gla=i; }}
    format(s[gla],sizeof(s)," ");
    if(an==0) {
    SendClientMessage(playerid,farbe,s); }
    else {
    SendClientMessageToAll(farbe,s); }
    st-=gla;
    gla2+=gla;
    goto hier; }
    }
    if(st<=128) {
    if(gla2>=1) {
    new s[128];
    format(s,sizeof(s),"%s",text[gla2+1]);
    if(an==0) {
    SendClientMessage(playerid,farbe,s); }
    else {
    SendClientMessageToAll(farbe,s); }
    }
    else {
    if(an==0) {
    SendClientMessage(playerid,farbe,text); }
    else {
    SendClientMessageToAll(farbe,text); }
    }
    }
    return 1;
    }
    Der Spieler würde diese Nachricht jetzt ohne Probleme zugesendet bekommen


    //EDIT: Funktion 3 mal bearbeitet
    Was ist neu?
    Es wurde ein "an" hinzugefügt
    LangeNachricht(playerid,FARBE,text[],an);
    Wenn man bei "an" eine 0 (oder gar nichts) einträgt, wird diese Nachricht an eine Person, der playerid gesendet, wenn man bei "an" 1 einträgt, wird die Nachricht an alle gesendet (bei "playerid" trägt man dann irgendwas ein, wird da ja nicht mehr gebraucht)