Einstiegs-TUT für totalen Anfänger

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 bin neu hier und möchte auch mal versuchen, in der nächsten Zeit einen kleinen RP-Server hinzubekommen. Da ich leider überhaupt keine Ahnung habe (Seit heute angefangen), möchte ich, dass mir mal das mal ein bisschen erklären kann.



    Das hier habe ich bereits gelesen---> [ SCRIPTING ] SA-MP Scripting Tutorial 1
    Ich habe bereits die Wagen gespawnt an einem Ort und es hat funktioniert.


    Jedoch habe ich bereits einige Probleme:



    1. Ich weiss nicht wo die Scripts einfügen OnFilterScriptInit() oder OnGameModeInit() oder doch OnPlayerConnect(playerid)?
    2. Als ich mal ein anderes Script gezogen habe, wurde ich bereits freundlichst begrüsst: DINI not found



    Naja, ich weiss, niemand (so denke ich halt^^) hat bock einem totalen n00b alles beizubringen, aber ich wäre echt froh, wenn es jemand mindestens ein bisschen tun würde.



    Danke vielmals, x86_PoWeR

  • Also ich kann dir sagen, lade dir ein englisches GF(Godfather) runter und übersetzte es!


    Du wirst merken das du so langsam die Scriptsprache dabei lernst, du musst aber logisch denken können ;)

  • Ist nicht schwer :P


    Hier /health


    if (strcmp("/help", cmdtext, true, 10) == 0)
    {
    SetPlayerHealth(playerid,100.0);
    return 1;
    }


    Und Karroserie Repairn:
    if(strcmp(cmd, "/repair", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_GREY, " Fahrzeug Repariert!");
    }
    }
    return 1;
    }

  • // This is a comment
    // uncomment the line below if you want to write a filterscript
    //#define FILTERSCRIPT


    #include <a_samp>


    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    #endif


    public OnGameModeInit()
    {
    // Don't use these lines if it's a filterscript
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
    }


    public OnGameModeExit()
    {
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    return 1;
    }


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


    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }


    public OnPlayerText(playerid, text[])
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
    // Do something here
    return 1;
    }
    return 0;
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnRconCommand(cmd[])
    {
    return 1;
    }


    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }


    public OnObjectMoved(objectid)
    {
    return 1;
    }


    public OnPlayerObjectMoved(playerid, objectid)
    {
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    return 1;
    }


    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    return 1;
    }


    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    return 1;
    }


    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    return 1;
    }


    public OnPlayerSelectedMenuRow(playerid, row)
    {
    return 1;
    }


    public OnPlayerExitedMenu(playerid)
    {
    return 1;
    }


    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    return 1;
    }


    public OnRconLoginAttempt(ip[], password[], success)
    {
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    return 1;
    }


    public OnPlayerStreamIn(playerid, forplayerid)
    {
    return 1;
    }


    public OnPlayerStreamOut(playerid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }




    Wo genau muss ich hier denn das hier zB einfügen? Sry, hab aber kein plan, wenn der compiler mal nich meckert funkt dieser befehl dann dafür nicht im spiel^^ (Unknown Command)


    Wo einfügen?


    if(strcmp(cmd, "/repair", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_GREY, " Fahrzeug Repariert!");
    }
    }
    return 1;
    }




    mfg und danke

    2 Mal editiert, zuletzt von x86_PoWeR ()

  • In:

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    {
    // Do something here
    return 1;
    }
    return 0;
    }

    Sollte dann so ausschauen:

    public OnPlayerCommandText(playerid, cmdtext[])


    if(strcmp(cmd, "/repair", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_GREY, " Fahrzeug Repariert!");
    }
    }
    return 1;
    }
    return 0;
    }



    /edit: Code halt noch richtig eindrücken ^^

    2 Mal editiert, zuletzt von Onizuka ()

  • So müsste das richtig sein:
    // This is a comment
    // uncomment the line below if you want to write a filterscript
    //#define FILTERSCRIPT


    #include <a_samp>


    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    #endif


    public OnGameModeInit()
    {
    // Don't use these lines if it's a filterscript
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
    }


    public OnGameModeExit()
    {
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    return 1;
    }


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


    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }


    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }


    public OnPlayerText(playerid, text[])
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmd, "/repair", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_GREY, " Fahrzeug Repariert!");
    }
    return 1;
    }
    return 0;
    }


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }


    public OnPlayerExitVehicle(playerid, vehicleid)
    {
    return 1;
    }


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    return 1;
    }


    public OnRconCommand(cmd[])
    {
    return 1;
    }


    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }


    public OnObjectMoved(objectid)
    {
    return 1;
    }


    public OnPlayerObjectMoved(playerid, objectid)
    {
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    return 1;
    }


    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    return 1;
    }


    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    return 1;
    }


    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    return 1;
    }


    public OnPlayerSelectedMenuRow(playerid, row)
    {
    return 1;
    }


    public OnPlayerExitedMenu(playerid)
    {
    return 1;
    }


    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    return 1;
    }


    public OnRconLoginAttempt(ip[], password[], success)
    {
    return 1;
    }


    public OnPlayerUpdate(playerid)
    {
    return 1;
    }


    public OnPlayerStreamIn(playerid, forplayerid)
    {
    return 1;
    }


    public OnPlayerStreamOut(playerid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }

  • oha^^ xD


    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(91) : error 017: undefined symbol "cmd"
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(98) : error 017: undefined symbol "COLOR_GREY"
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(100) : warning 217: loose indentation
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(102) : warning 217: loose indentation
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(105) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(105) : error 004: function "OnPlayerEnterVehicle" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(110) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(110) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(110) : error 004: function "OnPlayerExitVehicle" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(115) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(115) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(115) : error 004: function "OnPlayerStateChange" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(120) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(120) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(120) : error 004: function "OnPlayerEnterCheckpoint" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(125) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(125) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(125) : error 004: function "OnPlayerLeaveCheckpoint" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(130) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(130) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(130) : error 004: function "OnPlayerEnterRaceCheckpoint" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(135) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(135) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(135) : error 004: function "OnPlayerLeaveRaceCheckpoint" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(140) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(140) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(140) : error 004: function "OnRconCommand" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(145) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(145) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(145) : error 004: function "OnPlayerRequestSpawn" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(150) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(150) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(150) : error 004: function "OnObjectMoved" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(155) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(155) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(155) : error 004: function "OnPlayerObjectMoved" is not implemented
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(160) : warning 225: unreachable code
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(160) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Administrator\Desktop\GTA_SA\Server\gamemodes\PWNED.pwn(160) : error 004: function "OnPlayerPickUpPickup" is not implemented


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



    26 Errors.

  • Also ich kann dir sagen, lade dir ein englisches GF(Godfather) runter und übersetzte es!


    Du wirst merken das du so langsam die Scriptsprache dabei lernst, du musst aber logisch denken können ;)

    mach das, und gug auch genau was du übersetzt nd so... damit wirst du die scriptsprache um einiges besser verstehen!


    Dann kannste auch die leichtesten sachen in GF angugen, und es auch ausprobieren... vl. hilfts

    Hier, mein nicht existierender Link!

  • gut, dass mit dem übersetzen hab ich schon paar ma gehört aber was ist damit gemeint? ideen --> script?Oo oder englisch ---> deutsch?


    wo muss ich mir ddas ziehen und was damit machen?
    sry bin seid gestern hier^^ wäre nice wenn du es kurz erklären würdest




    mfg

  • downloade dir ma am besten nen GodFather ... danach gugst du in dir an, und wenn du etwas auf englisch siehst also was im "TEXT" steht... übersetz es von Englisch auf Deutsch.. sind halt die ClientMessage´s ... falls du es jz nich genau verstehst, downloade in dir einfach ma ;) ahja, manche streiten GF für anfänger ab, manche nich, das solltest du auch noch wissen ;)


    PS: bin selber erst "anfänger", hab schon nen kommpletten GF übersetzt (ca. 30k Zeilen) und es hat mir zumindest ETWAS geholfen... :pinch:



    /EDIT: Was ich gerne noch erklärt bekommen würde;
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/kill", cmdtext, true, 10) == 0)

    SetPlayerHealth(playerid, 0); //DAS MEINE ICH ;)


    return 1;
    }


    Wenn ich jz sone Animation haben will, z. B. /piss , woher soll ich dann wissen, was ich (wie in diesen Fall "SetPlayerHealth) da hinschreiben soll? Von woher erfahre ich das? ?(

    Hier, mein nicht existierender Link!

    Einmal editiert, zuletzt von roLepLay ()

  • hab ich auch schon herausgefunden ^^
    aber HIER steht nich, was ich da eingeben soll, sondern nur welche befehle es gibt


    kann mir mal jmd pls i-eine Animation zeigen, damit ich´s weiß? :S

    Hier, mein nicht existierender Link!

  • Oben Definieren:
    #define SPECIAL_ACTION_PISSING


    in public OnPlayerCommandText(playerid, cmdtext[]):
    if(strcmp(cmd, "/piss", true) == 0) {
    SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING);
    return 1;
    }


    Hab ich jetzt aus freien Kopf gemacht, kp ob so geht xD

  • hmm


    public OnPlayerCommandText(playerid, cmdtext[])


    if(strcmp(cmd, "/piss", true) == 0) {
    SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING);
    return 1;
    }


    C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\cRo.pwn(92) : error 017: undefined symbol "cmd"
    C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\cRo.pwn(93) : error 017: undefined symbol "SPECIAL_ACTION_PISSING"
    C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\cRo.pwn(97) : warning 209: function "OnPlayerCommandText" should return a value
    C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\cRo.pwn(97) : error 021: symbol already defined: "SetPlayerSpecialAction"
    C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\cRo.pwn(99) : error 055: start of function body without function header
    C:\Program Files\Rockstar Games\GTA San Andreas\gamemodes\cRo.pwn(100) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    (sicher i-ein klammerfehler oder? also defined ist es)

    Hier, mein nicht existierender Link!

    Einmal editiert, zuletzt von roLepLay ()