Mal was anderes zudem schöne umsetzung 8/10 da die Tore nicht
wikrlich zu dem Haus passen da würde ein kleiner Käfig besser aussehen ;D
Mit freundlichen Grüßen
Sven
Beiträge von lollipop
-
-
Man kann nur mit PSC zahlen?
Dann solltest du eher ein Mappingservice anbieten das man für
10€ auf etwas im Wert von 10€ bekommt und nicht eine Map.
Mir währe die Map nicht mehr als 1-2€ Wert und da man nur mit PSC zahlen kann
ist das total überteuert. Die Map ist teilweise unrealittisch und nicht wikrlich was besonderes.
Deine Map hebt sich in keinster weise von einem andern Noobspawn hier im Forum ab.
zudem kann man auf den Screens nicht erkennen ob Objecte schweben oder etwas unsauber gemappt ist
da sie von so einer entfernung gemacht worden sind das man es niocht erkenne kann.
Zudem die Vorstellung an der sieht man das es nichts ist. Wie lang haste für Map+Vorstellung gebraucht?
5Minuten? 10Minuten?
Mit freundlichen Grüßen
Sven -
Das gehört in OnPlayerCommand Text nicht einfach ans Ende des Scripts...
Lern die Grundlagen...
Es ist nicht schwer wenn man die Grundlagen kann... -
Nö Das kriegste wohl serlber hin...
Die Funktion ist so einfach...
Mit freundlichen Grüßen
Sven -
if (strcmp(cmdtext, "/motor", true)==0)
{
if (IsPlayerInAnyVehicle(playerid))
{
new vid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
if(GetVehicleModel(vid) == 509 || GetVehicleModel(vid) == 481 || GetVehicleModel(vid) == 510)
{
SendClientMessage(playerid, COLOR_RED, "Du sitzt auf einem Fahrrad. Das hat keinen Motor!");
}
else if(engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET)
{
SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
SendClientMessage(playerid,0xFF0000,"Du hast den Motor angeschaltet!");
}
else
{
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
SendClientMessage(playerid,0xFF0000,"Du hast den Motor ausgeschaltet!");
}
}
return 1;
}
War das wirklich so schwer?
Und wenn du dir vieles angeguckt hast biste bestimmt darauf gestoßen:
SetVehicleParamsEx
Mit freundlichen Grüßen
Sven -
Das sollte funktionieren:
http://www.megaupload.com/?d=K433JGA7
einfach den Loh Ordner entpacken dann auf samp-server.exe doppelklichk fertig.
Mit freundlichen Grüßen
Sven -
Wann geht der Bus nicht?
bei meinem oder Deadwalkers Code?Deadwalker hat ein Return 1;
in die abfrage eingefügt die hattest du nicht.
Trotzdem ist meine kürzer und erfüllt den gleichen zweck.Mit freundlichen Grüßen
Sven -
Wo hochladen?
VServer Rootserver?
oder einfach nur nen Homeserver starten?
Mit freundlichen Grüßen
Sven -
Wofür die Abfrage?:
if(SpielerInfo[playerid][pTeam] == 1) { }
Machs doch einfach so:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new newcar = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER)
{
if(IsACopCar(newcar))
{
if(SpielerInfo[playerid][pTeam] != 1)
{
RemovePlayerFromVehicle(playerid);
return 1;
}
}
}
return 1;
} -
Wenn welcher Code genau drinne ist fährt der Bus seine Tour nicht mehr?
Mit freundlichen Grüßen
Sven -
Dann verschieben sie die IDS typischer GF bug(will nicht behaupten das du GF nutzt)
Connectet der Bot?
Ansonsten guck ma hier im Tutorial nach:
[ SCRIPTING ] Samp 0.3 Bots Erstellen [überarbeitet]
//edit 1
Also willste das der Bot als LSPD Car gezählt wird?
Falls ja dann sollte es so auch gehn:
new veh = GetPlayerVehicleID(playerid);
if(veh == Bus1)
{
if(SpielerInfo[playerid][pTeam] != 1)
{
SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied der Polizei!");
RemovePlayerFromVehicle(playerid);
return 1;
}
}//edit 2 //edit 1 hinzugefügt
-
Nein ist nicht von nem Tutorial Selfmade...
Bei mir geht es trotzdem.
Wenn du meinst das es Tutorial ist ok torotzdem ist und belibt es Selfmade sprich von mir gemacht.
Mit freundlichen Grüßen
Sven -
So sollte es gehn:
Mach anstatt IsACopCar:
new Polizeiautos[20];
Bei OnGameModeInit:
Polizeiautos[0] = CreateVehicle();
Polizeiautos[1] = CreateVehicle();//usw.
Dann machste bei OnPlayerStateChange
new veh = GetPlayerVehicleID(playerid);
for(new v = 0; v < sizeof(Polizeiautos); v++)
{
if(veh == Polizeiautos[v])
{
if(SpielerInfo[playerid][pTeam] != 1)
{
SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied der Polizei!");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
}
So brauchste das public IsACopCar bzw. den Timer nicht ;D
Bei mir funktioniert es underbar.
mit freundlichen Grüßen
SvenP.S.:Den Code des Geldes bitte per Pn will unbedingt Tomb Raider bei Steam kaufen...
//edit 1 Etwas vergessen
-
Bei Steam kannste auf mit PSC zahlen.
Solche Threads finde ich total unnötig einfach ma bei Steam schauen...
Mit freundlichen Grüßenn
Sven -
Die Idee stammt nicht wikrlich von mir jedoch danke für die Kritik.
Mit freundlichen Grüßen
Sven -
|GXR|B3ar
Es ist nich wirklich komplizierter. Der unterschied ist der das man bei mir InGame als Leader der Fraktion das Passwort ändern kann.
Bei dem anderne Tutorial kann man das SCript nur im Script ändern ;D wems leichter fällt ok aber da muss man immer im Gamemode
das Passwort ändern.
Naja egalBlackybecks
Ich seh das mal als Spam an anstatt ne Bewertung abzugeben oder so einfach nur ein Satz der falsch gebildet ist raussuchen und Spammen...Mit freundlichen Grüßen
Sven -
Probier mal Crashdetect aus. Hier ist ein Link zum Thema im Englischen Forum:
http://forum.sa-mp.com/showthread.php?t=262796
Das kleine Plugin zeigt dir im Serverlog wo der Server crashed also bis zu welcher Zeile das Script geladen wird.
Mit freundlichen Grüßen
Sven -
Machs doch einfach so:
Wenn die Straße so aussieht:
_____________________________
- - - - - - - - - - - - - - - - - - - - - - -
_____________________________Dein Blitzer da wo das o ist steht:
_____________________________
- - - - - - - - - - - - o - - - - - - - - - -
_____________________________
Du willst die Richtung Plitzen in die der Pfeil neben dem o geht:
_____________________________
- - - - - - - - - - - - o - > - - - - - - - -
_____________________________
Dann geh doch einfach dort hin also anstatt:
IsPlayerInRangeOfPoint(Da wo der Biltzer ist);
Machste:
IsPlayerInRangeOfPoint(Mitten auf der Straße wo es Blitzen soll also auch kleinere Radius);
Mit freundlichen Grüßen
Sven -
Probier am besten mal CrashDetect aus.
Ich weis jezut nicht was das Error bedeutet aber mit CrashDetect solltest du es herrausfinden.
Mit freundlichen Grüßen
Sven -
Guten Tag,
heute möchte ich euch erklären wie man z.B. ein Fraktionstor mit einem Passwort versähen kann.
Ich erkläre euch wie ihr es verändern könnte/wie man es abspeichert etc. Ok kommen wir zum wesentlichen:...::Inhaltsverzeichnis:::...
-Was brauchen wir?
-Scripting+Erklärung...::Was brauchen wir?::...
Zuerst brauchen wir etwas um das Passwort zu speichern.
Zur Abspeicherung nehmen wir Dini
Hier ein Link:
Download
Tutorial
Wir brauchen natürlich auch einen Dialog um das Passwort einzugeben
Dann brauchen wir noch einige weitere Funktion:
SendClientMessage
CreateObject
MoveObject
AddStaticPickup
Enum
So im Grunde waren das die Hauptfunktionen die wir brauchen.
Kommen wir nun zum Scripting....::Scripting+Erklärung::...
Zu aller erst brauchen wir ein Enum um das Passwort zu Speichern:
enum Tor_Passworter
{
Tor1/*,*///Das definiert das Passwort für das 1. Tor ihr könnt so weitere Tore ganz einfach hinzufügen und mit Passwörtern versehn dann dürft ihr aber das , nicht vergessen
/* Tor2,
Tor3//beim letzten darf nie ein Komma sein
*/
}
new tInfo[playerid][Tor_Passworter];Dann muss es ja geladen werden wenn wir den Gamemode betreten also laden wir aus der .ini Datei beim Connecten das Passwort raus:
Falls ihr ein Login/Registersystem habt dann könnte man das mit einem stock machen also so:
stock TorLaden(playerid)
{
new save[40];
format(save,sizeof(save),"/Fraktionstore/Tore.ini",);
format(tInfo[playerid][Tor1], 50, dini_Get(save, "Tor_Passwort1"));
}
Dann wenn die Account Sachen geladen werden nur noch:
TorLaden(playerid);
Vermutlich muss das bei euch zu OnGameModeInit
Da wir ja nichts speichern müssen, kommen wir zum nächsten Schritt.
Ihr müsst dafür dann in den Scriptfiles den Ordner:
Fraktionstore erstellenKommen wir nun zu den Toren. Zuerst müssen wir sie definieren:
new Fraktionstor[1]; //Wenn ihr die Zahl in den Klammern: [] verändert könnt ihr die Tore ganz einfach vermehren.So wir haben nun die Tore definiert dann müssen wir noch ein Tor bei OnGameModeInit einfügen also:
Fraktionstor[0] = CreateObject(Modelid,X,Y,Z,RotationX,RotationY,RotationZ);
Die Funktion könnt ihr nachlesen ansonsten ist es denke ich gut genug erklärtDann wollen wir ja das das Tor sich von alleine schließt also erstellen wir noch ein forward:
forward TorTimer();
Kommen wir nun zu dem Dialog. Zuerst wollen wir sobald man das Pickup neben dem Tor betritt der Dialog mit dem Passwortfeld erscheint also erstellen wir ein Pickup:
new TorPickup;Dann müssen wir bei OnGameModeInit das Pickup erstellen mit dem new haben wir es nur definiert:
TorPickup = AddStaticPickup(Pickupid,Respawntyp,X,Y,Z,Virtuelle Welt);
Ok jetzt müssen wir ja es so programmieren das sobald wir das Pickup betreten das der Dialog erscheint also gehen wir zu dem public OnPlayerPickupPickup und fügen das ein:
Zuerst müssen wir aber noch den Dialog definieren:
#define TorDialog Dialogid//Bitte die Dialogid anpassen
if(pickupid == TorPickup) //if() stellt in nahezu allen fällen eine if/else abfrage da pickupid == TorPickup fragt ab ob es dieser Dialog ist
{
ShowPlayerDialog(playerid,TorDialog,DIALOG_STYLE_INPUT,"Fraktionstor","Bitte gib nun das Passwort für das Fraktionstor ein","Bestätigen","Abbrechen");
}
Ok soweit sind wir nun fertig. Jetzt brauchen wir nur noch den Timer und das was passieren soll wenn man Bestätigen drückt.
Also gehen wir nun zu OnDialogResposne:
Dort müssen wir nun das hier einfügen:
if(dialogid == TorDialog)
{
if(response)
{
new save[128];
format(save,sizeof(save),"/Fraktionstore/Tore.ini",);
format(tInfo[playerid][Tor1], 50, dini_Get(save, "Tor_Passwort1"));
if(strcmp(inputtext, tInfo[playerid][Tor1], true)) //Wenn das Passwort nicht mit dem gespeicherten übereinstimmt
{
ShowPlayerDialog(playerid,TorDialog,DIALOG_STYLE_INPUT,"Fraktionstor","Du hast ein falsche Passwort eingegeben.\nBitte gib nun bitte das richtige ein","Bestätigen","Abbrechen");
SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
}
else if(!strcmp(inputtext, tInfo[playerid][Tor1], true)) //Wenn das Passwort mit dem gespeicherten übereinstimmt
{
SendClientMessage(playerid,COLOR_RED,"Du hast das richtige Passwort eingegeben es bleibt nun 5 Sekunden offen");
MoveObject(Fraktionstor[1],X,Y,Z,Geschindigkeit,RotationsX,RotationsY,RotationsZ);//Bewegt das Objekt an die Position wenn es offen ist
SetTimer("TorTimer",5000, 1); //Startet den Timer
}
}
}Da wir die Farbe Rot noch definieren müssen sieht das dann so aus:
#define COLOR_RED 0xAA3333AAKommen wir nun zu dem public für den Timer:
public TorTimer
{
MoveObject(Fraktionstor[1],X,Y,Z,Geschindigkeit,RotationsX,RotationsY,RotationsZ);
SendClientMessage(playerid,COLOR_RED,"Das Tor ist nun wieder geschlossen");
}Ihr wollt nun zu letzt bestimmt wissen wie ihr das Passwort ändern könnt oder?
Wir definieren den Dialog:
#define PasswortAnderTor Dialogid//Bitte die Dialogid anpassen
Das machen wir am einfachsten mit einem Befehlt:
if(strcmp("/changetorpw",cmdtext,true) == 0)
{
if(SpielerLeader == 1) //bitte anpassen und abfragen ob er ein Fraktionsleader ist
{
ShowPlayerDialog(playerid,PasswortAnderTor,DIALOG_STYLE_INPUT,"Passwort ändern","Bitte gib nun das neue Fraktionstorpasswort:","Weiter","Abbrechen");
}
return 1;
}
Ok jetzt gehen wir zu dem Dialog:
if(dialogid == PasswortAnderTor)
{
if(response)
{
new save[128],string[128];
format(save,sizeof(save),"/Fraktionstore/Tore.ini",);
if(!strlen(inputtext))
{
}
dini_Set(save,"Passwort",inputtext);
strmid(pInfo[playerid][passwort], inputtext, 0, strlen(inputtext)-1, 255);
format(string, sizeof(string), "Du hast dein Passwort erfolgreich geändert.\n Dein neues Passwort ist: %s",pInfo[playerid][passwort]);
SendClientMessage(playerid,COLOR_RED,string);
}
}Ich hoffe ich konnte euch mit diesem Tutorial helfen.
Mit freundlichen Grüßen
Sven
//edit 1 Code versucht einzurücken
//edit 2 //edit 1 hinzugefügt
//Edit 3 Beitrag buggt rum da steht sind mehr als 20.000Zeichen obwohl es nicht mal 8000 sind...