Beiträge von Crossline

    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_YES)
    {
    OnPlayerKeyStateChange(playerid,"/rv");
    }
    return 1;
    }


    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(5 [geändert]) : error 035: argument type mismatch (argument 2)

    So klappt soweit :D Jetzt wollte ichs aber austauschen mit dem Reperaturkommando. Da kommt aber ein Fehler auf:


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (PRESSED(KEY_YES))
    {
    if(strcmp(cmdtext, "/rv", true) == 0)
    {
    new vid = GetPlayerVehicleID(playerid);
    RepairVehicle(vid);
    return 1;
    }
    }
    return 0;
    }
    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(336) : error 017: undefined symbol "cmdtext"

    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    if (PRESSED(KEY_FIRE))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new currentveh;
    new Float:angle;
    currentveh = GetPlayerVehicleID(playerid);
    GetVehicleZAngle(currentveh, angle);
    SetVehicleZAngle(currentveh, angle);
    SendClientMessage(playerid, 0xFFFFFFFF, "Dein Fahrzeug wurde gedreht.");
    }
    else
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Du bist in keinem Fahrzeug!");
    }
    return 1;
    }
    return 0;


    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(356) : warning 209: function "OnPlayerKeyStateChange" should return a value
    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(356) : error 010: invalid function or declaration


    Was ist da falsch?
    Und wie kann ich das Kommando nun mit L ausführen?
    Danke für deine Hilfe :))
    Crossline

    Ist das so richtig? Bekomme SEHR viele Fehlermeldungen


    #include <a_samp>
    #include <Dini>
    #include <dudb>
    #include <ocmd>
    #include <Sscanf>
    #define PRESSED(%0) \
    (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (PRESSED(KEY_FIRE))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new currentveh;
    new Float:angle;
    currentveh = GetPlayerVehicleID(playerid);
    GetVehicleZAngle(currentveh, angle);
    SetVehicleZAngle(currentveh, angle);
    SendClientMessage(playerid, 0xFFFFFFFF, "Dein Fahrzeug wurde gedreht.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Du bist in keinem Fahrzeug!");
    }
    return 1;

    Wie genau sieht das aus? Sorry, kann mir nicht vorstellen wie das gehen soll :x
    if(strcmp(cmdtext, "/flip", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new currentveh;
    new Float:angle;
    currentveh = GetPlayerVehicleID(playerid);
    GetVehicleZAngle(currentveh, angle);
    SetVehicleZAngle(currentveh, angle);
    SendClientMessage(playerid, 0xFFFFFFFF, "Dein Fahrzeug wurde gedreht.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Du bist in keinem Fahrzeug!");
    return 1;
    }


    Wie muss das da rein?

    Vielen Dank! Hat geklappt!
    Jetzt wollte ich noch ein Kommando "/up ID" einfügen, womit man Spieler nach oben versetzt.


    ocmd:up(playerid,params[])
    {
    new pID2; //Der Parameter wird in dieser Variable gespeichert
    if(sscanf(params, "i", pID2))
    {
    return SendClientMessage(playerid,0xFFFFFFFF,"/up [Spieler-ID]"); //Hier wird eine Fehlermeldung ausgegeben, sollte kein Parameter eingegeben worden sein
    }
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    SetPlayerPos(playerid,x,y,z+20.0);
    SendClientMessage(pID2, 0xFFFFFFFF, "Du wurdest nach oben versetzt!"); //... und bekommt diese Message ausgegeben
    return 1;
    }
    Bei /up kommt die Fehlermeldung, dass eine ID fehlt, das ist ja auch gut so.
    Aber egal welche ID ich eingebe, immer werde ich hochversetzt. Warum?

    #include <a_samp>
    #include <Dini>
    #include <dudb>
    #include <ocmd>
    #include <Sscanf>


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    ocmd:heal(playerid,params[])
    {
    new pID; //Der Parameter wird in dieser Variable gespeichert
    if(sscanf(params, "i", pID))
    {
    return SendClientMessage(playerid,0xFFFFFFFF,"/heal [Spieler-ID 1]"); //Hier wird eine Fehlermeldung ausgegeben, sollte kein Parameter eingegeben worden sein
    }
    SetPlayerHealth(pID, 100); // Dieser Spieler wird gehealt ...
    SendClientMessage(pID, 0xFFFFFFFF, "Du wurdest geheilt!"); //... und bekommt diese Message ausgegeben
    return 1;
    }
    return 0;
    }

    ocmd:heal(playerid,params[])
    {
    new pID; //Der Parameter wird in dieser Variable gespeichert
    if(sscanf(params, "i", pID))
    {
    return SendClientMessage(playerid,0xFFFFFFFF,"/heal [Spieler-ID 1]"); //Hier wird eine Fehlermeldung ausgegeben, sollte kein Parameter eingegeben worden sein
    }
    SetPlayerHealth(pID, 100); // Dieser Spieler wird gehealt ...
    SendClientMessage(pID, 0xFFFFFFFF, "Du wurdest geheilt!"); //... und bekommt diese Message ausgegeben
    return 1;
    }


    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : error 029: invalid expression, assumed zero
    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : error 017: undefined symbol "ocmd_heal"
    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : error 029: invalid expression, assumed zero
    C:\Users\PC\Desktop\Crosslines GTASA Reallife\gamemodes\Crossline.pwn(1) : fatal error 107: too many error messages on one line


    // Die 1'en wurden geändert damit es verständlich ist

    Ich hab ne ganz knappe Frage.
    Ich habe ein Kommando mit dem man sich selbst healt
    if(strcmp(cmdtext,"/heal",true)==0)
    {
    SetPlayerHealth(playerid, 100);
    SendClientMessage(playerid, 0xFFFFFFFF, "Du wurdest geheilt!");
    }
    Wie kann man nun /heal Crossline oder /heal ID einfügen?
    Crossline

    Mir auch ..
    Hier mal alles was ich verändert habe, vielleicht findest du was.

    Code
    #include <a_samp>
    #include <Dini>
    #include <dudb>

    Code
    //Spawn an gleicher Stelle nach Disconnect
    new Float:positionx;
    new Float:positiony;
    new Float:positionz;

    Code
    public OnPlayerConnect(playerid)
    {
    SpawnPlayer(playerid);
    SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));

    Code
    format(pfad,sizeof(pfad),"/scriptfiles/Crossline.ini",name);//hier ersetzt Du "%s" mit dem Namen

    Code
    SetSpawnInfo(playerid,0,dini_Int(pfad,"skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
    LoadStats(playerid);
    return 1;
    }

    Code
    public OnPlayerDisconnect(playerid, reason)
    {
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));

    Code
    format(pfad,sizeof(pfad),"/scriptfiles/Crossline.ini",name);

    Code
    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));

    Code
    new Float:x;
    new Float:y;
    new Float:z;

    Code
    GetPlayerPos(playerid,x,y,z);
    positionx = x;
    positiony = y;
    positionz = z;
    if (!dini_Exists(FileStats(playerid)))
    {
    dini_Create(FileStats(playerid));
    }

    Code
    SaveStats(playerid);
    return 1;
    }

    Code
    public OnPlayerSpawn(playerid)
    {
    SetPlayerPos(playerid,positionx,positiony,positionz);
    return 1;
    }

    Code
    public OnPlayerDeath(playerid, killerid, reason)
    {
    ForceClassSelection(playerid);
    return 1;
    }

    Code
    Und ganz am Ende:
    Player(playerid)
    {
    new player[MAX_PLAYER_NAME];
    GetPlayerName(playerid, player, sizeof(player));
    return player;
    }
    //
    FileStats(playerid)
    {
    new a[256]; format(a, sizeof(a), "%s.ini",udb_encode(Player(playerid)));
    return a;
    }
    SaveStats(playerid)
    {
    dini_IntSet(FileStats(playerid), "PositionX", floatround(positionx));
    dini_IntSet(FileStats(playerid), "PositionY", floatround(positiony));
    dini_IntSet(FileStats(playerid), "PositionZ", floatround(positionz));
    }
    LoadStats(playerid)
    {
    positionx = dini_Int(FileStats(playerid), "PositionX");
    positiony = dini_Int(FileStats(playerid), "PositionY");
    positionz = dini_Int(FileStats(playerid), "PositionZ");
    }

    Ja, sie existiert, allerdings ohne einen Punkt "skin" oder ähnliches.
    Was muss ich dir schicken, dass ich dir helfen kann?
    Und was ist wenn (z.B.) User1 joint, seine Daten müssen ja in User1.ini gespeichert werden, nicht Crossline.ini

    public OnPlayerConnect(playerid)
    {
    SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);//hier ersetzt Du "%s" mit dem Namen


    SetSpawnInfo(playerid,0,dini_Int(pfad,"skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
    LoadStats(playerid);
    SpawnPlayer(playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);


    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));


    new Float:x;
    new Float:y;
    new Float:z;


    GetPlayerPos(playerid,x,y,z);
    positionx = x;
    positiony = y;
    positionz = z;
    if (!dini_Exists(FileStats(playerid)))
    {
    dini_Create(FileStats(playerid));
    }


    SaveStats(playerid);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    SetPlayerPos(playerid,positionx,positiony,positionz);
    return 1;
    }


    Bei diesem Code wird nichts in die ini geschrieben.
    Wenn ich das %s in Crossline abändere kann es doch gar nicht mehr funktionieren wie ich will, oder?
    Wir nehmen doch extra das %s damit es mit jedem User klappt?

    Habs implementiert + getestet, aber es wird nichts in die .ini geschrieben.
    Noch irgendwelche fehler?


    public OnPlayerConnect(playerid)
    {
    SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
    SetSpawnInfo(playerid,0,dini_Int("/scriptfiles/%s.ini","skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
    LoadStats(playerid);
    SpawnPlayer(playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);


    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));


    new Float:x;
    new Float:y;
    new Float:z;


    GetPlayerPos(playerid,x,y,z);
    positionx = x;
    positiony = y;
    positionz = z;
    if (!dini_Exists(FileStats(playerid)))
    {
    dini_Create(FileStats(playerid));
    }


    SaveStats(playerid);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    SetPlayerPos(playerid,positionx,positiony,positionz);
    return 1;
    }


    Ich wollte mich noch mal bei dir bedanken, dass du dir so lange Zeit nimmst! Super :)

    Okay, ich habe gerade den überblick verloren x:


    Was mache ich falsch?
    public OnPlayerConnect(playerid)
    {
    SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
    SetSpawnInfo(playerid,0,dini_Int(pfad,"skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
    LoadStats(playerid);
    SpawnPlayer(playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);
    {
    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));


    new Float:x;
    new Float:y;
    new Float:z;


    GetPlayerPos(playerid,x,y,z);
    positionx = x;
    positiony = y;
    positionz = z;
    if (!dini_Exists(FileStats(playerid)))
    {
    dini_Create(FileStats(playerid));
    }


    SaveStats(playerid);
    return 1;
    }