ncom.inc(29)
Hast du meine Deklarierungen für die Variablen verwendet ![]()
ncom.inc(29)
Hast du meine Deklarierungen für die Variablen verwendet ![]()
Ist ein 500er Timer nicht sehr Resourcenfressend?
Mhm, naja klar ist er Ressourcenfressend, aber anders kann man das nicht machen...er kann ja die Timerid in einer Variable speichern und sobald er aus dem Vehicle aussteigt, den Timer löschen ![]()
Aber wenn man einen halbwegs guten Server hat, sollte eigentlich nichts passieren ![]()
mfg. ![]()
Na, so hier mal ein Beispiel:
new Nos[1];
Nos[0]=CreatePickupEx(1239,1,1549.0024,-2258.1736,13.5469,0);
//Zum Bsp bei OnPlayerConnect
SetTimerEx("Los", 500, 1, "i", playerid);
forward Los(playerid);
public Los(playerid)
{
new Float: X, Float: Y, Float: Z;
for(new i=0; i<sizeof(Nos); i++)
{
GetPickupPos(Nos[i], X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z))
{
DestroyPickup(Nos[i]);
//Hier ist er dann in dem Pickup !!!
}
}
return 1;
}
mfg. ![]()
Der Callback OnPlayerPickUpPickup wird nicht aufgerufen, wenn man in einem Auto sitzt (gab es schon viele Themen).
Aus diesem Grund hatte ich eine Include geschrieben (Diese Hier) dort gibt es eine Funktion die sich GetPickupPos nennt, schaus dir mal an und die solltest du nutzen mit einem Timer einfach ![]()
mfg. ![]()
Was du definitiv verwenden musst ist folgendes:
new string[128], var; //Die Gültigkeit...mit var prüfen
if(var == 1) format(string, 128,"Der Auftrag ist vorhanden /service bla");
else format(string, 128,"Der Auftrag ist nicht mehr vorhanden /service bla");
ShowPlayerDialog(playerid,-1,DIALOG_STYLE_LIST,"Iwas",string,"ok","");
So irgendwie ![]()
mfg. ![]()
Hört sich interessant an, hätte interesse, welche Zahlungsarten stehen dir zur Verfügung ?
mfg. ![]()
Also erstmal kurz was allgemeines bevor ich zu den Posts eine Stellung nehme:
Ich habe gerade 3 neue Funktionen hinzugefügt, schaut sie euch einfach an, es sind die letzten 3 ![]()
GetPickupPos(pickupid, &Float: X, &Float: Y, &Float: Z);
Das kann ich dir erklären, also es ist so, dass wenn du in einem Auto sitzt die Funktion OnPlayerPickUpPickup nicht aufgerufen wird, somit kann man nicht bestimmen (wenn man in einem Auto sitzt) wo sich ein Pickup befindet, aber mit dieser Funktion schon ![]()
GivePlayerJetpack
GivePlayerWEapon ist auch nicht viel länger
1. Ein Jetpack ist keine Waffe ![]()
2. Für Neulinge eine Vereinfachung ![]()
CreatePickupEx(model, type, Float: X, Float: Y, Float: Z, virtualworld = 0);
Nein kein Pickup Streamer, dies dient lediglich dazu, dass man die Position eines Pickups bestimmen kann ![]()
CreateVehicleEx
Nein, auch kein Streamer, dies dient dazu, dass man den Interior dieses Fahrzeuges bestimmen kann ![]()
GetPlayerCoDriverName
//Edit: Idee Umgesetzt, Funktion ist nun vorhanden !
mfg. ![]()
//Edit²: Neuer Link hinzugefügt...wer noch Ideen hat schreiben ![]()
//Edit³: Neue Funktion hinzugefügt + InRange verbessert (danke nochmal IPrototypeI). Falls jemand noch Vorschläge hat, kann er sie gerne posten ![]()
Hast du die streamer.dll datei auch in den Plugins Ordner gepackt ![]()
mfg. ![]()
So, jetzt habe ich deinen Fehler gefunden ![]()
Du lädst die streamer Version 2.5.2 aber es gibt inzwischen schon eine 2.6.1 ![]()
Also downloade dir mal die ganzen Plugins + Includes neu und pack sie in die entsprechenden Ordner ![]()
Hier ein Link zu den aktuellen Plugins und Includes: Incognito Streamer 0.3e 2.6.1
so und ehm immer wen ich was neu scripte oder so
kommt der fehler fast immer wieder
Welcher Fehler ? ![]()
mfg. ![]()
würde ich die bei System32 reinstecken
Da diese .dll Datei anscheinend wichtig für die samp-server.exe wichtig ist, sollte man sie in den Ordner packen, wo auch die .exe drinnen ist ![]()
Lade dir mal die neusten Includes von dem Streamer runter und pack die in den Pawno/Include Ordner ![]()
mfg. ![]()
So, bei OnPlayerDeath:
if(IsPlayerConnected(killerid))
{
new name[24], string[128], name1[24];
GetPlayerName(playerid, name1, 24);
GetPlayerName(killerid, name, 24);
format(string, 128,"Spieler %s wurde von %s getötet !",name1,name);
SendClientMessageToAll(rot, string);
}
mfg. ![]()
Ehm, willst du den Bot springen lassen oder einen Menschen ?
mfg. ![]()
Aber wie bilde ich damit eine Abfrage
Für was eine Abfrage ![]()
10/10 Punkte
Die Idee ist voll geil hätte nicht gedacht das sowas möglich ist. Könntest du vielleicht ein befehl machen das die Rakete auch respawnt? sonst muss man immer Server an und aus machen.
Sag mal, kannst du nicht lesen oder ignorierst du absichtlich meinen Post
Wie kannst du auf so ein System 10/10 Punkte geben, das stimmt vorne und hinten nicht !!!
Ich würde anstatt
TogglePlayerControllable(Atomname,1);
TogglePlayerControllable(playerid,1); machen oO
LG
Der Parameter playerid wird aber erst gar nicht übergeben, das Script ist einfach nur schlecht und besteht aus C&P teilen die nicht kompatibel sind !!!
mfg. ![]()
Du siehst ja wie es aufgebaut ist, den Rest kannste selber, niemand wird dir hier irgendwelche Copy&Paste Dinge schreiben, die direkt zu deinem Script passen, das musst du selbst anpassen.
Aber dann solltet ihr ihm auch vernünftige Sachen schreiben und nicht sowas:
Zitat(!dini_Exists(SpielerDatei))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");
![]()
Aber ansonsten sollte der Code von roOlling funktionieren, musst nur paar Sachen noch ausbessern und evtl anpassen... ![]()
mfg. ![]()
Ich weiß das dieser Thread sehr alt ist, ich will hier aber nur nochmal etwas für die schreiben, die auch hier zufällig landen
(von einem anderen Thread).
Dieses System ist richtig schlecht gescriptet und funktioniert rein gar nicht !
Schon allein diese Sache:
Zitatnew Atomname;
TogglePlayerControllable(Atomname,1);
SendClientMessage(Atomname,ROT,"Hackvorgang abgeschlossen. Raketenstart eingeleitet");
ist größter Schwachsinn ! ![]()
Nicht zu empfehlen und auch nicht zu befürworten !
mfg. ![]()
Alles anzeigenfor(new i = 0; i < MAX_PLAYERS; i++)
{
new plName[MAX_PLAYER_NAME], string[128];
GetPlayerName(i, plName, sizeof(plName));
format(string, sizeof(string), "%s %s %s", plName, RANG_VARIABLE, USW);
SendClientMessage(playerid, -1, string);
}
Die Variable RANG_VARIABLE und USW musst Du natürlich selbst wählen.
Denkbar einfach...
Ehm, diesen Code solltest du noch etwas verbessern, denn so werden dir 500 Spieler angezeigt ![]()
So wäre es besser:
new plName[MAX_PLAYER_NAME], string[128];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(!IsPlayerInFrak(i, 1)) continue; //If abfrage anpassen
GetPlayerName(i, plName, sizeof(plName));
format(string, sizeof(string), "%s %s %s", plName, RANG_VARIABLE, USW);
SendClientMessage(playerid, -1, string);
}
mfg. ![]()
Und ob der Spieler ein NPC ist
Sinnlos, auf diese 1millisekunde kommt es auch nicht mehr an ![]()
Und so sollte der Code aussehen:
new string[128], Float:X,Float:Y,Float:Z;
format(string,128,"%s sagt: %s",SpielerName(playerid),text);
GetPlayerPos(playerid,X,Y,Z);
for(new i; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(!IsPlayerInRangeOfPoint(i,15.0,X,Y,Z)) continue;
SendClientMessage(i,White,string);
}
return 0;
mfg. ![]()