Beiträge von Hund


    Zitat von »Hund«


    Doch wenn ich nun spawne, dann ist die Kamera irgendwo im nichts....


    genau da SetCameraBehindPlayer(playerid); einfügen ;)

    Ich hab bei meinem schlussendlichen Spawn ja SetCameraBehindPlayer(playerid).
    Das Problem ist nicht der Spawn am Ende. Sondern der "imaginäre Spawn"....
    Der Spieler spawnt ja noch nicht, sondern die Kamera verfolgt einfach den Zug und danach wird er erst gespawnt.
    Und diese Zugverfolgung geht nicht. Da ich nicht den Zugverfolge, sondern die Kamera irgendwo im nichts steht X(



    //Edit:
    Habe gerade herausgefunden, dass es nicht an PlayerSpectateVehicle sondern an der VirtualWorld liegt... :pinch:
    Hab ma die normale Welt genommen und es hat funktioniert...
    Was mache ich nun also mit der VirtualWorld falsch.. X(

    Guten Morgen Community =)


    Ich will auf meinem Reallife-Server, dass wenn man sich registriert, man zuerst mit einem Zug in die Stadt fährt (So als Beginn).
    Deshalb habe ich einen Bot erstellt, welcher einen Zug nach LS fährt.
    Der Bot Connected, sobald sich jemand registriert und danach soll er wieder disconnecten bzw. der Record soll bei jeder Registierung von vorne beginnen.
    Nun habe ich dabei 2 Fragen bzw. Probleme:


    1.Frage:
    Wie kann ich einen Record "neustarten" oder den Bot disconnecten lassen?
    -> Im Moment connected der Bot, sobald sich jemand registrieren muss. (Da er so bestimmt die ganze Strecke fährt). Ansonsten kann es sein, dass der Zug die halbe Strecke bereits gefahren hat und das möchte ich nicht ;)


    Code:

    Spoiler anzeigen
    public OnPlayerConnect(playerid)
    {
    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,botname, sizeof(botname));
    if(!strcmp(botname,"Zugchaffeur", true))
    {
    SpawnPlayer(playerid);
    return 1;
    }
    }
    else
    {
    new spieler[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(spieler,sizeof(spieler),"/Accounts/%s.txt",name);
    if(dini_Exists(spieler))
    {
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Bitte gib dein Passwort ein:","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Bitte gib ein Passwort ein:","Registrieren","Abbrechen");
    ConnectNPC("Zugchaffeur","AnfangZug");
    }
    }

    return 1;
    }


    2.Problem:
    Nun sobald der Spieler "spawnt" soll er den Zug verfolgen und dann kommt ein kleines Intro.
    Später kommt er dann in LS an und spawnt da.
    Die Zugverfolgung habe ich mit PlayerSpectateVehicle ausgeführt. Doch wenn ich nun spawne, dann ist die Kamera irgendwo im nichts....
    Was mache ich falsch?


    Code:

    Spoiler anzeigen

    public OnGameModeInit()
    //NPC-Bot
    AZug = SetVehicleVirtualWorld(AddStaticVehicle(538, -1948.1641,138.9634,25.7109,179.0464, 1, 1),7);

    Spoiler anzeigen
    public OnPlayerSpawn(playerid)
    {
    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,botname,sizeof(botname));
    if(!strcmp(botname,"Zugchaffeur", true))
    {
    SetPlayerVirtualWorld(playerid,7);
    PutPlayerInVehicle(playerid,AZug,0);
    return 1;
    }
    }
    else
    {
    if(Daten[playerid][Registriert] == 0)
    {
    rtext = 1;
    SetPlayerVirtualWorld(playerid, 7);
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectateVehicle(playerid,AZug,SPECTATE_MODE_SIDE);
    rtimer = SetTimer("registrierung",20000,1);
    return 1;
    }

    Spoiler anzeigen
    //Timer
    //Registerierung
    public registrierung(playerid)
    {
    if(rtext == 1)
    {
    SendClientMessage(playerid,weiss," 1 ");
    rtext=2;
    return 1;
    }
    else if(rtext == 2)
    {
    SendClientMessage(playerid,weiss," 2 ");
    rtext=3;
    return 1;
    }
    else if(rtext == 3)
    {
    SendClientMessage(playerid,weiss," 3 ");
    rtext=4;
    return 1;
    }
    else if(rtext == 4)
    {
    TogglePlayerSpectating(playerid, 0);
    SetPlayerVirtualWorld(playerid,1);
    SetPlayerPos(playerid,800.8849,-1349.8745,-0.8978);//Spawnpunkt
    SetPlayerFacingAngle(playerid,321.3059);
    SetCameraBehindPlayer(playerid);
    KillTimer(rtimer);
    rtext= 0;
    Daten[playerid][Registriert] = 1;
    Speichern(playerid);
    return 1;
    }
    return 1;
    }


    gez.
    Hund

    Das hatte ich zu Beginn ja genau so.
    Das Problem ist so, dass das Auto zu "früh" gelöscht wird. Also die Explosion bleibt aus.
    Wenn ich in eine Mauer fahre und das Auto beginnt zu brennen, dann explodiert es auch.
    Wenn es nun auf dem Dach liegt und das Auto beginnt zu brennen, explodiert es nicht, da es vorher bereits gelöscht wird.


    Und genau diese Explosion möchte ich ja haben....
    Deshalb funktioniert diese Methode leider nicht X(

    Geht nicht, da ich ja mehrere lspdcars habe und wenn ich die else Abfrage in die for-Schleife setze, funktioniert das nur beim lspdcars[1]. Denn beim lspdcars[2], wird dann die else Schleife aufgerufen, da die Abfrage ja mit 1 ist und somit wird das Fahrzeig zerstört.


    Danke aber trotzdem =)


    Mein Code funktioniert ja eigentlich bestens, nur leider die Explosion will nicht und ein Timer setzen, der dass Fahrzeug erst später zerstört, möchte ich aus Performancegründen eigentlich nicht machen :/



    //edit:


    Das Fahrzeug wird nun einfach erst beim spawnen zerstört. So explodiert es also auch wieder =)
    Jedoch frage ich mich, ob es nicht möglich ist, dass ein falsches Auto gelöscht bzw. nicht jedes gelöscht wird.
    Hab nämlich je 1 Variable (destroy & spawn) und wenn nun 2 Autos zur selben Zeit explodieren, was wäre dann?
    Ist dies überhaupt möglich oder ist da die Chance viel zu gering? (Will nur auf Nummer sicher gehen)


    Code:

    Spoiler anzeigen
    public OnVehicleSpawn(vehicleid)
    {
    if(vehicleid == destroy)
    {
    DestroyVehicle(destroy);
    destroy = -1;
    }
    else if(vehicleid == spawn)
    {
    SetVehicleToRespawn(spawn);
    spawn = -1;
    }
    return 1;
    }

    Spoiler anzeigen
    public OnVehicleDeath(vehicleid, killerid)
    {
    for(new i = 0;i<sizeof(lspdcars); i++)
    {
    if(vehicleid == lspdcars[i])
    {
    spawn = vehicleid;
    return 1;
    }
    }
    destroy = vehicleid;
    return 1;
    }

    Bin über jeden Ratschlag dankbar =)

    Guten Abend liebe Community


    Hab mich nach langer Zeit wieder einmal an mein Script gesetzt und bin sofort auf ein neues Problem gestossen.
    Und zwar möchte ich, dass wenn ein Auto explodiert und es kein Fraktionsauto (Lspdcar) ist, dass das Auto zerstört wird bzw. nicht mehr respawnt.


    Hab also ne Abfrage bei OnVehicleDeath, ob es ein Lspdcar ist und wenn nicht, dann wird es zerstört.
    Klappt alles wunderbar, doch sobald ein Auto auf dem Dach liegt, gibt es keine Explosion mehr. Das Auto wird also bereits davor gelöscht oder spawnt bereits.
    Jedoch nur wenn das Auto auf dem Dach liegt. Ansonsten klappt alles wunderbar.


    Meine Frage nun: Wie kann ich die Explosion des Autos, auch wenn es auf dem Dach liegt "abrufen"?


    Code:
    public OnVehicleDeath(vehicleid, killerid)
    {
    for(new i = 0;i<sizeof(lspdcars); i++)
    {
    if(vehicleid == lspdcars[i])
    {
    SetVehicleToRespawn(vehicleid);
    return 1;
    }
    DestroyVehicle(vehicleid);
    }
    return 1;
    }


    Haste vllt aID falsch definiert oder sind die Preise nicht korrekt eingetragen?

    Die Preise müssen stimmen, da ich sie als Text anzeige und dort mit den selben Variablen arbeite.
    Was aID angeht. Ich definiere aID unter OnGamemodInit als 0 und beim Autokauf wird aID dann um eins erhöht bzw um eins reduziert.



    Ganzes "Showscript" (Autos anzeigen/wechseln)
    //Autohaus LS
    else if(IsPlayerInRangeOfPoint(playerid,1,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]))
    {
    new string[128];
    if(newkeys == KEY_ANALOG_RIGHT)
    {
    if(aID<1)
    {
    aID++;
    SetPlayerPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
    SetPlayerCameraPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
    SetPlayerCameraLookAt(playerid,Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz]);
    format(string,sizeof(string),"Name: %s Preis: %d",Autokauf[aID][aname],Autokauf[aID][preis]);
    SendClientMessage(playerid,weiss,string);
    SendClientMessage(playerid,weiss,"Zum Kaufen mit Enter bestätigen");
    }
    else
    {
    aID=0;
    SetPlayerPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
    SetPlayerCameraPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
    SetPlayerCameraLookAt(playerid,Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz]);
    format(string,sizeof(string),"Name: %s Preis: %d",Autokauf[aID][aname],Autokauf[aID][preis]);
    SendClientMessage(playerid,weiss,string);
    SendClientMessage(playerid,weiss,"Zum Kaufen mit Enter bestätigen");
    }
    }
    else if (newkeys == KEY_ANALOG_LEFT)
    {
    if(aID>0)
    {
    aID--;
    SetPlayerPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
    SetPlayerCameraPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
    SetPlayerCameraLookAt(playerid,Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz]);
    format(string,sizeof(string),"Name: %s Preis: %d",Autokauf[aID][aname],Autokauf[aID][preis]);
    SendClientMessage(playerid,weiss,string);
    SendClientMessage(playerid,weiss,"Zum Kaufen mit Enter bestätigen");
    }
    else
    {
    aID=1;
    SetPlayerPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
    SetPlayerCameraPos(playerid,Autokauf[aID][cposx],Autokauf[aID][cposy],Autokauf[aID][cposz]);
    SetPlayerCameraLookAt(playerid,Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz]);
    format(string,sizeof(string),"Name: %s Preis: %d",Autokauf[aID][aname],Autokauf[aID][preis]);
    SendClientMessage(playerid,weiss,string);
    SendClientMessage(playerid,weiss,"Zum Kaufen mit Enter bestätigen");
    }
    }
    else if(newkeys == KEY_SECONDARY_ATTACK)
    {
    Speichern(playerid);
    if(Daten[playerid][Geld]>=Autokauf[aID][preis])
    {
    SetCameraBehindPlayer(playerid);
    SetPlayerVirtualWorld(playerid,0);
    TogglePlayerControllable(playerid,1);
    GivePlayerMoney(playerid,-Autokauf[aID][preis]);
    CreateVehicle(Autokauf[aID][amodelid],Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz],Autokauf[aID][posa],-1,-1,-1);
    aID = 0;
    return 1;
    }
    else if(Daten[playerid][Geld]<Autokauf[aID][preis])
    {
    aID = 0;
    SetCameraBehindPlayer(playerid);
    SetPlayerVirtualWorld(playerid,0);
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,rot,"Du hast nicht genug Geld!");
    return 1;

    }
    }
    }


    //edit:
    Hab zur Hilfe schnell nen Befehl mit der selben if Abfrage erstellt.
    Die Abfragen laufen korrekt, bis ich das erste Auto kaufe.
    Geht also alles wunderbar, doch sobald ich ein Auto gekauft habe, hatte man immer genug oder immer zu wenig Geld!


    Die Enter-Tase ist: "KEY_SECONDARY_ATTACK" ^^


    EDIT: Versuch anstatt "else", "else if Daten[playerid][Geld]


    Danke für die Enter-Taste =)
    Das mit dem else if funktioniert zum Teil...
    Hab im Moment (als Test) nur 2 Autos eingefügt.
    Beim Auto 1 (aID=0) funktioniert es, bei Auto 2 (aID=1) jedoch nicht...
    Also beim Auto 2 heisst es dauernd ich habe zuwenig Geld 8|


    edit: Jetzt geht es aufeinmal auch beim ersten Auto wieder nicht..
    Auto 1 immer kaufbar...
    Auto 2 nie kaufbar...

    Hallo Zusammen


    Ich beschäftige mich seit ca. 2 Wochen mit meinem Selfmade-Script und wollte nun ein Autohaus erstellen.
    Dafür beschäftige ich mit OnPlayerKeyStateChange. Kenne mich da jedoch noch nicht so gut aus bzw. hab da immer Wiki zur Hilfe ;)


    Zum eigentlichen Problem:
    Ich hab im OnPlayerKeyStateChange eine normale If-Abfrage. Doch aus unbekannten Gründen wird diese nicht richtig ausgeführt.
    Es wird geprüft, ob der Spieler genug Geld dabei hat und ansonsten kann der Spieler das Auto logischerweise nicht kaufen.
    Dann erhält er die Nachricht "Du hast nicht genug Geld".


    Doch manchmal erhält er immer die Nachricht(auch wenn er genug Geld hat) und manchmal kann er das Auto immer kaufen...
    Die Unterschiede haben mit dem return zu tun gehabt (weglassen, 1 oder 0).
    Im Wiki ist das return jedoch als "weiterer Gebrauch" definiert:
    "Returns1 - Allows this callback to be called in other scripts. It is always called first in gamemodes so retuning 0 there blocks filterscripts from seeing it."


    Darum nun zu meiner Frage: Was mache ich falsch?
    Wieso wird die Abfrage nicht korrekt ausgeführt?


    Nebst der Hauptfrage, hab ich noch eine kleinere Frage:
    Im Moment habe ich den KEY_JUMP als Bestätigung.
    Ich wollte jedoch die Enter-Taste. Als welchen Key ist diese definiert? Habs mit KEY_ACTION probiert, passierte dann aber nichts.


    Script:
    else if(newkeys == KEY_JUMP)
    {

    if(Daten[playerid][Geld]>=Autokauf[aID][preis])
    {
    SetCameraBehindPlayer(playerid);
    SetPlayerVirtualWorld(playerid,0);
    TogglePlayerControllable(playerid,1);
    GivePlayerMoney(playerid,-Autokauf[aID][preis]);
    CreateVehicle(Autokauf[aID][amodelid],Autokauf[aID][posx],Autokauf[aID][posy],Autokauf[aID][posz],Autokauf[aID][posa],-1,-1,-1);
    aID = 0;
    return 0;
    }
    else
    {
    aID = 0;
    SetCameraBehindPlayer(playerid);
    SetPlayerVirtualWorld(playerid,0);
    TogglePlayerControllable(playerid,1);
    SendClientMessage(playerid,rot,"Du hast nicht genug Geld!");
    return 0;
    }
    }
    }


    Mfg
    Hund

    Moin Community,


    Ich habe ein kleines Problem mit dem Spawnen.
    Und zwar möchte ich dass man direkt nach dem Login eingeloggt ist, also nicht noch den Spawn-Button drücken muss und wenn man nicht eingeloggt ist und denn Spawn Button drückt soll man gekickt werden.


    Ich habe es ohne Errors eingefügt, jedoch funktioniert es nicht:



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new name[MAX_PLAYERS],
    accFormat[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(accFormat,sizeof(accFormat),"/Swiss Reallife/Spieler/%s.datei",name);
    if(response)
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein:","Weiter","Abbrechen");
    return SendClientMessage(playerid,Rot,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
    {
    Spieler[playerid][skin] = SetPlayerSkin(playerid,dini_Int(accFormat,"Skin"));
    Spieler[playerid][score] = SetPlayerScore(playerid,dini_Int(accFormat,"Level"));
    Spieler[playerid][adminlevel] = dini_Int(accFormat, "Adminlevel");
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,Weiss,"Du hast dich erfolgreich eingeloggt.");
    SpawnPlayer(playerid); //<===Spawn Player
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein:","Weiter","Abbrechen");
    SendClientMessage(playerid,Rot,"Falsches Passwort!");
    }
    }
    case DIALOG_REG:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrierung","Bitte Gib ein Passwort ein:","Weiter","Abbrechen");
    return SendClientMessage(playerid,Rot,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    dini_IntSet(accFormat,"Adminlevel" , 0);
    Spieler[playerid][adminlevel] = 0;
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,Weiss,"Account angelegt.");
    SpawnPlayer(playerid);
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein:","Weiter","Abbrechen");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrierung","Bitte Gib ein Passwort ein:","Weiter","Abbrechen");
    }
    }
    return 1;
    }



    public OnPlayerRequestSpawn(playerid)
    {
    if(eingeloggt == false) //Kicken wenn nicht eingeloggt
    {
    Kick(playerid);
    }
    return 1;
    }


    gez.
    Hund


    stock Register(playerid, key[]) //<--- Zeile 431
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name)); //<---------Zeile 435
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt");
    dini_Create(Spielerdatei); //<--------------Zeile 437
    dini_Set(Spielerdatei,"Passwort",key);//<------------------Zeile 438
    SendClientMessage(playerid, COLOR_GREEN, "Du hast dich Erfolgreich Registriert");
    return 1;


    }//<---Zeile 442 <----war davor unnötig da du schon ein } gemacht hast...anstatt ein ) sollte so klappen

    Lern die Grundlagen, hilft dir sehr ^^



    SendClientMessage(playerid,BLAU,"Du hast den Vorgang Abgebrochen");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");

    Moin Community,


    Ich habe nach längerer Zeit wieder angefangen ein bisschen zu scripten.
    Nun hab ich mein Loginsystem neu gemacht(nach dem alten Prinzip) und kriege auf einmal Errors.


    Könnt ihr mir Helfen?


    Errors:
    (294) : error 040: duplicate "case" label (value 1)
    (315) : error 040: duplicate "case" label (value 1)



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new name[MAX_PLAYERS],
    accFormat[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(accFormat,sizeof(accFormat),"/Swiss Reallife/Spieler/%s.datei",name);
    if(response)
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein:","Weiter","Abbrechen");
    return SendClientMessage(playerid,Rot,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) ==0)
    {
    Spieler[playerid][skin] = SetPlayerSkin(playerid,dini_Int(accFormat,"Skin"));
    Spieler[playerid][score] = SetPlayerScore(playerid,dini_Int(accFormat,"Level"));
    Spieler[playerid][adminlevel] = dini_Int(accFormat, "Adminlevel");
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,Grau,"Du hast dich erfolgreich eingeloggt.");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein:","Weiter","Abbrechen");
    SendClientMessage(playerid,Rot,"Falsches Passwort!");
    }
    }
    case DIALOG_REG: //294 erster Error
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrierung","Bitte Gib ein Passwort ein:","Weiter","Abbrechen");
    return SendClientMessage(playerid,Rot,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    dini_IntSet(accFormat,"Adminlevel" , 0);
    Spieler[playerid][adminlevel] = 0;
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,Grau,"Account angelegt und du wurdest eingeloggt.");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein:","Weiter","Abbrechen");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrierung","Bitte Gib ein Passwort ein:","Weiter","Abbrechen"); //315: Zweiter Error
    }
    }
    return 1;
    }



    gez.
    Hund

    Hab nun mein Schrei-Befehl in dcmd gemacht, jedoch weiss ich nicht, wie ich einen höheren Radius hinbekomme (LimitGlobalChatRadius) und wie ich mache dass nur diese in diesem Radius es sehen können...(Hab SendClientMessageToAll im Moment)


    Mein bisheriger Befehl:

    dcmd_s(playerid,params[]) {
    new
    sNachricht[128];
    if(sscanf(params, "s",sNachricht)) {
    return SendClientMessage(playerid,0xFF0000FF,"Benutze /s [Text]");
    }
    new
    name[128],
    string[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string)," %s schreit: %s",name,sNachricht);
    SendClientMessageToAll(0xFAFAFAFF,string);
    return 1;
    }

    Beim Tor hab ich viele Warnings...mittlerweile Ignorier ich die...:


    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(16) : warning 213: tag mismatch
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(139) : warning 217: loose indentation
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(179) : warning 217: loose indentation
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(217) : warning 213: tag mismatch
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(220) : warning 213: tag mismatch
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(225) : warning 213: tag mismatch
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(228 ) : warning 217: loose indentation
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(236) : warning 213: tag mismatch
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(239) : warning 213: tag mismatch
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(244) : warning 213: tag mismatch
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(247) : warning 217: loose indentation
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(261) : warning 217: loose indentation
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(413) : warning 217: loose indentation
    C:\Users\Administrator\Desktop\Allgemein\Spiele\GTA\SAMP\Eigener Server\Scripting\Aktuelle Scripte\FS.pwn(511) : warning 203: symbol is never used: "strtok"


    **Farben sind oben und hier markiert, die gleichen Farben sind einfach doppelt in unterschiedlichen Zeilen.

    Hallo Community,


    Ich hab mehrere, kleinere Fragen:


    1.)Ich habe mir ein Tor erstellt, jedoch ist es auf der Map nicht da.


    2.) Was bedeutet %s, %f, %d und so? für was stehn diese Ganzen Sachen? (Bei %d kommen Zahlen und bei %s Buchstaben, ist das der einzige Unterschied? was passiert bei %f?


    3.)Ich möchte einen Schrei-Befehl erstellen.
    Jedoch schaffe ich es nur bis zu "Spielername schreit:". Ich bringe keinen eingegebenen Text dazu, sowie schaff ich es nur mit SendClientMessage, also nicht für alle im Umkreis von 40.0 sichtbar.



    #define PlayerName //zuoberst


    if(strcmp(cmdtext,"/s",true) == 0)
    {
    new message[128];
    new reason [128];
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"AktuellerServer/Accounts/Users/%s.sav",pname);
    format(message, 128, "%s schreit: %s ",pname,reason); //Achtet nicht auf das Reason...
    SendClientMessage(playerid, 0xFFFFFFFF, message);
    return 1;
    }


    4.) Wie erstellt man Fraktionen ohne g-Team?
    Ich möchte nämlich, das man per /invite eingeladen wird, also ohne gTeam.
    und Wäre es Möglich, denn Skinauswahlschritt zu überspringen? Also so das man automatisch mit dem CJ-Skin spawnt?
    Oder kann man irgendwie vor die Skinauswahl noch Texte bringen ausser das Login-System? wie z.B Alter etc.



    Ich danke schon jetzt für eure Hilfe.


    Mfg
    Hund