Ich habe gerade entdeckt das ich einen Fehler drin habe undzwar, das die Person die erst mal nach /kiss fragt schon das mit dem GetPosVorSpieler undso aktiviert, kurz ändern, editiere dann code
Beiträge von WhiteWay
-
-
Hast du denn schon den Befehl angefangen / geschrieben?
Du kannst ja machen, dass einer "/kiss ID" macht, und dann gefreezed wird.
Dem Anderen wird ein Dialog angezeigt, es sei denn, der Spieler steht nicht direkt vor dem Anderen.
Ansonsten wird ihm der Dialog angezeigt, und er kann es annehmen / ablehnen. -> Spieler wird wieder entfreezed - Animation wird ausgeführt bei beiden SpielernDu kannst ja die Funktion von Jeffry benutzen, die ist dafür da, die Position vor dem Spieler zu bekommen.
Am besten fängst du mal mit dem Befehl an und wir können dir hier dann helfen. Wenn du den Befehl schon angefangen hast, dann versuch nun, den Befehl weiterzumachen, ansonsten, wie gesagt, kannst du hier nach Hilfe fragen.
So,
die Vorlage habe ich vom /sex befehl genommen.
Ich weiß nicht ob alles richtig ist, also schreibe ich das hier rein.
if(strcmp(cmd, "/kiss", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /kiss [playerid]");
return 1;
}
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
new Float:x, Float:y, Float:z;
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selbst Küssen!"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Du bietest %s einen Kuss.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* %s bietet dir einen Kuss. (/kiss annehmen)", sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
//Setzt den Spieler 5 Meter vor den anderen Spieler.
GetPosVorSpieler(giveplayerid, 5.0, x, y, z); //pID = Spieler, dessen Position abgefragt wird.
SetPlayerPos(playerid, x, y, z); //playerid = Spieler, dessen Position gesetzt wird.
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler ist nicht in deiner Nähe !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Der Spieler ist Offline !");
return 1;
}
return 1;
} -
Also,
Damit ihr versteht was ich meine kurze Erklärung:
Wenn eine Person x vor einer Person y steht. Kann eine von den Personen /kiss ID machen. Dann werden Automatisch die Personen vor einander gestellt und die Kissanimation ausgeführt
Ja, man kann so machen das beide einfach /kiss eingeben und dann kommt die Animation, aber das wird nie gescheit getroffen! Also sodass die dann Perfekt voreinander stehen, kann man so etwas machen? Also wenn ihr wisst wie das geht, könnt ihr mir Erklären :3? -
Gibt es so eine Barriere? Wenn ja bitte ID :3
-
Hat jemand diesen Tisch als einzelobject? (Den langen)
-
Gibt es einen Roten langen Teppich? So halt wie wenn ein Berühmter drüber läuft, ihr wisst was ich meine
-
Nun..
Ich habe garnichts kapiert -
Hallo,
Folgendes Problem, vor ein Paar monaten hatte ich glaube ich mit euch das mal besprochen, aber das ist nun lange her..
Aber jetz habe ich immernoch einen Fehler, ich schicke mal die CodesGanz oben:
new RPName[MAX_PLAYERS][MAX_PLAYER_NAME];
im register:
format(var, 32, "RPName=%s\n",RPName[playerid]);fwrite(hFile, var);im Login:
if( strcmp( key , "RPName" , true ) == 0 ) { val = ini_GetValue( Data ); format(RPName[playerid],MAX_PLAYER_NAME,"%s",val); }Wenn er was sagt:
format(string, sizeof(string), "%s {787878}%s {FFFFFF}sagt: %s",akzent,RPName[playerid], text);
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
format(string, sizeof(string), "%s",text);
SetPlayerChatBubble(playerid,string,0xFF0000FF,15,10000);
wenn man gerade beim Registrieren ist, und den Namen einfügen soll:
format(RPName[playerid],MAX_PLAYER_NAME,"%s",inputtext);Nun der Fehler:
http://www.pic-upload.de/view-23862057/sa-mp-006.png.htmlMein Name wird nicht abgelesen wieso auch immer..
-
Ich danke dir vielmals, aber wenn ich einen Neuen Registriere, und dann wieder mit den Alten on komm, hat er garkeinen namen mehr steht dann nur ( sagt: bla )
-
Alsoo
Ganz Oben
new RPName[MAX_PLAYERS][MAX_PLAYER_NAME];OnPlayerRegister
format(var, 32, "RPName=%s\n",RPName[playerid]);fwrite(hFile, var);OnPlayerLogin
if( strcmp( key , "RPName" , true ) == 0 ) { format(RPName[playerid],MAX_PLAYER_NAME,"%s",val); }und beim Schreiben
format(string, sizeof(string), "%s{00FFDC}%s {FFFFFF}sagt: %s",akzent,RPName[playerid], text);
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
format(string, sizeof(string), "%s",text);
SetPlayerChatBubble(playerid,string,0xFF0000FF,15,10000);Beim dem Registrieren
format(RPName[playerid],MAX_PLAYER_NAME,"%s",inputtext);Bei einer Function die Sichern heißt
format(var, 32, "RPName=%s\n",RPName[playerid]);fwrite(hFile, var); -
aus dem %d ein %s machen da du einen String und keinen Integer speicherst. Dann beim RPName fehlt jeweils der index also RPName[playerid] und bei der key überprüfung machste das wie beim inputtext nur anstatt inputtext val nutzen
format(RPName[playerid],MAX_PLAYER_NAME,"%s",val);
das Klaptt wohl nicht so gut, denn wenn ich jetzt schreibe kommt da eine "1" anstatt der name
//EDIT
Also nach der REgistration klappt es, aber nach dem Relogg nicht mehr -
Schau dir mal deinen Speicherstock an und versuch es mal selber zu machen.
format(var, 32, "RPName=%d\n",RPName);fwrite(hFile, var);
das hab ich beim Registerstock gemacht (halt nachgemacht wie die anderen sachen :D)
und
if( strcmp( key , "RPName" , true ) == 0 ) { val = ini_GetValue( Data ); RPName = strval( val ); }//Bei dem Error
das beim Login, aber kommt ein Error
Array-Index fehlt (bspw. Array[1], Name: "RPName") -
new RPName[MAX_PLAYERS][MAX_PLAYER_NAME];
stock IsRPName(name[]) //©Jeffry
{
new found = 0;
for(new i=2, j = strlen(name)-2; i < j; i++) if(name[i] == '_') found++;
if(found == 1) return true;
else return false;
}//Irgendwo im Script, aber in keinem Callback (public)!
if(dialogid==DIALOG_REGSTEP_1){
if(!response)return PlayerInfo[playerid][pSex]=2,RegistrationStep[playerid]=4,ShowPlayerDialog(playerid,DIALOG_REGSTEP_4,DIALOG_STYLE_INPUT,"GTR- Eigende Daten","Was soll dein RolePlay name sein? (in dieser Form z.b: John_Konner) ","Bestätigen"," ");
return PlayerInfo[playerid][pSex]=1,RegistrationStep[playerid]=4,ShowPlayerDialog(playerid,DIALOG_REGSTEP_4,DIALOG_STYLE_INPUT,"GTR- Eigende Daten","Was soll dein RolePlay name sein? (in dieser Form z.b: John_Konner)","Bestätigen"," ");
}
else if(dialogid==DIALOG_REGSTEL_4){
if(!IsRPName(inputtext))return ShowPlayerDialog(playerid,DIALOG_REGSTEP_4,DIALOG_STYLE_INPUT,"GTR- Eigende Daten","Was soll dein RolePlay name sein? (in dieser Form z.b: John_Konner)","Bestätigen"," ");
return format(RPName[playerid],MAX_PLAYER_NAME,inputtext);
}
//Nun ist in RPName[playerid] der eingegebene Roleplay-Name von dem Spieler//Auszulesen mit:
new string[128];
format(string,128,"Dein RP-Name: %s",RPName[playerid]);
SendClientMessage(playerid,-1,string);Sollte klar sein oder?
Naja hab nicht die Variante genommen, aber es klappt wie ich es so gemacht habe, hoffentlich auch dann bei mehreren
//Bei dem wo man redet
format(string, sizeof(string), "%s{00FFDC}%s {FFFFFF}sagt: %s",akzent,RPName[playerid], text);
ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
format(string, sizeof(string), "%s",text);
SetPlayerChatBubble(playerid,string,0xFF0000FF,15,10000);
//-----------------------------------------------------------------------------------
if(dialogid == DIALOG_REGSTEP_1)
{
if(response == 1)
{
PlayerInfo[playerid][pSex] = 1;
RegistrationStep[playerid] = 4;
ShowPlayerDialog(playerid,DIALOG_REGSTEP_4,DIALOG_STYLE_INPUT,"GTR- Eigende Daten","Was soll dein RolePlay name sein? (in dieser Form z.b: John_Konner)","Bestätigen"," ");
}
if(response == 0)
{
PlayerInfo[playerid][pSex] = 2;
RegistrationStep[playerid] = 4;
ShowPlayerDialog(playerid,DIALOG_REGSTEP_4,DIALOG_STYLE_INPUT,"GTR- Eigende Daten","Was soll dein RolePlay name sein? (in dieser Form z.b: John_Konner) ","Bestätigen"," ");
}
}
if(dialogid == DIALOG_REGSTEP_4)//RP NAME
{
format(RPName[playerid],MAX_PLAYER_NAME,"%s",inputtext);
RegistrationStep[playerid] = 2;
}
//_-------------------------------------------------Ganz oben
new RPName[MAX_PLAYERS][MAX_PLAYER_NAME];
Und es klappt einwandfrei Danke!//EDIT
Tut mir leid! Es funktioniert nicht einwandfrei.
Nach einem Relogg wird kein Name mehr angezeigt! wie speicher ich das jetzt in seinem Acc.cfg? -
erstellst ne variable die den inhalt vom inputtext festhalt und dann bei OnPlayerText oder wo du es auch sonst verwenden willst ausgeben mit der variable:
new RPName[MAX_PLAYERS][MAX_PLAYER_NAME];
format(RPName[playerid],MAX_PLAYER_NAME,"%s",inputtext); müsste das sein
Nun ich habe bisjetzt verstanden das das mit dem new RPName[MAX_PLAYERS]...blabla
ganz oben wo die anderen "new"s sind hin muss, stimmt?
aber, ich habe noch nicht ganz kapiert wo ich das mit dem format hinmachen soll.
bin zwar dumm aber naja :D, kannst mir mal sagen ob das bei DIALOG_REGSTEP_4 reinsoll oder bei dem 1er unter dem ShowPlayerdialog?
if(dialogid == DIALOG_REGSTEP_1)
{
if(response == 1)
{
PlayerInfo[playerid][pSex] = 1;
RegistrationStep[playerid] = 4;
ShowPlayerDialog(playerid,DIALOG_REGSTEP_4,DIALOG_STYLE_INPUT,"GTR- Eigende Daten","Was soll dein RolePlay name sein? (in dieser Form z.b: John_Konner)","Bestätigen"," ");
}
if(response == 0)
{
PlayerInfo[playerid][pSex] = 2;
RegistrationStep[playerid] = 4;
ShowPlayerDialog(playerid,DIALOG_REGSTEP_4,DIALOG_STYLE_INPUT,"GTR- Eigende Daten","Was soll dein RolePlay name sein? (in dieser Form z.b: John_Konner) ","Bestätigen"," ");
}
}
if(dialogid == DIALOG_REGSTEP_4)//RP NAME
{
//Hier rein?
} -
Hallo,
Ich habe eine Frage.
Undzwar, wie mache ich das dass in der Registration, dieser spieler der sich grad Registriert einen RolePlay namen mit einem DIALOG_STYLE_INPUT erstellen muss? Also ich will hier jetzt keinen Code.
Sondern könnt ihr mir erklären wie ich sowas machen kann? Ich habe grad nur den Dialog :3, ich weiß nicht wie ich es dann so machen kann, das er dann nur mit dem Namen wo er in den Input reinschreibt
angezeigt wird wie Bsp: "John_Konner sagt: blabla" Also das er Ingame den namen vom Roleplay hat, aber über dem Charakter immernoch der Name, der halt am anfang vom samp erstellt werden kann.Könnt ihr mich verstehen? Dann bitte ich um Hilfe
-
Hallo liebe Brotfische,
Ich habe eine Frage. Undzwar wie kann ich machen das im Kennzeichen die Auto ID steht? mit der Auto ID meine ich welche ID sie im Spiel hat, und nicht die ID damit ich das Auto Spawnen kann.
Ich hoffe ihr könnt mir helfen :3. -
Hallo erstmal,
ich wollte mal anfangen mit Java zu Scripten..
jedoch als ich mal meinen Anfang fertig hatte, hatte ich den ganzen Code kopiert und in ein neues Script eingefügt, aber dann kam dieser error, den ich in der Überschrift hab.
Davor ging mein Programm noch aber dann kommt dies wenn ich es starten will.http://www.pic-upload.de/view-…-24-at-02.41.20-.png.html (Der Fehler)
package org.blabla.game;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;public class frame extends JFrame implements ActionListener {
private JButton schliessen;
private JButton einstellung;
private JButton info;
private JButton ende;public static void main (String[]args) throws Exception{
frame frame = new frame("UI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400,400);
frame.setLayout(null);
frame.setVisible(true);
}
public frame(String title) {
super(title);
schliessen = new JButton("Spiel starten");
schliessen.setBounds(120, 40, 160, 40);
schliessen.addActionListener(this);
add(schliessen);
einstellung = new JButton("Einstellungen");
einstellung.setBounds(120, 120, 160, 40);
einstellung.addActionListener(this);
add(einstellung);
info = new JButton("Credits");
info.setBounds(120, 200, 160, 40);
info.addActionListener(this);
add(info);
ende = new JButton("Beenden");
ende.setBounds(120, 280, 160, 40);
ende.addActionListener(this);
add(ende);
JLabel label = new JLabel("Made by White(V 0.4)");
label.setBounds(240,340,150,20);
add(label);
}
public void actionPerformed(ActionEvent e){
if (e.getSource() == schliessen){
fenster();
}
if (e.getSource() == info){
Object[] options = { "OK"};
JOptionPane.showOptionDialog(null, "Programmiert von White", "Information",JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE,
null, options, options[0]);
}
if (e.getSource() == einstellung){
Object[] options = { "OK"};
JOptionPane.showOptionDialog(null, "Hier können sie Einstellungen vornehmen", "Information",JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE,
null, options, options[0]);
}
if (e.getSource() == ende){
System.exit(0);
}
}
public static void fenster(){
JFrame fenster = new JFrame("Game");
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.setSize(650,350);
fenster.add(new Board());
}
}
-
Hallo,
mal wieder ichSo nun habe ich folgenden fehler:
Der Textdraw links unten auf dem Bild -> http://www.pic-upload.de/view-22315330/sa-mp-007.png.html
"Keine Deathmatch Zone" Sollte nicht bei dieser position angezeigt werden sondern eher wo anders
forward DeathmatchTimer(playerid);
public DeathmatchTimer(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,30.0,1721.4225,-1633.6736,20.2120))
{
TextDrawShowForPlayer(playerid, Textdraw1);
}
}
OnPlayerConnect(Blablabla)
{
blablabla..
SetTimer("DeathmatchTimer",1000,true);
blablabla
}
Wo liegt mein fehler?//EDIT Mit "Position" meine ich die Spieler position
-
-
Für den fall benötigst du einfach einen Textdraw.
Sehr hilfreich,habe ich schon vorher gewusst aber, ich meine nur wie soll ich es dann machen? z.B ich erstell mal jetz ein Textdraw
new Text:Kmh;
Kmh = TextDrawCreate(172.000000, 363.000000, "Km/H");
TextDrawBackgroundColor(Kmh, 255);
TextDrawFont(Kmh, 0);
TextDrawLetterSize(Kmh, 1.129999, 5.199997);
TextDrawColor(Kmh, -1);
TextDrawSetOutline(Kmh, 1);
TextDrawSetProportional(Kmh, 1);
TextDrawSetSelectable(Kmh, 0);
Wie soll das dann weiter?