Lösch mal die Log-Datei und poste dann den gesammten Inhalt, so kann man sich nicht zurecht finden.
Beiträge von Andosius
-
-
Im SAMP4You Forum stand vor zwei Jahren noch eine Anleitung dazu, die gibt's sicherlich noch immer.
Klick dich durch. =) -
Es gibt noch eine andere Botart, Actor heißen die. Vielleicht erfüllen die dein Ziel?
-
Sehr schöne Ideen, die du dort umgesetzt hast.
-
Hey, danke für die schnelle Antwort.
Ich muss dir leider gestehen, dass ich auf dieser Seite schon war und es mir keinen richtigen Durchblick gebracht hat. Eher mehr Verwirrung als Erklärung.Mein Ziel ist folgendes:
-Event
->Abfrage ob eine Taste gedrückt wurde
->> (ab hier kann ich den Rest) mit der Taste als String eine Funktion aufrufen und die Taste als Signal für Aufrufe weiter verarbeiten.Stell's dir wie ein Keybinder für SAMP vor, ich drücke eine Taste und will eine Funktion betonen.
Multi-Keys sind Banane, das lerne ich dann irgendwann - falls es irgendwann nötig sein sollte - dazu.
Genau das ist mein Ziel, habe aber keine Ahnung wie ich das umsetzen soll.Gruß.
Edit//
Na super, gerade fündig geworden.
https://www.teialehrbuch.de//K…726-Tastatureingaben.htmlTrotzdem danke,
-
Hey,
ich möchte bestimmte Aktionen auf eine Keyboard-Taste legen, weiß aber leider nicht im geringsten wie ich bei dem Thema vorgehen soll.
Gedacht habe ich es mir so ähnlich: Ich drücke F1; F1 führt eine Funktion die ich vorher erstellt habe aus.
Mir wäre wichtig, dass ich den Key als String in der Klasse zurück erhalte. Möchte nicht viel SchnickSchnack rein stopfen.Bestimmte Schlüsselwörter in einer Kombination wären super.
Bin seit 13 Uhr nebenbei am suchen und bin so langsam am verzweifeln, da mir die Threads in anderen Foren oder auf anderen Websites nicht im Geringsten helfen.Hoffe, dass mir jemand helfen kann...
Gruß.
-
1::
Suspend Permit
Sendinput Sie erhalten nun eine Rechnung bitte Zahlen Sie diese.
sleep 2000
Sendinput t/geberechnung 2 Pizza
return 1
Sollte doch eigentlich funktionieren. Bin neu in AHK also bitteEr will den Chat auslesen.
-
Eine API (UDF 0.3.7) wird für GetChatLine benötigt, du musst ein Timer erstellen, der diesen Prozess alle X-Millisekunden wiederholen und den String-Inhalt prüfen.
Wenn du mir mehr Informationen und ChatLogs dazu gibst, kann ich dir helfen.
-
Eventuell musst du wenn es ein Linux Server ist noch den Port freigeben (vServer oder höher).
Andernfalls hast du kein Zugriff oder die Daten sind falsch. -
Musst zuvor jedoch die Multi-Connetion Funktion aktivieren.
Siehe dafür r33 Erklärung. -
Echt sehr schöne Map, nur gefällt mir dort dieses Beige nicht so schön, da man dort die Konturen nicht sehen kann.
Sonst gut gemacht. -
Genau wie bei deinem SendClientMessage da oben.
Erst formatieren und dann den Text mit der String-Variable ersetzen. -
@XeroX deswegen steht auch im Wiki, dass man unbedingt den cache nach Gebrauch löschen muss.
-
Darf ich fragen warum?
Klar,
es nimmt zusätzliche Ressourcen für einen Wiedergabewert ein, den man auch über das "kleinere" Verfahren herauskriegen kann.
Ist in meinen Augen übersichtlicher und kompakter, ist aber im Endeffekt Geschmackssache.Es geht ja schließlich um eine X-Zahl.
-
format(query,sizeof(query),"SELECT COUNT(besitzer) FROM hanf WHERE besitzer = '%s') ",SpielerName(playerid));
format(query,sizeof(query),"SELECT COUNT(besitzer) FROM hanf WHERE besitzer = '%s' ",SpielerName(playerid));
Das würde ich aber lieber per MySQL-Query und seiner Cache-Funktion machen.
Da ist ein neues Public dafür in meinen Augen relativ ungeeignet (sofern R33+, keine Ahnung mehr inwiefern sich diese unterscheiden).Sprich:
new Cache:result = mysql_query(verbindungsid,query,true);
Dann einfach den Inhalt auslesen und mit cache_delete(result); den Speicher bereinigen. -
Hey, das liegt daran, dass der Inhalt oben wahrscheinlich in einem Timer steht.
Wird der Timer mehrfach aufgerufen, wird der Timer auch mehrfach gestartet.
D.h. du musst dafür Sorge tragen, dass der Timer wirklich nur 1x gestartet wird.z.B.
new Float:bhealth;
GetPlayerHealth(playerid, bhealth);
if(bhealth > 6.0)
{
TextDrawHideForPlayer(playerid,VERLETZT);
TextDrawShowForPlayer(playerid,Ts3);
TextDrawShowForPlayer(playerid,TsIp);
KillTimer(Verletzttimer[playerid]);
SetPVarInt(playerid,"verletzt_timer",0);
}
else if(bhealth < 6.0 && GetPVarInt(playerid,"verletzt_timer") != 1)
{
LoopingAnim(playerid, "SWEET", "Sweet_injuredloop", 2.5, 1, 0, 0, 0, 0); // Dieing of Crac
RemovePlayerFromVehicle(playerid);
TextDrawShowForPlayer(playerid,VERLETZT);
TextDrawHideForPlayer(playerid,Ts3);
Verletzttimer[playerid] = SetTimerEx("verletztsein",60000,0,"i",playerid);
TextDrawHideForPlayer(playerid,TsIp);
SetPVarInt(playerid,"verletzt_timer",1);
}E: Was heißt wahrscheinlich, OnPlayerUpdate kann mehr als 10x pro Sekunde aufgerufen werden. xD
Gruß.
-
Dies habe ich für die Sprunkautomaten auch gemacht.
Ich habe das ganze so gelöst:Cif(GetPlayerAnimationIndex(playerid)){ new animlib[32], animname[32]; GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32); if(strcmp(animname,"VEND_USE",true) == 0){ TogglePlayerControllable(playerid,0); TogglePlayerControllable(playerid,1); return SendClientMessage(playerid,-1,"Du kannst dir hier kein Getränk kaufen!"); } }
Danke, habe es aber etwas anders gelöst.
if(!strcmp(animlib,"VENDING",true)){
if((GetPVarFloat(playerid,"health") - health[0]) != 35.0)
SetPVarFloat(playerid,"health",health[0]+35.0);
}
Brauchte das für mein Anti-Cheat.
Empfehle dir aber das ebenfalls mit "animlib" zu machen, da es verschiedene VEND_USE-Arten gibt. -
Gibt es eine Liste mit allen Heal-Automaten in SA oder gar eine Funktion mit der man abfragen kann, ob der Spieler in der Nähe eines Automaten ist, beziehungsweise mit ihm agiert?
-
Finde ich recht schick, sehr gut gemacht. =)
-
Naja, wurde es offiziell nicht. Es gab wohl Leute die es ohne Erlaubnis weitergegeben haben, aber das war es auch schon.
Soweit ich mich erinnere wurde das Script verkauft und dann von Team-Mitgliedern veröffentlicht.
Schade wenn man beachtet, wie viel Mühe dahinter steckte.