[FRAGE] Nachricht mit Autonamen senden

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
  • Hallo ich hab mal 'ne Frage.
    Wenn ich zum Beispiel im Auto sitze und ein Kommando eingebe wie:
    if(strcmp(cmdtext,"/s1",true)==0)
    {
    SendClientMessageToAll(0x00FFAAFF,"Status 1");
    return 1;
    }



    Kommt ja im Chat einfach nur für alle:
    Status 1


    Kann ich auch einstellen das diese Nachricht nur an Fraktionsmitglieder geht z.B Feuerwehr ?
    Und das dann dort das Fahrzeug bevor steht?


    z.B (Fahrzeugname) Status 1


    und nun kommt noch eine weitere Frage dazu... wie kann ich ein Fahrzeug so benennen nach einen Namen z.B Peter.
    Peter Status 1


    Wer mir das erklären / lösen kann ist echt ein Profi.
    Danke im vorraus...

    Einmal editiert, zuletzt von seegras () aus folgendem Grund: Titel überarbeitet [FRAGE] Prefix

  • Huhu, klar geht alles.


    Du machst im Script oben:


    Spoiler anzeigen
    new PlayerVehicle[212][] = {
    "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana",
    "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat",
    "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife",
    "Trailer 1", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo",
    "Seasparrow", "Pizzaboy", "Tram", "Trailer 2", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
    "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow",
    "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito",
    "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring",
    "Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B",
    "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster","Stunt", "Tanker",
    "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
    "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak",
    "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck LA", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit",
    "Utility", "Nevada", "Yosemite", "Windsor", "Monster A", "Monster B", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance",
    "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway",
    "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer 3", "Emperor", "Wayfarer", "Euros", "Hotdog",
    "Club", "Freight Carriage", "Trailer 4", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car (LSPD)", "Police Car (SFPD)",
    "Police Car (LVPD)", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer A",
    "Luggage Trailer B", "Stairs", "Boxville", "Tiller", "Utility Trailer"
    };


    Bei deinem Command:


    if(strcmp(cmdtext,"/s1",true)==0)
    {
    new string[125];
    new name[MAX_PLAYER_NAME];
    new vehicleid = GetPlayerVehicleID(playerid), modelid = GetVehicleModel(vehicleid);
    GetPlayerName(playerid,name,sizeof(name));
    format(string, sizeof(string), "%s sitzt in dem Auto %s", name,PlayerVehicle[modelid - 400]);
    SendFraktionMessage(FRAKTION, FARBE, string);
    return 1;
    }


    Ganz weit runter ins Script:

    Spoiler anzeigen
    forward SendFraktionMessage(team, color, string[]);
    public SendFraktionMessage(team, color, string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(SpielerInfo[i][pTeam] == team)//Hier deine Fraktionsabfrage bitte anpassen!!!
    {
    SendClientMessage(i, color, string);
    }
    }
    }
    }


    Bei Fragen, einfach hier rein schreiben.


    Mit freundlichen Grüßen


    //Edit:
    Sorry, fehler ausgebessert :)



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    Einmal editiert, zuletzt von ENEF ()

  • Ich danke dir !
    DU hast mich echt weiter gebracht nur wenn ich zB 2. Firetrucks habe aber zwei unterschiedliche Namen haben will wie funktioniert das denn? 8|

  • Habe lange nicht mehr gescripted aber sollte so theoretisch gehen
    enum VehicleInfo
    {
    Name[64]
    }


    new vInfo[MAX_VEHICLES][VehicleInfo];


    if(strcmp(cmdtext, "/s1", true)==0)
    {
    new string[128], pName[MAX_PLAYER_NAME];
    vInfo[vehicleId][Name] = "FahrzeugName";// Name setzen
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "%s sitzt in dem Auto %s", pName, vInfo[GetPlayerVehicleID(playerid)][Name]);
    SendFraktionMessage(FRAKTION, FARBE, string);
    return 1;
    }

  • Beitrag von ENEF ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • und nun kommt noch eine weitere Frage dazu... wie kann ich ein Fahrzeug so benennen nach einen Namen z.B Peter.
    Peter Status 1



    Hier mal eine Möglichkeit, sofern du dcmd benutzt, dies kann man aber auch sehr einfach sonst umschreiben. Wichtiger Hinweis: Ungetestet!


    enum FahrzeugNamen
    {
    Name[50];
    }


    new Fahrzeugname[MAX_VEHICLES][FahrzeugNamen];


    dcmd_SetFahrzeugname(playerid,params[])
    {
    new NeuerName[50];

    if(sscanf(params,"s",NeuerName)) return SendClientMessage(playerid,0xFF0000FF,"INFO: /SetFahrzeugname [NeuerName]");
    new vehid = GetPlayerVehicleID(playerid);
    format(Fahrzeugname[vehid][Name],50,"%s",NeuerName);
    new msg[150];
    format(msg,150,"Du hast das Fahrzeug mit der ID: %i in %s umbenannt.",vehid,NeuerName);
    SendClientMessage(playerid,0xFFFF00AA,msg);
    return 1;
    }



    Dann musst du aber beim Text schreiben folgendes machen:


    if(strcmp(cmdtext,"/s1",true)==0)
    {
    new string[125];
    new name[MAX_PLAYER_NAME];
    new vehicleid = GetPlayerVehicleID(playerid);
    new VehName[50];
    format(VehName,50,"%s",Fahrzeugname[vehicleid][Name]);
    GetPlayerName(playerid,name,sizeof(name));
    format(string, sizeof(string), "%s sitzt in dem Auto %s", name,VehName);
    SendFraktionMessage(FRAKTION, FARBE, string);
    return 1;
    }



    Und unter OnPlayerCommandText noch folgendes:



    dcmd(SetFahrzeugname,15,cmdtext);


    Mit freundlichen Grüßen


    Madretsma



    P.S.: BAHHHH!! Das ärgert mich jetzt aber, da schreib ich das hier so schön und muss dann beim klick auf "Absenden" bemerken, dass der nette Azcaq einen Tick schneller war als ich ;P
    Deswegen poste ich es nun trotzdem, vielleicht macht es dir die Lösung noch deutlicher :P


    Edit: Der _iPit_ war auch noch schneller, oder was war das für ein Beitrag? :) :thumbup:


    EDIT 2: Ach, ich sehe grade, bei Azcaq ist gar kein Befehl, um den Fahreugnamen einzustellen, dann hat mein Post ja seine Daseinsberechtigung :D


    EDIT 3: Nun ist er da, siehe unten :D Genial ;)


    IM AUFBAU!

  • Wenn ein Name gesetzt worden ist, wird auch der Name ausgegeben. Wenn nicht, wird der
    normale Name ausgegeben. Sollte so funktionieren:


    enum VehicleInfo { Name[64] }
    new vInfo[MAX_VEHICLES][VehicleInfo];
    new PlayerVehicle[212][] = {
    "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana",
    "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat",
    "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife",
    "Trailer 1", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo",
    "Seasparrow", "Pizzaboy", "Tram", "Trailer 2", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
    "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow",
    "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito",
    "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring",
    "Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B",
    "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster","Stunt", "Tanker",
    "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
    "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak",
    "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck LA", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit",
    "Utility", "Nevada", "Yosemite", "Windsor", "Monster A", "Monster B", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance",
    "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway",
    "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer 3", "Emperor", "Wayfarer", "Euros", "Hotdog",
    "Club", "Freight Carriage", "Trailer 4", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car (LSPD)", "Police Car (SFPD)",
    "Police Car (LVPD)", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer A",
    "Luggage Trailer B", "Stairs", "Boxville", "Tiller", "Utility Trailer"
    };


    if(strcmp(cmdtext, "/NachrichtSenden", true) == 0)
    {
    new string[128], pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "%s sitzt in dem Auto %s", pName, GetVehicleName(GetPlayerVehicleID(playerid)));
    SendFraktionMessage(FRAKTION, FARBE, string);
    return 1;
    }


    if(strcmp(cmdtext, "/AutonameSetzen", true) == 0)
    {
    vInfo[GetPlayerVehicleID(playerid)][Name] = "FahrzeugName";
    return 1;
    }


    stock GetVehicleName(vehicleId) {
    if(sizeof(vInfo[vehicleId][Name]) <= 0) {
    return PlayerVehicle[GetVehicleModel(vehicleId) - 400];
    }
    return vInfo[vehicleId][Name];
    }

    // Gab einige Fehler, habe sie behoben.


  • Nun setzt du aber immer den Namen auf "FahrzeugName".


    An den TE:
    Deswegen nimm lieber das, was ich geschrieben habe, notfalls schreibe es in zcmd oder sonstiges um :)


    No offense :D


    Mit freundlichen Grüßen


    Madretsma


    IM AUFBAU!


  • Meine Variante ist besser und gibt auch was aus, wenn das Fahrzeug keinen festgelegten Namen hat.
    Das war nur ein Beispiel. Ich denke das mit dcmd bekommt er selbst auf die Reihe.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • Meine Variante ist besser und gibt auch was aus, wenn das Fahrzeug keinen festgelegten Namen hat.
    Das war nur ein Beispiel. Ich denke das mit dcmd bekommt er selbst auf die Reihe.


    Warum ist deine Variante besser, wenn er jedes Fahrzeug bei dir nur in "FahrzeugName" umbenennen kann?
    Das er mit dcmd und sonstigem nicht klar kommt, wollte ich ihm niemals unterstellen.


    Zitat von Azcaq

    stock GetVehicleName(vehicleId) {
    if(sizeof(vInfo[vehicleId][Name]) <= 0) {
    return PlayerVehicle[GetVehicleModel(vehicleId) - 400];
    }
    return vInfo[vehicleId][Name];
    }


    Dies ist allerdings mit Sicherheit eine sehr gute Idee :)


    Mit freundlichen Grüßen


    Madretsma


    IM AUFBAU!

  • Warum ist deine Variante besser, wenn er jedes Fahrzeug bei dir nur in "FahrzeugName" umbenennen kann?
    Das er mit dcmd und sonstigem nicht klar kommt, wollte ich ihm niemals unterstellen.


    Das war nur ein Beispiel, um zu zeigen wie man den Namen des Fahrzeuges ändern kann.
    Wenn man es mit dcmd macht, wie du es beschrieben hast, dann kann man es auch anders benennen.

  • Sorry das ich immer so viele Anfragen stelle..
    1. Ich Scripte an ein eigen entwickelten Anfang meines Scriptes ^^ Dort gibt es noch keine Fraktion und ich bin noch neu in der PAWN Szene deswegen lasse ich mir Zeit.
    Nun verstehe ich aber nicht wieso er mir diese Errors anzeigt:
    \gamemodes\medic.pwn(161) : error 079: inconsistent return types (array & non-array)
    \gamemodes\medic.pwn(167) : error 079: inconsistent return types (array & non-array)
    \gamemodes\medic.pwn(172) : error 079: inconsistent return types (array & non-array)
    \gamemodes\medic.pwn(177) : error 079: inconsistent return types (array & non-array)
    \gamemodes\medic.pwn(183) : error 079: inconsistent return types (array & non-array)
    \gamemodes\medic.pwn(185) : warning 217: loose indentation
    \gamemodes\medic.pwn(213) : error 017: undefined symbol "GetVehicleName"
    \gamemodes\medic.pwn(215) : error 079: inconsistent return types (array & non-array)
    \gamemodes\medic.pwn(220) : error 047: array sizes do not match, or destination array is too small
    \gamemodes\medic.pwn(221) : error 079: inconsistent return types (array & non-array)
    \gamemodes\medic.pwn(224) : error 029: invalid expression, assumed zero
    \gamemodes\medic.pwn(224) : error 017: undefined symbol "GetVehicleName"
    \gamemodes\medic.pwn(225) : error 001: expected token: "]", but found "-identifier-"
    \gamemodes\medic.pwn(225) : error 017: undefined symbol "vehicleId"
    \gamemodes\medic.pwn(225) : error 029: invalid expression, assumed zero
    \gamemodes\medic.pwn(225) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    15 Errors.[/code]


    Vorallem ist öfters falsch inconsistent return types (array & non-array) = return 1;


    Zeile: 213
    format(string, sizeof(string), "%s sitzt in dem Auto %s", pName, GetVehicleName(GetPlayerVehicleID(playerid)));



    Zeile: 220
    vInfo[GetPlayerVehicleID(playerid)][Name] = "Fahrzeugname";



    Zeile: 224
    stock GetVehicleName(vehicleId) {


    Zeile: 225
    if(sizeof(vInfo[vehicleId][Name]) <= 0) {