Beiträge von Beagle

    Alsooo, ich hab mit 0.3c und AttachObjectToVehicle Kanonen aufs Car gebastelt. Keine Bugs soweit, aber darum geht es ja nicht. Ich will nun, wenn der Spieler eine bestimmte Taste drückt, eine Explosion kommt, funktioniert auch, allerdings sollte die Explosion vor dem Spieler sein, nicht irgendwo in der nähe, oder hinter ihm. Wie finde ich nun raus, wo die Explosion sein muss?
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new bigcargun;
    for(new i = 0; i < sizeof(Infernus); i++)//Nimmt die Anzahl die im new oben steht und gibt sie als i aus
    {
    if(GetPlayerVehicleID(playerid) == Infernus[i])
    {
    bigcargun = CreateObject(3884, 0, 0, 0, 0, 0, 0);
    AttachObjectToVehicle(bigcargun, GetPlayerVehicleID(playerid), 0, 0, 0+0.18, 0, 0, 0);
    }
    }
    for(new i = 0; i < sizeof(Tahoma); i++)
    {
    if(GetPlayerVehicleID(playerid) == Tahoma[i]){
    bigcargun = CreateObject(3884, 0, 0, 0, 0, 0, 0);
    AttachObjectToVehicle(bigcargun, GetPlayerVehicleID(playerid), 0, 0-0.5, 0+0.35, 0, 0, 0);
    }
    }
    for(new i = 0; i < sizeof(Slamvan); i++)
    {
    if(GetPlayerVehicleID(playerid) == Slamvan[i]){
    bigcargun = CreateObject(3884, 0, 0, 0, 0, 0, 0);
    AttachObjectToVehicle(bigcargun, GetPlayerVehicleID(playerid), 0, 0-1.5, 0-0.2, 0, 0, 0);
    }
    }
    }
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (newkeys & KEY_FIRE)
    {
    new Float:x, Float:y, Float:z;
    for(new i = 0; i < sizeof(Slamvan); i++)
    {
    if(GetPlayerVehicleID(playerid) == Slamvan[i]){
    GetPlayerPos(playerid, x, y, z);
    CreateExplosion(x, y+50, z, 6, 20);
    }
    }

    }
    return 1;
    }

    C:\Programme\Rockstar Games\GTA San Andreas\RL Server\gamemodes\reallife.pwn(200) : error 010: invalid function or declaration
    C:\Programme\Rockstar Games\GTA San Andreas\RL Server\gamemodes\reallife.pwn(202) : error 025: function heading differs from prototype
    200:
    return 0;
    202:
    public OnPlayerStateChange(playerid, oldstate, newstate){
    ...
    Edit:// Ohne das von Samp Special Scripter kommt folgendes:
    C:\Programme\Rockstar Games\GTA San Andreas\RL Server\gamemodes\reallife.pwn(202) : error 025: function heading differs from prototype
    Zeile 202:
    public OnPlayerStateChange(playerid, oldstate, newstate){

    #include <a_samp>
    #include <sscanf2>
    #include <dini>


    #define grau 0xAFAFAFAA
    #define gruen 0x33AA33AA
    #define rot 0xAA3333AA
    #define gelb 0xFFFF00AA
    #define weiss 0xFFFFFFAA
    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    new Float:EventPosX, Float:EventPosY, Float:EventPosZ, EventAktiv;
    new arbenter, arbexit;
    new beaglehausto1, beaglehausto2, beaglehaustf1, beaglehaustf2;
    new fbi[22];
    new PlayerJob;
    forward BehoerdenCars(vehicleid);
    main()
    und
    public BehoerdenCars(vehicleid){
    for(new i = 0; i < sizeof(fbi); i++)//Nimmt die Anzahl die im new oben steht und gibt sie als i aus
    {
    if(vehicleid == fbi[i])
    {
    return 1;
    }
    }
    return 0;
    }
    public OnPlayerStateChange(playerid, oldstate, newstate){
    new Spielerdatei[64], name[MAX_PLAYER_NAME], frak, vehicleid;
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/accounts/%s.txt",name);
    frak = dini_Int(Spielerdatei, "Frak");
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(BehoerdenCars(vehicleid))
    {
    if(!frak == 1 || !frak == 2 || !frak == 3)
    {
    SendClientMessage(playerid,rot,"Du bist nicht bei der Army / dem FBI / den Cops!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    }
    Fehler kommt:
    C:\Programme\Rockstar Games\GTA San Andreas\RL Server\reallife.pwn(203) : error 025: function heading differs from prototype

    dcmd_report(playerid, params[])
    {
    new playermsg[128], playername[MAX_PLAYER_NAME], string[128], pstring[128];
    if(sscanf(params, "s", playermsg)){
    return SendClientMessage(playerid, rot, "ServerWächter: Benutze: /report [nachricht]");
    }
    format(string, sizeof(string), "%s schickte folgende Nachricht per Report: %s", playername, playermsg);
    format(pstring, sizeof(pstring), "ServerWächter: Du hast folgendes an die Admins gesendet:\n %s", playermsg);
    SendClientMessage(playerid, grau, pstring);
    for(new i; i<MAX_PLAYERS;i++)
    {
    if(IsPlayerAdmin(i))
    {
    SendClientMessage(i,grau,string);
    }
    }
    return 1;
    }
    Runtime Error 19. Wär ausserdem nett, wenn mir jemand erklärt wie 'ne /report funktion aussehen könnte...
    Runtime Error 19 kommt bei mir ausserdem auch bei folgendem Script:
    dcmd_kick(playerid, params[])
    {
    if(IsPlayerAdmin(playerid)){
    new adminname[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME], grund, kickmsg[130], pID;
    if(sscanf(params, "us", pID, grund)) {
    return SendClientMessage(playerid, grau,"ServerWächter: Benutze: /kick [playerid / playername] [grund]");
    }
    if(pID == INVALID_PLAYER_ID){
    return SendClientMessage(playerid, grau, "ServerWächter: Kein Spieler mit angegebener ID online.");
    }
    format(kickmsg, sizeof(kickmsg), "ServerWächter: %s wurde von %s gekickt. Grund: %s", playername, adminname, grund);
    SendClientMessageToAll(gelb, "ServerWächter: %s wurde von %s gekickt. Grund: %s");
    }else{
    SendClientMessage(playerid, rot, "ServerWächter: Du bist kein Admin!");
    }
    return 1;
    }
    Ich glaub das liegt an dem INVALID_PLAYER_ID... bzw oben bei dem MAX_PLAYERS...
    *n00b sei*

    public OnPlayerDeath(playerid, killerid, reason)
    {
    new string[130];
    new string2[130];
    new totenname[40];
    new killername[40];


    GetPlayerName(playerid, totenname, sizeof(totenname));
    GetPlayerName(killerid, killername, sizeof(killername));
    // -----------------------
    if(killerid == playerid){
    GivePlayerMoney(playerid, -100);
    SetPlayerScore(playerid, GetPlayerScore (playerid) -1);
    return SendClientMessage(playerid, rot, "BASIS: Du n00b hast dich selbst getötet! Score -1, Geld -100!");
    }
    // -----------------------


    format(string, sizeof(string), "BASIS: Du hast %s getötet! Score +1, Geld +100!", totenname);
    format(string2, sizeof(string2), "BASIS: Du wurdest von %s getötet! Score -1, Geld -100!", killername);
    SendClientMessage(killerid, gruen, string);
    SendClientMessage(playerid, rot, string2);


    GivePlayerMoney(playerid, -100);
    SetPlayerScore(playerid, GetPlayerScore(playerid) -1);


    GivePlayerMoney(killerid, 100);
    SetPlayerScore(killerid, GetPlayerScore(killerid) +1);


    return 1;
    }
    Falls Spieler1 von Spieler2 getötet wird, soll Spieler2 1 Score bekommen, und 100$. Genau das wird Spieler1 abgezogen. Bei Spieler2 soll dann die Nachricht kommen: BASIS: Du hast Spieler1 getötet! Score +1, Geld +100!
    Und Spieler1: BASIS: Du wurdest von Spieler2 getötet! Score -1, Geld -100!
    Das Funktioniert soweit. Aber, ich will nun das wenn sich Spieler1 selbst tötet bei ihm kommt: BASIS: Du n00b hast dich selbst getötet! Score -1, Geld -100!
    Das Funktioniert aber nicht, es kommt: BASIS: Du wurdest von getötet! Score -1, Geld -100!
    Help xD

    Alsoo, paar fragen...
    Frage Nr. 1:
    Ich hab ein /fix Script, was den Wagen repariert. Dabei wird aber nur der Motor repariert. Die Karosserie aber nicht...
    if(!strcmp(cmdtext, "/fix"))
    {
    if(IsPlayerInAnyVehicle(playerid)) //checkt ob der spieler in einem Fahrzeug sitzt
    {
    new Float:health;
    new veh;
    veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    SetVehicleHealth(veh,1000);
    SendClientMessage(playerid,COLOR_GREEN," Fahrzeug Repariert!");
    }
    else //wenn der Spieler in keinem Fahrzeug sitzt
    {
    SendClientMessage(playerid, COLOR_RED, " Du bist in keinem Fahrzeug!");
    }
    return 1;
    }
    Frage Nr. 2:
    Warum unterscheidet SA-MP zwischen Groß- und Kleinschreibung?


    Edit://
    Frage Nr. 3:
    Kann ich iwie die Eingabe hinter /befehl überprüfen? Wenn ja, wie?

    Alsooo, ich will ein Auto spawnen (Infernus), neben den Spieler. Das Spawnen hab ich schon hinbekommen. Aber es Spawnt AUF den Spieler. Kann ich es irgendwie machen, das dass Auto direkt vor den Spieler spawnt?
    if(!strcmp(cmdtext, "/v"))
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    AddStaticVehicle(411,X,Y,Z,270.8807,0,0);
    PutPlayerInVehicle(playerid, 0, 0);
    return 1;
    }
    Edit:// Achja, das "PutPlayerInvehicle" funktioniert nicht. xD Kann ich irgendwie die ID des gerade gespawnten Fahrzeugs überprüfen?

    Alsooooo, es gibt ja dieses Server Fenster, in dem man auch "say [nachricht]" eingeben kann. Undso...
    Könnte mir einer 'nen Link oder so geben, wo alle befehle stehen.
    Und sons noch 'ne Frage. Kann ich da auch Befehle hinzufügen?