Vielen danke BlackAce klappt alles hervorragendwas hätte ich nur ohne dich gemacht
wahrscheinlich bis in die Morgenstund weiter rum experimentiert.
und wieder was neues dazu gelernt.
Vielen danke BlackAce klappt alles hervorragendwas hätte ich nur ohne dich gemacht
wahrscheinlich bis in die Morgenstund weiter rum experimentiert.
und wieder was neues dazu gelernt.
Guten Tag Breadfishler,
Ich hab ein kleines Problem bei meinem Zollsystem und zwar übernimmt er nicht die weiteren tore, was ich damit genau meine ist
mein erstes definiertes Tor in meinem enum funktioniert ohne Probleme es schließt auch ohne Probleme nun kommt er fehler er springt nicht weiter bei den anderen toren. Was ich vllt vermute ist das er nicht bei der For schleife alle definierten tore durch geht.
Wäre sehr nett wenn eine mir helfen könnte , da ich nun mit meinem Alphabet zu ende bin.
enum :
enum zollsystem{
z_id, z_torid, Float: zollx, Float: zolly, Float: zollz, Float: zollax, Float: zollay, Float: zollaz,
Float: azollx, Float: azolly, Float: azollz, Float: azollax, Float: azollay, Float: azollaz, bool: zollvar, bool: zolllock
};
#define MAX_ZOLLE 20
new ZollInfo[MAX_ZOLLE][zollsystem] = {
{0,978,53.61148071,-1525.98864746,4.87745094,0.00000000,0.00000000,83.37002563,53.61148071,-1525.98864746,-6.87745094,0.00000000,0.00000000,83.37002563,false,false},
{1,978,55.77261353,-1539.03112793,4.95321989,0.00000000,0.50000000,79.91503906,55.77261353,-1539.03112793,-6.95321989,0.00000000,0.50000000,79.91503906,false,false},
{2,978,-981.43225098,-381.12454224,36.21669388,0.00000000,0.00000000,350.00000000,-981.43225098,-381.12454224,26.21669388,0.00000000,0.00000000,350.00000000,false,false}
nur eine Auschnitt
der command:
ocmd:zoll(playerid,params[])
{
#pragma unused params
for(new i;i<sizeof(ZollInfo);i++){
if(ZollInfo[i][zolllock] == true) return SendClientMessage(playerid,COLOR_WHITE,"Der Zoll wurde gesperrt!");
if(IsPlayerInRangeOfPoint(playerid, 4.0, ZollInfo[i][zollx], ZollInfo[i][zolly], ZollInfo[i][zollz])){
if(ZollInfo[i][zollvar] == false){
GivePlayerMoney(playerid, -100);
SendClientMessage(playerid, COLOR_GREEN, "Zollgebühr in Höhe von 100$ bezahlt | Gute Weiterfahrt!");
MoveObject(ZollInfo[i][z_id],ZollInfo[i][azollx],ZollInfo[i][azolly],ZollInfo[i][azollz], 3.5, ZollInfo[i][azollax],ZollInfo[i][azollay],ZollInfo[i][azollaz]);
ZollInfo[i][zollvar] = true;
SetTimer("closegate", 3000, 0);
}
}else{ return SendClientMessage(playerid,COLOR_WHITE,"Du bist an keinem Zoll!");}
}
return 1;
}
auch die tore werden erstellt ohne probleme
for(new i=0;i<MAX_ZOLLE;i++){
ZollInfo[i][z_id] = CreateObject(ZollInfo[i][z_torid],ZollInfo[i][zollx],ZollInfo[i][zolly],ZollInfo[i][zollz],ZollInfo[i][zollax],ZollInfo[i][zollay],ZollInfo[i][zollaz]);
}
Ich hoffe eine rkann mir helfen.
ich hab es auch bei dem command auch anderes probiert
mit
for(new i=0;i<MAX_ZOLLE;i++)
aber dort ist es das selbe und es macht auch keinen großen unterschied zu for(new i;i<sizeof(ZollInfo);i++)
/Edit
Ich habe noch etwas rum getestet und kam zu dem ergebnis das die Werte in der for schleife nicht durchgegangen werden. Sprich ich kann in
i bei der for schleife den wert 1 geben und ich kann nur das Tor mit der id 1 aufmachen
vllt bringt es was in der Problemlösung , ich selbst hab den fehler immer noch nicht gefunden.
ohne bot.... gar nicht.
Theoretisch müsste es sogar möglich sein weil es gab/gibt soviel ich weiß ein Slot bug , weil damals hab ich da smal mit gemacht auf SoL
dort gab es auf einmal dne bug das die Spieler von 80 an hoch ging obwohl es gerade mal 40 Player waren und damals waren keine bots im Spiel.
Ich weiß leider nicht was für ein script du verwendest.
http://wiki.sa-mp.com/wiki/Category:NPC
Den Bot kannst ganz normal so gesehen behandeln wie jeden User.
Hier mal der Code der dein Bot in ein auto setzt .
if(IsPlayerNPC(playerid))
{
new bot[MAX_PLAYER_NAME];
GetPlayerName(playerid, bot, sizeof(bot));
if(!strcmp(bot, "Taxi", true))
{
PutPlayerInVehicle(playerid, taxicar, 0);
}
}
Was passiert hier genau. Also wenn der Spieler ein bot ist und den Namen hier als beispiel taxi besitzt wird er
in ein Auto hier (taxicar) gesteckt beim Spawnen. Dies solltest du auch deinem Script anpassen . Wie zum beispiel dem Bot den Führerschein zu geben
sollte er vom fahrzeug entfernt werden , wenn dieser kein Führerschein hat du kannst ihm auch ein skin geben oder im einen "Beruf" sollte dies im script vorhandne sein beispiel taxi fahrer.
new taxicar;
musst du oben neu definieren um eine Variabel für das Auto zu erstellen
das auto wird bei OnGameModeInit eingefügt
taxicar= CreateVehicle(420, 1000.0,1000.0, 1000.0, 0.0, 10, 1, -1);
Das wirst ja bestimmt kennen
taxicar = variabel welche wir oben definiert haben
CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay)
ist das native um ein Auto zu erstellen
Fahrzeugid
x koordinate
y koordinate
z koordinate
angel( bestimmt die rotation) koordinate
Farbe 1
Farbe 2
Die Verzögerung wann das Fahrzeug ohne Fahrer respawnt
Dies ist jedoch nicht alles um ein Bot zu erstellen mehr Infos findest du im Wiki oder in tutorials
- http://www.youtube.com/watch?v=9HB5S3NoQ2w
- [ SCRIPTING ] Samp 0.3 Bots Erstellen [überarbeitet]
- http://www.youtube.com/watch?v=2cTtyHqJaGk
Viel Glück
Probier mal mit GetPlayerColor
ließ das jedoch erst durch
http://wiki.sa-mp.com/wiki/GetPlayerColor
dann kannst du die Farbe des spielers abfragen lassen und ausgeben
im string mit %x
farbe = GetPlayerColor(playerid);
format(string, sizeof(string),"{%x}%s says: %s",farbe,sendername,text);
du kannst auch nur GetPlayerColor(playerid); verwenden ohne farbe neu zu definieren
format(string, sizeof(string),"{%x}%s says: %s",GetPlayerColor(playerid),sendername,text);
doch so gesehen schon
http://www.youtube.com/watch?f…er_embedded&v=u1UMYAbMyS0
die Verwendung
dazu steht auch die benutzung drinne
und ein beispiel was willst du mehr
Die Schriftart zu ändern ingame als die vom standart text geht nicht außer mit mods.
Das einzigste was du von samp aus ändern kannst sind die Schriftarten von den textdraws.
Mods: such mal nach gta sa font mods
http://www.gtainside.com/download.php?do=cat&id=104
es gibt noch weitere , aber ich denk das suchst du
für die textdraws
Test es mal so mit
{
format(string, sizeof(string), "Farmer %s (ID: %i) (Tel: -)\n", GetName(i), i);
(str2, string, sizeof(str2));
}
statt
{
format(string, sizeof(string), "Farmer %s (ID: %i) (Tel: -)", GetName(i), i);
strcat(str2, string);
}
das bedeutet das du das selbe zweimal ihrgend wo im script definiert hast
also entweder umbenennen oder sollte es zweimal vorhanden sein löschen also genau das selbe
Hier bitte
http://forum.sa-mp.com/showthread.php?t=122983
aber soviel ich weiß wurde das plugin nicht auf 0.3e geupdatet
sonder nur das
du hast hier ein spieler variabel , jedoch solltest bei OnPlayerSpawn auch abfragen wenn der Spieler die Variabel auf 1 hat wird er dort auch gespawnt
das kommt davon
DestroyVehicle(FactionCars[fc][fCarid]);
FactionCars[fc][fCarid] = CreateVehicle(Fetc....
das kannst du gegen SetVehicleToRespawn ersetzen jedoch dem entsprechend hier ienfach einfügen
SetVehicleToRespawn(FactionCars[fc][fCarid]);
das sollte gehen
so genau kann ich kein Fehler erkennen durchs schnell überfliegen außer das es an deiner command ordnung
liegen könnte
ocmd:acceptrepair(playerid,params[])
{
new Float:x,Float:y,Float:z, car = GetPlayerVehicleID(playerid), angebot = GetPVarInt(playerid,"RepairAngebot");
GetPlayerPos(angebot,x,y,z);
if(GetPlayerMoney(playerid)< GetPVarInt(playerid,"RepairAngebotPreis")) return SendClientMessage(playerid,ROT,"Fehler: Du hast zuwenig Geld bei dir!");
if(!IsPlayerInRangeOfPoint(playerid,5,x,y,z)) return SendClientMessage(playerid,ROT,"Fehler: Du bist nich in der Nähe des Spielers!");
if(!IsPlayerInVehicle(playerid,car)) return SendClientMessage(playerid,ROT,"Fehler:Du bist in keinem Auto!");
if(GetPVarInt(playerid,"RepairAngebotjanein") == 1){
GivePlayerMoney(playerid,-GetPVarInt(playerid,"RepairAngebotPreis"));
GivePlayerMoney(angebot,GetPVarInt(playerid,"RepairAngebotPreis"));
SendClientMessage(playerid,BLAU,sprintf("Du hast das Angebot angenommen!-%i$",GetPVarInt(playerid,"RepairAngebotPreis")));
SendClientMessage(angebot,BLAU,sprintf("Das Angebot wurde angenommen!+%i$",GetPVarInt(playerid,"RepairAngebotPreis")));
SetPVarInt(playerid,"RepairAngebot",0);
SetPVarInt(playerid,"RepairAngebotPreis",0);
SetPVarInt(playerid,"RepairAngebotjanein",0);
RepairVehicle(car);
}
return 1;
}
Naja!
Ich möchte nur das Interior , bzw. die Koordinaten , die ich für einen PICKUP brauche!!!
Bitte
JohnWayne_Deluxe , die stadthalle hat kein interior sie befindet sich sehr sehr weit oben in der Luft und für die Koordinaten die könntest dir auch selbst dazu
holen es ist alles vorhanden .map datei für MTA und die Objektcodes für Samp
jedoch hier bitte ein command
if(strcmp(cmd, "/test",true) == 0){
if(IsPlayerInRangeOfPoint(playerid, 4.0,wunschx,wunschy,wunschz)){
SetPlayerPos(playerid, 1360.7610,-1660.7795,6321.7251);
SetPlayerFacingAngle(playerid, 184.1669);
TogglePlayerControllable(playerid,0);
SetTimerEx("freeze",5000,0,"i",playerid);
}
return 1;
}
forward freeze(playerid);
public freeze(playerid){
TogglePlayerControllable(playerid,1);
return 1;
}
@ DarkShadow ich könnte die auch noch releasen mal schauen , wenn ja dann erst übernächste woche weil ich bin die und die nächste woche im Urlaub
ist in meinen augen jedoch nicht ganz fertig
du könntest das übers rcon machen aber der gewünschte effekt wirst du damit nicht wirklich erzielen aber ich denk ohne da swas fehlt wird es nicht gehen.
Es sein den du schreibst ein Plugin womit du ein error code erzeugst oder datein löscht
es wäre nicht schlecht wenn du dein enum dazu posten würdest
und noch zu dem gibt auch noch ein tutorial
[ SCRIPTING ] Enter / Exit System
falls du e snicht hinbekommen solltes einfach nochmal drunter posten
Sicher da sman für das array 11 Werte braucht , wenn du dir das nicht denken kannst poste bitte das ganze array
es kommt auf die tasten legung an und KEY_JUMP ist ja in dem falle die leertaste
benutze newkeys == 132 das sollte gehen
mir würde noch was einfallen und zwar gabs für dtc ein extra native um den slot abzufragen und den besitzer
forward GetDtCarOwnerSlot(playerid,veh);
Function GetDtCarOwnerSlot(playerid,veh)
{
for(new X = 0; X < MaxVeh; X++)
{
if(PlayerCar[playerid][X][CarId] == veh)
{
return X;
}
}
return 555;
}
forward GetDtCarOwner(veh);
Function GetDtCarOwner(veh)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
for(new X = 0; X < MaxVeh; X++)
{
if(PlayerCar[i][X][CarId] == veh){return i;}
}
}
return 1;
}
dann kannst du es ja so verwenden
new besitzer= GetDtCarOwner(trailercar);
new slot = GetDtCarOwnerSlot(besitzer,trailercar);
PlayerCar[besitzer][slot][CarPos_x] = vX;
PlayerCar[besitzer][slot][CarPos_y] = vY;
PlayerCar[besitzer][slot][CarPos_z] = vZ;
PlayerCar[besitzer][slot][CarState] = 1;
oder du bringst ganz einfach die slot abfrage ein
also hier die for schleife
for(new X = 0; X < MaxVeh; X++)
weil dein problem ist du gehst nicht die carslots durch
mal ehrlich gesagt du wirst doch wohl wissen wie du abfrägst ob der Spieler ein admin ist
einmal so
if(pInfo[playerid][admin] >= 1)
oder
if(pInfo[adminid][admin] == 0)
also das wirst du doch wohl selbst hinbekommen es bedeutet ganz einfach das pInfo oder sSPieler
nicht definiert ist, also es kommt nicht im script vor. Daher ersetze es durch deine Abfrage ob der Spieler admin ist.