So, nun kann ich auch meine Bewertung machen =)
Er hat mir was gescriptet, war super schnell, war für Probleme da und hat sie behoben, alles bestens, bester =)
Immer gerne wieder, nur zu empfehlen
So, nun kann ich auch meine Bewertung machen =)
Er hat mir was gescriptet, war super schnell, war für Probleme da und hat sie behoben, alles bestens, bester =)
Immer gerne wieder, nur zu empfehlen
forward DriverUpdate();
public DriverUpdate()
{
new var;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && PlayerInfo[i][ON_DUTY])
{
if(PlayerInfo[i][CURRENT_JOB]==JOB_DRIVER)
{
var=GetPlayerVehicleID(i);
for(new j=0;j<MAX_PLAYERS;j++)
{
if(IsPlayerConnected(j) && i!=j)
{
if(IsPlayerInVehicle(j,var))
{
if(GetPlayerMoney(j)>=JobVar[i][1])
{
GivePlayerMoney(j,-JobVar[i][1]);
JobVar[i][0]+=JobVar[i][1];
}
else
RemovePlayerFromVehicle(j);
}
}
}
}
else if(PlayerInfo[i][CURRENT_JOB]==JOB_ABSCHLEPP)
{
var=GetVehicleModel(GetPlayerVehicleID(i));
if(var == 525) // Tow-Truck
{
JobVar[i][0]+=10; //Geld eben anpassen.
}
}
else if(PlayerInfo[i][CURRENT_JOB]==JOB_PILOT)
{
var=GetVehicleModel(GetPlayerVehicleID(i));
if(var == 577) // AT-400
{
JobVar[i][0]+=10; //Geld eben anpassen.
}
}
}
}
return 1;
}
Alles anzeigen
Super, das klappt beim Abschleppdienst schonmal, glaube aber ich habe hier noch nen fehler drin, bei Pilot kommt das Geld erst, wenn man den job beendet..
Normalerweise geht das auch automatisch, wenn man das taxi verlässt, aber bei pilot und abschleppdienst nicht, dazu der code:
case JOB_ABSCHLEPP:
{
GivePlayerMoney(playerid,JobVar[playerid][0]);
if(GetPlayerLanguage(playerid)==LANG_DE)
SendFormattedMessage(playerid,0xFFFF00FF,"Du hast im Abschleppdienst $%d verdient!",JobVar[playerid][0]);
else
SendFormattedMessage(playerid,0xFFFF00FF,"You have earned $%d as driver!",JobVar[playerid][0]);
}
case JOB_PILOT:
{
GivePlayerMoney(playerid,JobVar[playerid][0]);
if(GetPlayerLanguage(playerid)==LANG_DE)
SendFormattedMessage(playerid,0xFFFF00FF,"Du hast als Pilot $%d verdient!",JobVar[playerid][0]);
else
SendFormattedMessage(playerid,0xFFFF00FF,"You have earned $%d as pilot!",JobVar[playerid][0]);
}
Alles anzeigen
sry den anderen code vergessen, moment
So sieht es normal aus, ich hatte überlegt den JOB_ABSCHLEPP mit reinzutun, aber dann würde derjenige, der den Job ausführt, ja nur Geld bekommen, wenn sich noch jemand in den Abschleppwagen reinsetzt..
Soll ich mal alle Codes zu den JOBS posten.?
forward DriverUpdate();
public DriverUpdate()
{
new var;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && PlayerInfo[i][CURRENT_JOB]==JOB_DRIVER && PlayerInfo[i][ON_DUTY])
{
var=GetPlayerVehicleID(i);
for(new j=0;j<MAX_PLAYERS;j++)
{
if(IsPlayerConnected(j) && i!=j)
{
if(IsPlayerInVehicle(j,var))
{
if(GetPlayerMoney(j)>=JobVar[i][1])
{
GivePlayerMoney(j,-JobVar[i][1]);
JobVar[i][0]+=JobVar[i][1];
}
else
RemovePlayerFromVehicle(j);
}
}
}
}
}
return 1;
}
Alles anzeigen
Ja genau =) Also wenn er sich im Flugzeug befindet (AT-400, Shamal etc)
Wollte später auch noch andere Jobs in der Art erstellen, zb. Abschleppdienst
Sorry erstmal für den Titel, is mir nix besseres eingefallen.
Ich habe hier einen Code, der auf meinem gm zum Taxifahrer job gehört.
Wenn man den Job angenomen hat und jemand einsteigt, bekommt man Geld, glaube alle paar sekunden oder so.
Wie kann ich darauf entfernen, dass der Taxifahrer nur geld bekommt, wenn jemand als Beifahrer eingestiegen ist?
Hoffe das ist der richtige Code^^
Möchte einen Job hinzufügen, Pilot, der einfach jederzeit Geld erhalten soll wie Taxifahrer, nur ohne dass jemand als beifahrer einsteigt.
Danke =)
public DriverUpdate()
{
new var;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && PlayerInfo[i][CURRENT_JOB]==JOB_DRIVER && PlayerInfo[i][CURRENT_JOB]==JOB_ABSCHLEPP && PlayerInfo[i][ON_DUTY])
{
var=GetPlayerVehicleID(i);
for(new j=0;j<MAX_PLAYERS;j++)
{
if(IsPlayerConnected(j) && i!=j)
{
if(IsPlayerInVehicle(j,var))
{
if(GetPlayerMoney(j)>=JobVar[i][1])
{
GivePlayerMoney(j,-JobVar[i][1]);
JobVar[i][0]+=JobVar[i][1];
}
else
RemovePlayerFromVehicle(j);
}
}
}
}
}
return 1;
}
Alles anzeigen
Danke =) Werd´s gleich mal ausprobieren! =)
Hmm wenn ich nun den Befehl benutze, crasht der Server
Also der Dialog funzt, nur die benutzung nicht. Liegt das eventuell daran, dass ich bei
SendClientMessage(i, COLOR_BLUE, "%s (%d) meldet einen Diebstahl!");
"%s (%d)" einen fehler gemacht habe? Denkfehler?
if(!strcmp("/911",cmd,true))
{
ShowPlayerDialog(playerid, DIALOG_POLI, DIALOG_STYLE_LIST, "Aktiver Anruf: Polizei", "Unfall melden\nDiebstahl melden\nSonstige Verbrechen melden", "Purchase", "Cancel");
return 1;
}
switch(dialogid)
{
case DIALOG_POLI:
{
switch(listitem)
{
case 0:
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i))continue;
if(PlayerInfo[i][CURRENT_JOB]==JOB_COP)
{
SendClientMessage(i, COLOR_BLUE, "%s (%d) meldet einen Unfall!");
}
}
}
case 1:
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i))continue;
if(PlayerInfo[i][CURRENT_JOB]==JOB_COP)
{
SendClientMessage(i, COLOR_BLUE, "%s (%d) meldet einen Diebstahl!");
}
}
}
case 2:
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i))continue;
if(PlayerInfo[i][CURRENT_JOB]==JOB_COP)
{
SendClientMessage(i, COLOR_BLUE, "%s (%d) meldet eine Verbrechen!");
}
}
}
}
}
}
Alles anzeigen
So richtig.?
switch(dialogid)
{
case DIALOG_POLI:
{
switch(listitem)
{
case 0:
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i))continue;
if(PlayerInfo[playerid][CURRENT_JOB]==JOB_COP)
{
SendClientMessage(playerid, COLOR_BLUE, "This text is red");
}
}
}
case 1:
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i))continue;
if(PlayerInfo[playerid][CURRENT_JOB]==JOB_COP)
{
SendClientMessage(playerid, COLOR_BLUE, "This text is red");
}
}
}
case 2:
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i))continue;
if(PlayerInfo[playerid][CURRENT_JOB]==JOB_COP)
{
SendClientMessage(playerid, COLOR_BLUE, "This text is red");
}
}
}
}
}
}
Alles anzeigen
Hallo =)
Ich habe einen Dialog erstellt, indem man all denen, die den Job COP aktuell ausführen, eine Nachricht senden kann.
Nur zur Verständniss, ich habe einen Dialog, mitdenen man Unfall, Diebstahl und sonstiges Verbrechen melden können soll.
Der job ist als JOB_COP definet, habe hier mal nen codeschnipsel: [CURRENT_JOB]==JOB_COP
Hier mal der Dialog, indem ich das einbauen möchte:
Wie mache ich das am besten.? Danke =)
if(!strcmp("/fuellen",cmd,true) || !strcmp("/refill",cmd,true))
{
if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)
return SendLanguageMessage(playerid,COLOR_RED,"Du musst Fahrer eines Fahrzeuges sein!","You must be driver of a vehicle!");
if(PlayerCheckpoint[playerid]==INVALID_CHECKPOINT_ID)
return SendLanguageMessage(playerid,COLOR_RED,"Du kannst dein Fahrzeug nur an Tankstellen volltanken.","You can only refill your vehicle at petrol stations.");
if(Checkpoints[PlayerCheckpoint[playerid]][TYPE]!=TYPE_PETROL_STATION || !IsPlayerInCheckpoint(playerid))
return SendLanguageMessage(playerid,COLOR_RED,"Du kannst dein Fahrzeug nur an Tankstellen volltanken.","You can only refill your vehicle at petrol stations.");
new vehicleid=GetPlayerVehicleID(playerid);
new modelid=GetVehicleModel(vehicleid)-400;
if(Fuel[vehicleid]==VehicleInfo[modelid][MAX_FUEL])
return SendLanguageMessage(playerid,COLOR_RED,"Der Tank deines Fahrzeuges ist voll!","The tank of your vehicle is full!");
ShowPlayerPetrolDialog(playerid);
return 1;
}
Alles anzeigen
case DIALOG_PETROL:
{
if(response)
{
if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER)
return SendLanguageMessage(playerid,COLOR_RED,"Du musst Fahrer eines Fahrzeuges sein!","You must be driver of a vehicle!");
if(PlayerCheckpoint[playerid]==INVALID_CHECKPOINT_ID)
return SendLanguageMessage(playerid,COLOR_RED,"Du kannst dein Fahrzeug nur an Tankstellen volltanken.","You can only refill your vehicle at petrol stations.");
if(Checkpoints[PlayerCheckpoint[playerid]][TYPE]!=TYPE_PETROL_STATION || !IsPlayerInCheckpoint(playerid))
return SendLanguageMessage(playerid,COLOR_RED,"Du kannst dein Fahrzeug nur an Tankstellen volltanken.","You can only refill your vehicle at petrol stations.");
new vehicleid=GetPlayerVehicleID(playerid);
new modelid=GetVehicleModel(vehicleid)-400;
if(Fuel[vehicleid]==VehicleInfo[modelid][MAX_FUEL])
return SendLanguageMessage(playerid,COLOR_RED,"Der Tank deines Fahrzeuges ist voll!","The tank of your vehicle is full!");
if(listitem==PetrolType[vehicleid])
{
new var=VehicleInfo[modelid][MAX_FUEL]-Fuel[vehicleid];
var*=PetrolPrice*PetrolTypes[listitem][PETROL_PRICE_FACTOR];
if(var>GetPlayerMoney(playerid))
return TextBoxPriceWarning(playerid,var);
GivePlayerMoneyEx(playerid,-var);
RefillVehicle(vehicleid);
TextBoxForPlayerEx(playerid,"Fahrzeug vollgetankt.","Vehicle tank filled.",4);
}
else
{
TextBoxForPlayerEx(playerid,"~r~Falsches Benzin getankt! Motor beschaedigt!","~r~Wrong petrol used! Engine damaged!",4);
SetVehicleHealth(vehicleid,100);
}
}
}
Alles anzeigen
Also du meinst die Checkpoints? Das hier?
enum PETROL_INFO
{
NAME[32],
PETROL_PRICE_FACTOR
};
new PetrolTypes[][PETROL_INFO]=
{
{"Super",1},
{"Super Plus",2},
{"Bleifrei",4},
{"Erdgas",1}
};
new Fuel[MAX_VEHICLES];
new PetrolType[MAX_VEHICLES];
new Text:VehicleText[MAX_PLAYERS];
new PetrolPrice=3;
new Float:PetrolStations[][3]=
{
{2201.7856,2474.4937,10.8203},
{2118.2588,918.8394,10.8203},
{1933.5712,-1772.3567,13.3828},
{1001.2453,-936.1763,42.1797},
{1382.8628,460.1538,20.0583},
{-1674.5317,416.0114,7.1797},
{-90.1018,-1168.0148,2.0822}
};
Alles anzeigen
Guten Abend!
Habe ein kleines Problem.
Habe ja auf meinem SAMP Server auf der Map verschiedene Pickups, andenen man eine Aktion Ausführen kann, zb. an den Tankstellen.
Normalerweise fährt man darauf und gibt /fuellen ein und man kann tanken.
Nun kommt aber die Message, dass ich nur an Tankstellen tanken kann.
Genauso bei dem Bank Interior.
Kann man sich ans Pickup stellen und auf sein konto zugreifen.
geht aber auch nicht mehr..
Was da los?
Einer ne idee?
Perfekt, ja ich habe es nun geschafft, es geht jetzt ;D
Hatte zwar die aktuellen includes, aber nicht den neusten pawno.exe^^
Danke euch, geht nun alles =)
ja habe es so ersetzt, auch mit dem _HEADERS gibt er mir den error nur eben mit dem _HEADERS noch daran
danke =)
Er gibt mir folgenden error:
error 017: undefined symbol "DIALOG_STYLE_TABLIST"
Hallo =)
So nun habe ich schon einiges am Gamemode gearbeitet und stehe vor folgender Hürde..
Ich habe einen list Dialog, mitdem ich commands direkt anklicken kann, sodass diese ausgeführt werden.
Nun ist da 1. die Formatierung im Spiel bei manchen falsch. Also einige Sätze stehen vor der zweile, ich lade dazu wenn machbar noch einen Screenshot hoch.
Und 2. würde ich gerne im Dialog die Befehle/ commands versteken, also dass dann im Spiel zb "Internet" steht und dazu kein Command sichtbar ist, ich dieses dennoch anklicken / auswählen kann, womit dann der Befehl zum starten des Internet Dialogs ausgeführt wird.
hoffe, das ich mich da verständlich ausgedrückt habe..
Hier mal alles zum Handy Dialog:
//edit: Screenshot kanni ch grad nicht im Spiel machen, aber ich liste mal auf, wies sich aktuell vorzustellen ist:
/tbuch Telefonbuch
/internet Internet
/kill Selbstmord
/spawn Setzt neuen Spawn blabla...
/befehle Hilfe Menu
//da ist das SSelbstmord zb falsch, da es nicht mit den anderen in der Reihe steht.. ist bei anderen Dialogen auch so
//---Defines
#define DIALOG_HANDY 39
//---HandyDialog
new DialogHandy[][][]=
{
{"/tbuch","/tbuch","Telefonbuch","call Book","\t\t","\t\t"},
{"/Internet","/Internet","Internet","Internet","\t\t","\t\t"},
{"/kill","/kill","Selbstmord","Selfkill","\t\t","\t\t"},
{"/spawn","/spawn","Setzt neuen Spawn und teleportiert dich dorthin","Set new spawn and teleports yourself","\t\t","\t\t"},
{"/befehle","/cmds","Hilfe Menu offnen","open help Menue","\t\t","\t\t"}
};
//---Handy Strcmp
if(!strcmp("/handy",cmd,true))
{
new stra[3072];
if(GetPlayerLanguage(playerid)==LANG_DE)
{
for(new i=0;i<sizeof(DialogHandy);i++)
format(stra,sizeof(stra),"%s%25s%s%s\n",stra,DialogHandy[i][0],DialogHandy[i][4],DialogHandy[i][2]);
ShowPlayerDialog(playerid,DIALOG_HANDY,DIALOG_STYLE_LIST,"iFruit:",stra,"OK","Close");
}
else
{
for(new i=0;i<sizeof(DialogHandy);i++)
format(stra,sizeof(stra),"%s%25s%s%s\n",stra,DialogHandy[i][1],DialogHandy[i][5],DialogHandy[i][3]);
ShowPlayerDialog(playerid,DIALOG_HANDY,DIALOG_STYLE_LIST,"iFruit:",stra,"OK","Close");
}
return 1;
}
//---case
case DIALOG_HANDY:
if(response)
OnPlayerCommandText(playerid,DialogHandy[listitem][0]);
Alles anzeigen
lso wenn man die Fahrzeug in einem Dialog kaufen könnte, fände ich das sogar nich viel besser
Und wenn man das Autosystem in den Gamemode integrieren könnte.. absolut obergeil..
DANN würde ich im Handy, aufzurufen mit der ALT Taste, nämlich alles etwas abkürzen, also nicht unter iFruit Handy alle befehle rein tun sondern in dem Handy Dialog
noch verlinkungen zu extra Dialogen reinschreiben, so würde im Handy dann stehe "Telefonbuch" (Pegasus, Taxi/ Bus rufen etc), dann Minigames (verschiedene Minigames wie dm, ctf betreten/ verlassen) sowie Internet (zb Fahrzeuge kaufen etc)
Das wäre ja dann mal sehr nice =)
Und mit dem ganzen System in MySQL meine ich tatsächlich meinen Gamemode, den ich täglich bearbeite, aktualisiere etc^^
Also dann umschreibe ich gewünschte funktionen nochmal genau für das Autosystem:
Autosystem in Gamemode schreiben:
- Autos kaufen in einem Dialog. (zb Dialog: southernsanandreassuperautos.com, legendarymotorsport.com etc) Also als Website´s dargestellt, dai ch diesen AutokaufDialog dann in das Handy einbinde.
- Autos verkaufen: Für halben Preis an den Shop zurück (sofortverkauf)
- Auto bei sich spawnen lassen (extra Befehl, um die Funktion ins Handy einzubauen, also neben Telefonbuch, Internet etc)
- Bis zu 3-10 Autos je Spieler kaufbar, ein aktuelles Auto (für spawnen lassen) in einem Dialog auswählbar.
- Sein aktuelles Auto mit einem Mapicon auf Map und Minimap anzeigen lassen (ohne verschwinden des icons, wenn man sich vom Auto entfernt), SOLANGE MAN SICH NICHT IM FAHRZEUG BEFINDET!
(wenn man in seinem aktuellen Auto ist, also darin sitzt/ fährt etc, muss das Icon verschwinden.
So wäre das sehr geil und ich wäre absolut zufrieden.. Ich muss gestehen, weshalb ich zuvor das einfache /autokaufen script mochte, war, da ich Autohäuser (Ansammlung von Autis zum kauf an spezillem Ort) nicht leiden kann. hat teilweise damit zutun, dass es ohne mapicon schwierig für neulinge ist, solch einen shop zu finden, andererseits diese Funktion in GTA v Online auch nicht vorkommt.
Dort sind Autos ja auch im Internet, über das handy aufrufbar, zu kaufen.
Naha, wie gesagt, du kannst dir meine ganenode pwn gerne mal ansehen, wie und ob es realisierbar wäre sort ein solches autosystem zu integrieren.
Das ganze muss vorerst nichtmal in MySQL gespeichert sein, da ich es momentan bzgl fehlenden Kenntnissen nicht selbstständig schaffe, den Gamemode komplett in der SPeicherart umzuschreiben, sprich dini --> MySQL.
da wäre eine Schritt für Schritt anleitung vorerst quatsch, da ich mich mit MySQL etc nicht ein stück auseinandergesetzt habe..
Naja dann steht hier erstmal übersichtlich alles wesentliche ;D
//Edit: ich lerne natürlich sehr gerne, solche Systeme selbstständig und durch schritt für schritt zu erstellen, allerdings muss ich zugeben, drängt es ein wenig, also wäre ich auch nicht ebgeneigt, jemandem für das Erstellen dieses Systeme´s einen Lohn zu übergeben. =)
Aloah freunde des Abends =)
jupp, ich habe eine weitere Idee und werde mich mal einfach erkundigen, wieweit ich meine Idee realisieren kann..
Ich möchte gerne Missionen in meinem Gamemode einbinden oder dies als Filterscript.
Undzwar habe ich da an Mehrspielermissionen gedacht, welche von einem Spieler gestartet werden können, inwelches sich dann je nach Mission eine bestimmte Anzahl an Spielern beteiligen können..
Da denke ich an GTA V Online: Heists =)
Gibt es da ein Filterscript, kann mir da jemand helfen, solch eines zu erstellen oder würde vlt sogar jemand bei zeiten etwas solches schreiben?! =)
NAtürlich lerne ich das auch gerne selber zu machen =)
Vielen Dank =)