Beiträge von manumeyer

    Hey ho... habe mal wieder ein älteres scrif(samp 0.3d) ausgekrahmt und wollte es starten... doch leider schließt sich die samp exe wieder und erstellt eine crashinfo datei... der script wurde mit neustem pawno compilet und mit der neusten samp server gestartet...


    Crashinfo:

    Code
    --------------------------SA-MP Server: 0.3e-R2Exception At Address: 0x76F722B2 Module: (ntdll.dll)Registers:EAX: 0x00000024	EBX: 0x00000080	ECX: 0x004E2570	EDX: 0x04879B64ESI: 0x00000024	EDI: 0x00000020	EBP: 0x0018FC6C	ESP: 0x0018FC58EFLAGS: 0x00010206Stack:+0000: 0x04879B64   0x04879B50   0x00676663   0x00562210+0010: 0x00562210   0x0018FCAC   0x00493010   0x00000020+0020: 0x00499970   0x00000000   0x04879B64   0x04879B50+0030: 0x00000080   0x76735F65   0x32525F72   0x0018FC80+0040: 0x0018F82C   0x0018FE24   0x00497668   0x004B2970+0050: 0xFFFFFFFF   0x00000080   0x00493640   0x00000000+0060: 0x00404F14   0x00000000   0x0018FCD8   0x04879B50+0070: 0x00000080   0x0018FD80   0x00493837   0x004E25F0+0080: 0x0049380D   0x00562210   0x00405802   0x00000000+0090: 0x00000080   0x00000001   0x0049377E   0x0018FE24+00A0: 0x00497668   0x004B2330   0xFFFFFFFF   0x0049380D+00B0: 0x004694CC   0x004E25F0   0x0048794E   0x004F23D0+00C0: 0x004F23D0   0x004B1430   0x0018FD3C   0x002B8B20+00D0: 0x004B1428   0x0018FD3C   0x0018FD38   0x00562210+00E0: 0x00000000   0x004C5347   0x005FFA78   0x002BE558+00F0: 0x04879D01   0x004066FB   0x04879968   0x004061CE+0100: 0x00562210   0x003314F7   0x004057A0   0x00562210+0110: 0x0051D284   0x004057B0   0x00562210   0x00562210+0120: 0x041B287C   0x00000087   0x0420330C   0x004010B6+0130: 0x00562210   0x04879B64   0x0435C8E0   0x00402B63--------------------------Loaded Modules:samp-server.exe	A: 0x00400000 - 0x004F5000	(C:\Users\Manu\Desktop\samp03e_svr_R2_win32\samp-server.exe)ntdll.dll	A: 0x76F50000 - 0x770D0000	(C:\Windows\SysWOW64\ntdll.dll)kernel32.dll	A: 0x76460000 - 0x76570000	(C:\Windows\syswow64\kernel32.dll)KERNELBASE.dll	A: 0x76570000 - 0x765B6000	(C:\Windows\syswow64\KERNELBASE.dll)snxhk.dll	A: 0x72240000 - 0x7227C000	(F:\Avast\snxhk.dll)SHELL32.dll	A: 0x74710000 - 0x7535A000	(C:\Windows\syswow64\SHELL32.dll)msvcrt.dll	A: 0x75FE0000 - 0x7608C000	(C:\Windows\syswow64\msvcrt.dll)SHLWAPI.dll	A: 0x76400000 - 0x76457000	(C:\Windows\syswow64\SHLWAPI.dll)GDI32.dll	A: 0x75490000 - 0x75520000	(C:\Windows\syswow64\GDI32.dll)USER32.dll	A: 0x755F0000 - 0x756F0000	(C:\Windows\syswow64\USER32.dll)ADVAPI32.dll	A: 0x75C30000 - 0x75CD0000	(C:\Windows\syswow64\ADVAPI32.dll)sechost.dll	A: 0x75470000 - 0x75489000	(C:\Windows\SysWOW64\sechost.dll)RPCRT4.dll	A: 0x76150000 - 0x76240000	(C:\Windows\syswow64\RPCRT4.dll)SspiCli.dll	A: 0x74630000 - 0x74690000	(C:\Windows\syswow64\SspiCli.dll)CRYPTBASE.dll	A: 0x74620000 - 0x7462C000	(C:\Windows\syswow64\CRYPTBASE.dll)LPK.dll	A: 0x75460000 - 0x7546A000	(C:\Windows\syswow64\LPK.dll)USP10.dll	A: 0x765C0000 - 0x7665D000	(C:\Windows\syswow64\USP10.dll)WSOCK32.dll	A: 0x72F90000 - 0x72F97000	(C:\Windows\system32\WSOCK32.dll)WS2_32.dll	A: 0x75E80000 - 0x75EB5000	(C:\Windows\syswow64\WS2_32.dll)NSI.dll	A: 0x00230000 - 0x00236000	(C:\Windows\syswow64\NSI.dll)WINMM.dll	A: 0x74440000 - 0x74472000	(C:\Windows\system32\WINMM.dll)IMM32.DLL	A: 0x75370000 - 0x753D0000	(C:\Windows\system32\IMM32.DLL)MSCTF.dll	A: 0x75520000 - 0x755EC000	(C:\Windows\syswow64\MSCTF.dll)mswsock.dll	A: 0x71E90000 - 0x71ECC000	(C:\Windows\system32\mswsock.dll)wshtcpip.dll	A: 0x71E80000 - 0x71E85000	(C:\Windows\System32\wshtcpip.dll)NLAapi.dll	A: 0x71E70000 - 0x71E80000	(C:\Windows\system32\NLAapi.dll)napinsp.dll	A: 0x71E60000 - 0x71E70000	(C:\Windows\system32\napinsp.dll)pnrpnsp.dll	A: 0x71E40000 - 0x71E52000	(C:\Windows\system32\pnrpnsp.dll)DNSAPI.dll	A: 0x71DF0000 - 0x71E34000	(C:\Windows\system32\DNSAPI.dll)winrnr.dll	A: 0x71DE0000 - 0x71DE8000	(C:\Windows\System32\winrnr.dll)IPHLPAPI.DLL	A: 0x71FE0000 - 0x71FFC000	(C:\Windows\system32\IPHLPAPI.DLL)WINNSI.DLL	A: 0x71FD0000 - 0x71FD7000	(C:\Windows\system32\WINNSI.DLL)rasadhlp.dll	A: 0x71D90000 - 0x71D96000	(C:\Windows\system32\rasadhlp.dll)

    Hi Community,


    wollte mir ein Supportcar befehl erstellen


    if (strcmp("/Supportcar", cmdtext, true) == 0)
    {
    if (PlayerInfo[playerid][pAdmin] == 0)
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du bist kein Admin!");
    }
    else
    {
    new Float:X,Float:Y,Float:Z,Float:F;
    GetPlayerPos(playerid,X,Y,Z);
    GetPlayerFacingAngle(playerid,F);
    Supportcar[0] = CreateVehicle(560,X,Y,Z,F,3,3,-1);
    new Text3D:Text;
    Text = Create3DTextLabel( "Supporter Car", 0xffffff, 0.0, 0.0, 0.0, 50.0, 0, 1 );
    Attach3DTextLabelToVehicle( Text, Supportcar[0], 0.0, 0.0, 1.5);

    }
    return 1;
    }


    geht nich :D... erstellt auto aber ohne Text ^^ pls i-need help

    hey...


    wollte nen Pickup in nem Interrior machen...



    CreatePickup(1318,23,389.0043,173.7241,1008.3828,3);


    is in der "Stadthalle", wird jedoch nicht angezeigt... woran kann das liegen


    Mfg. manu

    Hey ho...


    wollte ma fragen wie man das macht, wenn ein typ in z.B. ein copcar einsteig, der jedoch kein cop ist (PlayerInfo[playerid][Leader] == 1) schon bei dem drücken der taste stehen bleibt,
    so das er nichtmal die tür "anfasst"

    ... du darfst nicht vergessen dem toten ne variable zu geben... sonst gillt das mit wiederbeleben für jeden spieler der in der nähe ist...
    sprich du machst einfach ne variable, die z.B. mit new TOT[MAX_PLAYERS]; oben definiert ist, und machst dann bei onplayerdeath TOT[playerid] = 1;
    und bei deinerm Timer wieder TOT[playerid] = 0;


    nicht zu vergessen auch in dem command /wiederbeleben TOT[i] = 0;


    ;)


    Edit//


    Sry habe nicht richtig gelesen ^^


    Edit 2//


    Counter nicht deklariert


    forward TodTimer(playerid);
    new MedicBill[MAX_PLAYERS];
    new AlliveCount[MAX_PLAYERS];
    new Float:deathX[MAX_PLAYERS],Float:deathY[MAX_PLAYERS],Float:deathZ[MAX_PLAYERS];


    if(strcmp(cmd, "/wiederbeleben", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] != 2 && PlayerInfo[playerid][pLeader] != 2)
    {
    SendClientMessage(playerid, COLOR_GREY, "** Du bist kein Medic!");
    return 1;
    }
    if(PlayerInfo[playerid][pDuty] != 1 && PlayerInfo[playerid][pMember] == 4)
    {
    SendClientMessage(playerid, COLOR_GREY, "** Du bist nicht im Dienst!");
    return 1;
    }
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(MedicBill[i] == 1)
    {
    if(IsPlayerInRangeOfPoint(i,5.0,deathX[i],deathY[i],deathZ[i]))
    {
    TogglePlayerControllable(i,1);
    MedicBill[i] = 0;
    SetPlayerPos(i,deathX[i],deathY[i],deathZ[i]);
    SendClientMessage(i,0xFFFFFFFF,"Ein Medic hat dich erfolgreich wiederbelebt");
    SendClientMessage(playerid,0xFFFFFFFF,"Du hast den Partienten wiederbelebt!");
    KillTimer(AlliveCount[i];
    }
    }
    }
    return 1;
    }
    }
    return 1;
    }


    public OnPlayerDeath(...)
    {
    GetPlayerPos(playerid,deathX[playerid],deathY[playerid],deathZ[playerid]);
    AlliveCount[playerid] = SetTimerEx("TodTimer",5000,0,"d",playerid);
    MedicBill[playerid] = 1;
    }


    public OnPlayerSpawn(...)
    {
    if(MedicBill[playerid] == 1)
    {
    SetPlayerPos(playerid,deathX,deathY,deathZ);
    TogglePlayerControllable(playerid,0);
    }
    return 1;
    }




    public TodTimer(playerid)
    {
    SendClientMessage(i,0xFFFFFFFF,"Du wurdest nicht rechtzeitig wiederbelebt!");
    SpawnPlayer(playerid);
    MedicBill[playerid] = 0;
    return 1;
    }


    so müsste es gehen (ungetestet)

    hey... will abfragen ob das auto dem spieler gehöhrt....


    auto wird erstellt sobald der spieler connectet
    car[playerid] = CreateVehicle(...);


    will jetzt abfragen ob das auto den spieler gehöhrt... falls nicht, soll er davor stehen bleiben... sprich nicht einsteigen!


    habe noch ein paar viele andere Fahrzeuge(unter OnGameModeInit) und währe gut wenn ich nich jedem einzelnen ne Variable geben müsste...


    Danke im voraus

    hey Community,


    ich wollte mal fragen ob es möglich ist den letzten buchstaben eines strings zu bekommen?


    Beispiel:


    string is "hahablubklap"
    SendClientMessage(playerid,0xFFFFFFFF,"Der Letzte Buchstabe ist p! ");


    ... nur halt mit ner abfrage, dass wenn sich der string ändert dass sich dann auch der letzte Buchstabe ändert.

    wie ich den Dialog gemacht habe oder was? O.o


    habe einfach mit ShowPlayerDialog nen input dialog erstellt und dann bei OnDialogResponse den inputtext abgefragt und mit nem string in der txt datei gespeichert

    _______________________________________________________________


    Zwischensicht
    ________________________________________________________


    momentan sollte unser public ungefähr so aussehen:


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == 2)
    {
    if (IsPlayerInRangeOfPoint(playerid,20,1584, -1642, 9.5)
    {

    }
    }
    return 1;
    }




    ________________________________________________________________


    Schritt 5:
    ________________________________________________________




    Nun müssen wir das Objeckt zu bewegen bringen. Und dass beste ist, wir müssen
    keine kraft dafür haben



    Das einzige was wir benötigen ist die Funktion:
    MoveObject.



    Diese benötigt folgende Dinge:
    objecktid = die ID, die das objeckt im script hat (nicht die modelid)
    Float:X = Die Position auf der X-Achse, wo es sich hinbewegen soll
    Float:Y = Die Position auf der Y-Achse, wo es sich hinbewegen soll
    Float:Z = Die Position auf der Z-Achse, wo es sich hinbewegen soll
    Float:Speed = Die Geschwindigkeit mit der es sich zu der Position bewegen soll.


    Fertig sähe das für das LSPD tor folgendermaßen aus:


    MoveObject(LSPDTor, 1584, -1642, 4, 0, 0, 90);


    hier kommt auch unsere Variable LSPDTor zum einsatz.
    Sie kann als Objecktid genutzt werden und ist damit sehr hilfreich.








    ________________________________________________________________


    Zwischensicht
    ________________________________________________________






    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == 2)
    {
    if(IsPlayerInRangeOfPoint(playerid,20,1584, -1642, 9.5)
    {
    MoveObject(LSPDTor, 1584, -1642, 4, 0, 0, 90);
    }
    }
    return 1;
    }



    ... nun nurnoch einen Timer unter die Funktion MoveObject setzten,
    dann sind wir auch schon fast fertig
    _____________________


    Der Timer ist Simpel aufgebaut. es gibt eine function die ausgeführt werden soll,
    eine zeit nach der die Funktion ausgeführt werden soll (in Millisekunden)
    und eine repeater, falls man eine funktion immer wieder ausführen will.
    (0 = nein, 1 = Ja)


    SetTimer("LSPDClose",5000,0);



    ________________________________________________________________


    Schritt 6:
    ________________________________________________________




    Jetzt sind wir fast fertig. Nun müssen wir nur noch die funktion schreiben, die nach der angegebenen
    Zeit von dem Timer ausgeführt werden soll.



    Hierzu erstellen wir einen neuen Public:



    public LSPDClose()
    {
    return 1;
    }



    hier hinein wollen wir schreiben, dass sich das Objekt wieder zurück bewegt.
    Also erstellen wir wieder eine MoveObject funktion.



    MoveObject(LSPDTor,1584, -1642, 9.5, 0, 0, 90);







    ________________________________________________________________


    Ende:
    ________________________________________________________



    Ich bedanke mich das ihr mein Tutorial gelesen habt,
    freue mich über jede Kritik, aber auch gegen ein lob habe ich nichts



    Mit freundlichen Grüßen



    manumeyer


    Edit: Thema in 2 geteilt!
    Edit2: Fehler
    Edit3: Link eingefügt