Diese Funktion aus deinem Script löschen: DisableInteriorEnterExits
Dann kannst du die normalen Eingänge wieder verwenden ![]()
mfg. ![]()
Diese Funktion aus deinem Script löschen: DisableInteriorEnterExits
Dann kannst du die normalen Eingänge wieder verwenden ![]()
mfg. ![]()
Schreib den Command mal so:
if(!strcmp("/startbonus", cmdtext, true)) {
if (!GetPlayerScore(playerid)) return ShowPlayerDialog(playerid,DIALOG_STARTBONUS,DIALOG_STYLE_LIST,"STARTBONUS WÄHLEN","Level +2\n10.000$","Bestätigen","");
return SendClientMessage(playerid,ROT,"Du hattest deinen Startbonus schon");
}
mfg. ![]()
Auch wenn es nicht effizient ist, kannst du es so machen wie du es geschrieben hast. Die Warnings erscheinen nur, weil CreateVehicle hinten noch ein Attribut braucht, häng einfach eine -1 überall hinten dran ![]()
mfg. ![]()
Dein enum muss so aussehen:
enum TourInfo{
Float:xPos,
Float:yPos,
Float:zPos,
Location[32],
Trailer[64]
};
mfg. ![]()
Alles anzeigenHey,
Ich habe einen /ipban befehl in meiner Gamemode.
Nun, funktioniert ja halt alles. Aber eine Frage habe ich: Wie mache ich das, dass meine gewünschte Nachficht (evtl. Ein Dialog) angezeigt wird, beim connecten eines Spielers, der gebannt ist?
Normalerweise steht da immer "You are banned from this Server."
Wie und wo ändere ich das?
Ja, benutze 'Ban(playerid);'
MfG
Naja, ich zeig dir mal eine Möglichkeit, die nur den Namen eines Spielers bannt mit einem schönen Dialog (das selbe wie Ban(playerid)) ![]()
Also zuerst ersetze in deinem /ban Befehl das Ban(playerid); durch ein Ban_Player(playerid);
//Die Funktionen:
stock Ban_Player(playerid) {
new buffer[13 + MAX_PLAYER_NAME], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME),format(buffer,sizeof buffer,"ban_%s.ini",name);
new File:f=fopen(buffer,io_write);fwrite(f,"banned"),fclose(f);
return Kick(playerid);
}
//Als letztes unter OnPlayerConnect
new buffer[13 + MAX_PLAYER_NAME], bName[MAX_PLAYER_NAME];
GetPlayerName(playerid,bName,MAX_PLAYER_NAME),format(buffer,sizeof buffer,"ban_%s.ini",bName);
if(fexist(buffer)) return ShowPlayerDialog(playerid,9999,DIALOG_STYLE_MSGBOX,"{FF0000}Banned","{FF0000}Sie wurden vom Server gebannt!","Bestätigen","");
mfg. ![]()
new pickupid;
Wenn du einfach die Variable so deklarierst...wird sie mit 0 initialisiert...sprich pickupid ist immer 0 ![]()
Ja...warum werden wohl die if-Bedingungen nicht erfüllt ![]()
mfg. ![]()
Blick grade nicht mehr so ganz durch sry
Falls du dich wunderst, wieso dein Code nicht funktioniert, du hast bei dem Attribut "Speed" 0.0000 drin stehen ![]()
Da wird sich nichts bewegen
schreib da mal 1.0 oder 2.0 rein ![]()
mfg. ![]()
Guten Abend euch allen, mir war jetzt mal langweilig und ich habe mal ein bisschen umherprobiert und habe ein paar Funktionen entworfen.
1. Die Funktionen
SetObjectVirtualWorld(objectid, worldid);GetObjectVirtualWorld(objectid);SetObjectInterior(objectid, interiorid);GetObjectInterior(objectid);
2. Wann sollte man das Include verwenden?
Wenn man keinen Streamer benutzen will, sprich es handelt sich um weniger als 1000 Objekte.
Wenn man allgemein nicht soviel mit Objekten macht (Bewegen...Materialien ändern...attachen)...andernfalls kann es zu Problemen kommen, siehe bei "Bugs".
3. Bugs?
Ja...es gibt ein paar Probleme:
Wenn man ein Objekt in einer anderen Welt mit MoveObject bewegen lässt und der Spieler dann in diese Welt wechselt, wo das Objekt bewegt wird, ist das Objekt schon an seiner Ziel Position.
Wenn man das Material von dem Objekt ändert oder das Objekt attached, in einer anderen Welt und man dann den Spieler in diese Welt setzt, passiert das nicht.
-> Fazit: Man sollte diese Funktionen nur dann nutzen, wenn der Spieler in der Welt ist, wo auch das Objekt ist.
4. Schlusswort & Zukunft:
Also, erstmal will ich jetzt kein geflame haben, von wegen Incognito Streamer kann das schon alles...bla blub, das weiß ich selbst
Aber es gibt halt Leute die keinen Streamer verwenden wollen und eine Funktion dafür haben wollen, dann kann man nämlich das per Schleifen machen die Objekte versetzten und muss nicht immer ein Attribut ändern.
Wenn euch das bis jetzt gefällt, kann ich auch noch paar andere Features mit einbringen, z.B. das man Objekte nur sieht, wenn man in einem bestimmten Auto sitzt oder das Auto eine bestimmte modelid hat
Oder ihr könnt auch noch selbst paar Vorschläge machen ![]()
Würde mich über ein paar kleine Rückmeldungen freuen ![]()
5. Download
Source-Code: Pastebin
Direkter-Download: Mediafire
mfg.
//Edit: Hatte was vergessen...
//Edit²: Pastebin-Link
//Edit³: Mediafire
Also meinste du das so?
Nein! ![]()
Doch kein return dahin schreiben...ich meine nur die "Eingabetaste (ENTER)" drücken ![]()
Der Query ist eigentlich noch nicht so lang, dass solltest du gut in eine Zeile bekommen ![]()
Mach einfach so:
format(query,sizeof(query),"UPDATE user SET Admin='%i',Supporter='%i',Level='%i',Geld='%i',Skin='%i',Fahndungslevel='%i',Fraktion='%i',Leader='%i',Rang='%i',Job='%i',Drogen='%i',Zigaretten='%i',Materialen='%i',Autoschein='%i',Motorradschein='%i',Flugschein='%i',Bootschein='%i',Lkwschein='%i',Waffenschein='%i',Haftzeit='%i',Adminprison='%i',Timeban='%i',Gebannt='%i' WHERE dbID='%i'",//Hier ein Return hin...
pInfo[playerid][pAdmin],pInfo[playerid][pSupporter],GetPlayerScore(playerid),GetPlayerMoney(playerid),GetPlayerSkin(playerid),GetPlayerWantedLevel(playerid),pInfo[playerid][pFraktion],pInfo[playerid][pLeader],pInfo[playerid][pRang],//Hier auch nochmal
pInfo[playerid][pJob],pInfo[playerid][pDrogen],pInfo[playerid][pZigaretten],pInfo[playerid][pMaterialen],pInfo[playerid][pAutoschein],pInfo[playerid][pMotorradschein],pInfo[playerid][pFlugschein],pInfo[playerid][pBootschein],pInfo[playerid][pLkwschein],pInfo[playerid][pWaffenschein],pInfo[playerid][pJailTime],pInfo[playerid][pAdminPrison],pInfo[playerid][pTimeban],pInfo[playerid][pGebannt],pInfo[player
Das return halt dahin, wo die pInfo Variablen anfangen ![]()
mfg. ![]()
Wie kann ich abfragen ob ein Anhänger am LKW angekoppelt ist?
So:
if(IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)) {
//Hier ist ein Trailer dran
} else {
//Hier nicht
}
Und wie kann abfragen ob sich jemand im Fahrzeug befindet oder ob das Fahrzeug leer ist?
Durch eine kleine Funktion:
if(IsAnyPlayerInVehicle(vehicleid)) {
//Hier ist jemand in diesem Auto
} else {
//Hier nicht
}
//Hier die Funktion mal eben geschrieben:
stock IsAnyPlayerInVehicle(vehicleid) {
for(new i; i<MAX_PLAYERS; i++) if(IsPlayerInVehicle(i, vehicleid)) return 1;
return 0;
}
mfg. ![]()
Funktioniert immer noch nicht :x
Dann poste mal den Code von deinem TextDraw ![]()
Mit dieser Funktion: http://wiki.sa-mp.com/wiki/TextDrawColor
und da einfach als Zahl: 0xFFFFFFFF eingeben ![]()
mfg. ![]()
Wurde zwar schon 100 mal gefragt und man könnte einfach die SuFu nutzen...aber man macht es mit SetObejctMaterialText
mfg. ![]()
Noch mehr Code für sowas, ging nicht oder? ![]()
Man kann dies auch vereinfachen und einfach so schreiben:
//Als erstes man braucht kein enum!
stock WaffenLaden(playerid) {
new save[13 + MAX_PLAYER_NAME],name[MAX_PLAYER_NAME],waffe[13],ammu[13],buffer[10];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
format(save,sizeof(save),"/Waffen/%s.ini",name);
for(new i; i<13; i++) format(buffer,10,"waslot%d",i),waffe[i] = dini_Int(save,buffer);
for(new i; i<13; i++) format(buffer,10,"amslot%d",i),ammu[i] = dini_Int(save,buffer);
for(new i; i<13; i++) GivePlayerWeapon(playerid,waffe[i],ammu[i]);
return 1;
}
stock WaffenSpeichern(playerid) {
new waffe,ammo,save[13 + MAX_PLAYER_NAME],name[MAX_PLAYER_NAME],buffer[10];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
format(save,sizeof(save),"/Waffen/%s.ini",name),dini_Create(save);
for (new i; i < 13; i++) {
GetPlayerWeaponData(playerid,i,waffe,ammo);
format(buffer,10,"waslot%d",i),dini_IntSet(save,buffer,waffe);
format(buffer,10,"amslot%d",i),dini_IntSet(save,buffer,ammo);
}
return 1;
}
PS: Du fragst unten nur 12 Waffenslots ab, es gibt 13
nämlich 0 - 12 und nicht nur 0 - 11 ![]()
mfg. ![]()
Bei mir wird nix gespeichert also die daten
Du musst auch in deinen scriptfiles einen Ordner namens t_Zone anlegen ![]()
Und nur wenn auf das Objekt dann auch geschossen werden kann
Also du fragst mich gerade, wieso ich nicht von ca. 20.000 Objekten die rausgesucht habe, die ungefähr eine viereckige Form haben, auf die man vernünftig schießen kann. ![]()
Warum habe ich das wohl nicht gemacht...sag dus mir ![]()