Hi Community
ich war letzens auf nem Server(Swat-Server).
Dort hatte man als Mitglied des S.W.A.T.-Teams eine SD-Pistole mit 10 Schuss.
Diese SD-Pistole hatte den Effekt, dass der Angeschossene den eigentlichen /crack-Befehl erhielt.
Und ich wollte euch fragen, wie so etwas möglich ist, da ich so etwas ähnliches in mein Script aufnehmen möchte.
MfG
Raphii_Warren
Frage zu nem Schusstazer
- Raphii Warren
- Geschlossen
- Erledigt
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
-
-
Ich würde mal sagen: man prüft ob ein spieler auf einen anderen spieler zielt (ich glaub mit "GetPlayerCameraFrontVector" oder so) und dabei KEY_FIRE drückt
-
Denkst du, oder weißt du?
-
was anderes kann ich mir nicht vorstellen
-
Ich schau ma morgen, ob noch jemand ne andere Idee hat.
Wenn nicht, versuch ich es damit.Und achja, wo wir grad dabei sind:
Gibt es sowas wie: OnPlayerHitPlayer oder so. Also wenn ein Spieler den anderen schlägt/abschießt.
//EDIT: Aber wie soll ich mit deiner Strategie festlegen, dass er auf jemanden zielt?
Ich kann ja bloß die Koordinaten seines Huds erkennen. Und wie soll ich erkennen, dass da einer steht? -
if Player(playerid, x, y, z,(Waffe) press KEY_FIRE)
(playerid, freezDenke sowas in die Richtung.
Weis niucht genau
Also wenn jemand mit der Waffe schießt ist der andere gefreezt im Umfeld von ... Kordinaten
Der Code ist falsch.
Ich denke so in die richtung das ergibt als einziges Sinn
Wenn du es hast poste mal hier den pawn code würde des auch gerne verwenden .
mfg lolli -
du musst das freez aber deffinieren oder du nimmst gleich TogglePlayerControllable(playerid,0); dann ist er gefreezt und zum loslassen einfach das 0 auf 1 setzen
-
Ich bin script neuling.
Ich habe nur versucht es sinnvolll erscheine ztu lassen
Wollte nur andeuten in die Richtung
aber yo
freez definieren oben im gamemode
und so//edit
The_otto kannst vill und den pawn code komplett posten das es nur mit der silence Pistol funct also in nem tut?
Währe echt cool -
Der erste Poster hatte Recht.
Für dein Niveau empfehle ich das : http://forum.sa-mp.com/showthread.php?t=195439
-
Wie mache ich das dann das er gefreezt ist?
Mein pawncode:
public OnPlayerShootPlayer(shooter,target,damage)
{
new name[MAX_PLAYER_NAME],msg[80];
GetPlayerName(shooter,name,sizeof(name));
format(msg,sizeof(msg),"* %s hat dich mit seiner Tazerwafffe für 5 Sekunden geschockt und hat die %i Leben abgezogen!",name,damage);
SendClientMessage(target,0x33AA33AA,msg);
GetPlayerName(target,name,sizeof(name));
format(msg,sizeof(msg),"* Du hast auf %s geschossen.Du hast ihm dadurch %i schaden hinzugefügt. Eri ist nun gefreezt !",name,damage);
SendClientMessage(shooter,0x33AA33AA,msg);
return 1;
}Er soll also dann für m sek gefreezt sein.
Wie mache ich das? -
TogglePlayerControllable
SetTimerEx -
Wie?
Kannste mir pls den Pawncode geben?
Bin ziemlich neu in den Timer Sachen deswegen
Habe en Selfmade nix gf deswegen -
forward tazer(playerid);
public OnPlayerShootPlayer(shooter,target,damage)
{
if(GetPlayerWeapon(playerid) == 23) // sd-pistol
{
TogglePlayerControllable(target,0);
SetTimerEx("tazer",5000,0,"i",target);
}
new name[MAX_PLAYER_NAME],msg[80];
GetPlayerName(shooter,name,sizeof(name));
format(msg,sizeof(msg),"* %s hat dich mit seiner Tazerwafffe für 5 Sekunden geschockt und hat die %i Leben abgezogen!",name,damage);
SendClientMessage(target,0x33AA33AA,msg);
GetPlayerName(target,name,sizeof(name));
format(msg,sizeof(msg),"* Du hast auf %s geschossen.Du hast ihm dadurch %i schaden hinzugefügt. Eri ist nun gefreezt !",name,damage);
SendClientMessage(shooter,0x33AA33AA,msg);
return 1;
}
public tazer(playerid)
{
TogglePlayerControllable(playerid,1);
} -
C:\Users\Sven\Desktop\Realife 3c\gamemodes\Reallife.pwn(215) : error 017: undefined symbol "playerid"
C:\Users\Sven\Desktop\Realife 3c\gamemodes\Reallife.pwn(220) : warning 217: loose indentation
C:\Users\Sven\Desktop\Realife 3c\gamemodes\Reallife.pwn(229) : warning 235: public function lacks forward declaration (symbol "tazer")public OnPlayerShootPlayer(shooter,target,damage)
{
if(GetPlayerWeapon(playerid) == 23) // sd-pistol //215
{
TogglePlayerControllable(target,0); //217
SetTimerEx("tazer",5000,0,"i",target);
}
new name[MAX_PLAYER_NAME],msg[80];
GetPlayerName(shooter,name,sizeof(name));
format(msg,sizeof(msg),"* %s hat dich mit seiner Tazerwafffe für 5 Sekunden geschockt und hat die %i Leben abgezogen!",name,damage);
SendClientMessage(target,0x33AA33AA,msg);
GetPlayerName(target,name,sizeof(name));
format(msg,sizeof(msg),"* Du hast auf %s geschossen.Du hast ihm dadurch %i schaden hinzugefügt. Er ist nun für 5 Sekunden gefreezt !",name,damage);
SendClientMessage(shooter,0x33AA33AA,msg);
return 1;
}
public tazer(playerid) //229
{
TogglePlayerControllable(playerid,1);
} -
ich schätze (kA bin neu in scripten) das bei
public tazer(playerid)
public tazer()
hinkommt?
-
ich schätze (kA bin neu in scripten) das bei
public tazer(playerid)
public tazer()
hinkommt?
wrong is richtig so
das prob von ihm is er hat forward tazer(playerid); ned gemacht D:
-
Könnt ihr mal bitte aufhören, Dinge zu posten, wenn ihr keine Ahnung habt ?
Im Originalquelcode wurde geforwardet, newb hats nich gemacht...
Dass C&P so schwer sein kann...
Einmal ausgenommend davon, dass eig. der ganze Code in die Klammer kommen muss,
muss "playerid" zu "target" umbenannt werden... -
Jez ist forward drin:
public OnPlayerShootPlayer(shooter,target,damage)
{
if(GetPlayerWeapon(playerid) == 23) // sd-pistol //217
{
TogglePlayerControllable(target,0);
SetTimerEx("tazer",5000,0,"i",target);
}
new name[MAX_PLAYER_NAME],msg[80]; //222
GetPlayerName(shooter,name,sizeof(name));
format(msg,sizeof(msg),"* %s hat dich mit seiner Tazerwafffe für 5 Sekunden geschockt und hat die %i Leben abgezogen!",name,damage);
SendClientMessage(target,0x33AA33AA,msg);
GetPlayerName(target,name,sizeof(name));
format(msg,sizeof(msg),"* Du hast auf %s geschossen.Du hast ihm dadurch %i schaden hinzugefügt. Er ist nun für 5 Sekunden gefreezt !",name,damage);
SendClientMessage(shooter,0x33AA33AA,msg);
return 1;
}
public tazer()
{
TogglePlayerControllable(playerid,1); //233
}Errors:
C:\Users\Sven\Desktop\Realife 3c\gamemodes\Reallife.pwn(217) : error 017: undefined symbol "playerid"
C:\Users\Sven\Desktop\Realife 3c\gamemodes\Reallife.pwn(222) : warning 217: loose indentation
C:\Users\Sven\Desktop\Realife 3c\gamemodes\Reallife.pwn(233) : error 017: undefined symbol "playerid"Kann vill jemand den pawncode komplett ohne errors posten?
Und mir sagen wo der fehler lag.
Werde nicht schlau.
Das forward ist jez drin -
forward tazer(playerid);
public OnPlayerShootPlayer(shooter,target,damage)
{
if(GetPlayerWeapon(shooter) == 23) // sd-pistol
{
TogglePlayerControllable(target,0);
SetTimerEx("tazer",5000,0,"i",target);
}
new name[MAX_PLAYER_NAME],msg[80];
GetPlayerName(shooter,name,sizeof(name));
format(msg,sizeof(msg),"* %s hat dich mit seiner Tazerwaffe für 5 Sekunden getazert!",name);
SendClientMessage(target,0x33AA33AA,msg);
GetPlayerName(target,name,sizeof(name));
format(msg,sizeof(msg),"* Du hast %s getazert!",name);
SendClientMessage(shooter,0x33AA33AA,msg);
}
public tazer(playerid)
{
TogglePlayerControllable(playerid,1);
}verschiebungen musste anpassen
EDIT: habs so mal bei mir reingemacht errort 0 und warnings auch 0 D: also so wie ichs hier jez geposte ahb
-
Einmal ausgenommend davon, dass eig. der ganze Code in die Klammer kommen muss,
muss "playerid" zu "target" umbenannt werden...was is daran so schwer troopers posts zu lesen?