Beiträge von SBIKA

    Ein Problem bei TextDrawCreate mit dem Text.
    Um herauszufinden, welches TextDraw kannst du einfach mal print() mit individuellen Texten davor packen und nachher in der Server Log nachgucken, welches das letzte TextDraw war. Das darauf folgende ist dann in irgendeiner Weise fehlerhaft.


    Wenn du eine grobe Ahnung davon hast, was bzw. wo du in der vorhanden amx etwas geaendert hattest koenntest du die amx mit deamx in pawn konvertieren und die Aenderungen in die vorhanden pawn Datei uebertragen.

    Hast du aber leider nicht selber gemacht das habe ich schon im Englischen SAMP Forum gesehen und auch in paar servern
    darum 0/10 ...


    Ach quatsch das ist nur Zufall. In OnFilterScriptInit steht doch, dass er das selber gemacht hat. ('by Der_scripter95 aka. ilkay') Er hatte nur die gleiche Idee und selbe Umsetzung, nur mit deutschen Texten, wie der Entwickler von 'Mini-Info boom' am 3. August 2010 (http://pastebin.com/dwM4U9Ge), wie der Entwickler von 'info ikona napravio eldan - ucitana' am 12. April 2010 (http://pastebin.com/wyfAd8dx) und wie der Entwickler von 'Mini Info Bar By [WsR]RyDeR' am 29. Juli 2009. (Script ist hoechst Wahrscheinlich von Ryder.)


    Ironie beiseite - das sind in meiner Bewertungsskala -10/10 Punkten, dafuer, dass du kaum etwas veraendert hast und die Arbeit anderer Leute als dein eigen ausgibst.


    Habe gerade mal mit einem Program die Original deutsche Version von RyDeR mit deiner verglichen und festgestellt, dass ich mit der Aussage bis auf ein paar Verschlechterungen bei der Grammtik in Bezug auf 'info bar' (welches du ueberall einfach mit "info's" ausgetauscht hast, was in allen Faellen die Grammtik von google-translate Grammatik auf ein noch schlechteres Niveau herabgesenkt hat), dem Entfernen des Callbacks 'OnPlayerInfoChange', dem Austauschen des Webseite namens mit 'WEBSEITE' und den print() texten bei OnFilterScriptInit/Exit.
    Echt super du kannst ein paar text ausgaben bei einem Quelltext veraendern. Erwartest du dafuer jetzt anerkennung oder wie?

    Vielleicht hilft ja einer der Tipps in den Kommentaren zu dem Artikel von Kaspersky ueber diese Ransomware (nicht trojaner).
    http://www.securelist.com/en/b…_German_Police_BKA_notice
    Dort wird beschrieben, dass man Windows im Safe Mode (f8 beim starten) starten soll und im registry editor unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon den Wert 'Shell' in explorer.exe umaendern soll und die Datei, die dort angegeben ist loeschen oder verschieben.


    Im Vergleich zu: http://www.securelist.com/en/b…mware_GPCode_strikes_back
    ist das was auf dem PC ist doch recht harmlos. Bei GPCode werden die Daten verschluesselt und der Schluessel wird laut Kaspersky Entwicklern entweder gar nicht gespeichert (was bedeutet, dass man mit 100 Prozentiger Wahrscheinlichkeit seine Daten nie wieder bekommt) oder sie werden an die Entwickler/Erpresser geschickt.

    Bei OnDialogResponse ueberpruefen, ob der Spieler bei dem dialog mit dialogID = 10 auf weiter (response = 1) geklickt hat und wenn das der Fall ist den zweiten Teil der Adminhilfe mit ShowPlayerDialog anzeigen.


    PS.: Die dialogIDs wuerde ich in ein enum{}; packen. Dann kommt es nicht so leicht zu verwechselungen, wenn man mal etwas aendert.

    http://forum.sa-mp.com/showthread.php?t=79154


    #pragma tabsize 0
    Damit werden die Warnungen wegen den Einrueckungen unterdrueckt. Ist aber nicht zu empfehlen. Viele von denen, denen Einrueckungen egal ist haben frueher oder spaeter Probleme damit einen Klammer-Fehler zu finden, da der Code einfach nur noch unuebersichtlich ist und man nicht mehr weiss, ob man gerade am Anfang einer bestimmten Schleife, am Ende oder irgendwo in der Mitte ist.

    Danke, von Hand funktioniert es nun. Nur dauert das ewig bei ca. 600 Objekten und 6 Koordinaten pro Objekt. Gibts da vielleicht ein Programm dafür? :)


    Ist zwar schon ein paar Wochen her, aber Haxler ist wahrscheinlich immer noch dabei die Zahlen zu konvertieren, wenn er das alles per Hand macht und noch nicht aufgegeben hat :P


    Die Positionen koennen ganz einfach mit einem define umkonvertiert werden. Habe das hier einmal fuer das 'MidoStream' filterscript dargestellt.
    #define CreateStreamObject( printf("CreateStreamObject(%i, %0.3f, %0.3f, %0.3f, %0.3f, %0.3f, %0.3f, %0.2f);",
    Wenn man sich eine fprintf Funktion zusammenbastelt kann man dann auch die Daten bequem in einer Datei speichern.

    Hallo, ich habe ein Problem, und zwar ich möchte einem String entnehmen ob der erste! Buchstabe ein großes "T" ist.


    Meine Vorgehensweise bisher:
    if(strfind(string, "T", false) == 1)


    Was ist daran falsch ?
    Danke im Voraus.


    Laut sa-mp wiki duerfte das folgende funktionieren:
    if(strfind(string, "T", false) == 0)
    Da kein Buchstabe vor dem 'T' sein soll und strfind die Anzahl an Buchstaben vor dem ersten Auftreten des Substrings zurueckgibt.
    Eine andere Moeglichkeit die etwas schneller geht, da strfind vermieden wird waere:
    if(string[0] == 'T')

    NPCs sind in SA-MP normale Clients. Auf die Script variablen anderer Scripts koennen sie nicht einfach so zugreifen. Nur mit hilfe der Funktionen, die in a_npc.inc definiert sind. Daher ist es vermutlich auch nicht moeglich IsPlayerAdmin() zu verwenden.
    Ausserdem versuchst du IsPlayerAdmin als Variable und nicht als funktion zu nutzen und woher nimmst du die playerId? OnRecordingPlaybackEnd hat keine playerId die uebergeben wird.


    Edit:
    Korrektur bezueglich OnClientMessage - Funktioniert nicht mit chatMessages, wie ich annahm, sondern nur mit ServerMessages - also nicht SendPlayerMessageToPlayer, sondern SendClientMessage verwenden, um dem NPC Nachrichten zu uebermitteln.
    Es gibt aber auch noch den Callback OnPlayerText fuer NPCs. Damit kann man auch Nachrichten von Spielern (Chat) verarbeiten.


    http://wiki.sa-mp.com/wiki/NPC:OnClientMessage
    http://wiki.sa-mp.com/wiki/NPC:OnPlayerText

    Ich möchte das der Bot erst dann Spawnt wenn ich in der Nähe bin oder den Command eingebe. Also mit spawnen = Strecke Abfahren beginnt. Also REC abspielen sozusagen.


    Dann guck dir mal npctest.pwn an. Dort ueberprueft der bot mit einem Timer, ob ein Spieler in der Naehe ist. Wenn das der Fall ist kannst du eine Variable setzen, dass der Bot in benutzung ist und wenn er es nicht ist kannst du das RecordFile abspielen lassen.
    Wenn du mehrere Bots gleichzeitig fuer einen und den selben Task verwenden moechtest (also wenn bot1 in benutzung, dann soll bot2 einspringen) waere es aber zu empfehlen die Distanz mit dem Server-Script zu ueberpruefen und im Server-Script eine occupied variable zu haben. Dann die befehlsgebung, wie bereits beschrieben.

    native StartRecordingPlayback(playbacktype, recordname[]);
    native StopRecordingPlayback();
    native PauseRecordingPlayback();
    native ResumeRecordingPlayback();
    Die Funktionen werden aber nicht im gamemode, sondern im npcmode script gesteuert.
    Guck dir einfach mal die scriptfiles/beispiele im server/npcmodes/ ordner an.


    Um befehle zu uebergeben kann man unter Umstaenden das ganze so gestalten:
    gamemode/filterscript welches entsprechende kommandos verarbeitet: SendPlayerMessageToPlayer(playerID_bot, ...); bei bestimmten bot command, z.B. '/taxi'
    und im file des bots: OnClientMessage(color, text[]); mit dem call ueberpruefen, ob 'text' die vom gamemode/filterscript gesendete Nachricht ist und entsprechnde Start/Stop-Recording Befehle benutzen.


    public OnPlayerSpawn(playerid)
    {
    level(playerid); // braucht einen parameter
    return 1;
    }


    public level( playerid ) // war kein parameter uebergeben - 'playerid' ist keine globale variable
    {
    new level = GetPlayerScore(playerid); // variablen definitionen gehoeren entweder in eine globale oder eine locale ebene, nicht irgendwo dazwischen..
    new string[10]; // war zu klein um ueberhaupt 'Level:' abzuspeichern
    format(string, sizeof string, "Level:%i", level); // %s ist fuer text-strings - %i fuer nummern
    //TextDrawHideForAll(level); // was soll das werden? level ist kein Textdraw..
    level = TextDrawCreate(20,110,string); // jetzt ist level ein textdraw
    TextDrawLetterSize(level, 0.6, 1.8);
    TextDrawFont(level, 3);
    TextDrawSetOutline(level, 2);
    return 1;
    }
    Grundlagen bezueglich funktions und variablendefinition nochmal durchlesen wuerde ich vorschlagen.

    Inakzeptabel ist, dass über 90% aller Aussagen in diesem Thema auf Spekulationen basieren.


    Das ist ein Problem des Internets. Zu viele Leute meinen etwas, in ihren Augen korrektes, zu sagen zu haben und uebertoenen die Leute, die tatsaechlich etwas korrektes zu sagen zu haben. Vermutlich findet man mittlerweile mehr Fehlinformationen und Verschwoerungstheorien ueber Bin Laden's tod als korrekte informationen. Ich glaube nur was ich mit meinen eigenen Augen gesehen habe und das ist das Bin Laden nie existierte und eine Verschwoerung der USA gegen die Europaer ist. :P


    Mal im Ernst - meine Meinung zu dem Thema osama bin laden ist, dass das wieder einmal Anreiz fuer wilde Verschwoehrungstheorien gibt, wie ja bereits in diesem Thread anhand von ein paar Posts bestaetigt. Aber who cares, ob er wirklich tot ist oder nicht, wird sich ja sowieso nicht viel fuer die meisten von uns aendern.

    Nach dem ich die EInrueckungen korrigiert habe nehme ich mal an, dass else if(SpielerInfo[playerid][sMember] == 0 || SpielerInfo[playerid][sLeader] == 0)
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerPos(playerid, 1772.8477,-1941.1484,13.5666); //1129.2047,-1489.1949,22.7690
    SetPlayerFacingAngle(playerid, 315);
    SetCameraBehindPlayer(playerid);
    return 1;
    }
    Der noob spawn sein soll. Verschieb' den code vor die schliessende Klammer zuvor, da die, wie schon gesagt, if(IsPlayerConnected(.. schliesst. Ausserdem wuerde ich da SetPlayerInterior hinzufuegen um sicher zu gehen, dass der Spieler im korrekten interior ist.

    Bei pTut == 0 setzt du die hoehe auf 1061, aber kein Interior.
    SetPlayerPos(playerid,-1834.8555,18.3044,1061.1436);
    SetPlayerFacingAngle(playerid, 4.0557);
    SetPlayerInterior(playerid,0);


    Ich werde jetzt nicht das ganze Script durchgehen da es viel zu unuebersichtlich ist. Wenn du die Sachen vernuenftig einruecken wuerdest koennte man den Fehler um einiges leichter finden. Du hast aber Eindeutig etwas mit den Klammerungen Falsch gemacht, denn in Zeile 352 schliesst du 'if(IsPlayerConnected(playerid))' und darauf folgt:
    else if(SpielerInfo[playerid][sMember] == 0 || SpielerInfo[playerid][sLeader] == 0)
    {
    SetPlayerToTeamColor(playerid);
    SetPlayerPos(playerid, 1772.8477,-1941.1484,13.5666); //1129.2047,-1489.1949,22.7690
    SetPlayerFacingAngle(playerid, 315);
    SetCameraBehindPlayer(playerid);
    return 1;
    }
    Ist mit sicherheit nicht beabsichtigt.


    Btw @Hisara:
    SetPlayerPos(playerid,262.4644,71.1239,1003.2422);
    SetPlayerFacingAngle(playerid, 270.0);
    SetPlayerInterior(playerid,6);
    Interior 6, daher ist die hoehe wahrscheinlich schon korrekt.

    Hallo User,
    Wie kann ich machen das wenn jemand portet z.b /Paintball das vorne der name [Paintball](Spielname) Steht


    Dabei gehen aber maximal 7 Buchstaben des Spielernamens verloren, da MAX_PLAYER_NAME das absolute maximum ist und wenn du vorne '[Paintball]' vorhaengst 11 zusaetzliche Buchstaben davor sind und der Spieler eine Maximale Namenslaenge von 20 vorgeben darf (MAX_PLAYER_NAME - 20 = 4 resultiert in 11-4 = 7 verlorenen Buchstaben).