also ohne true und false müsste es klappen oda?
Ja, müsste es
also ohne true und false müsste es klappen oda?
Ja, müsste es
Wollte mal fragen ob ein Wow Server auf einen vServer passt.
Daten:
- NEU: 4.000 MHz Prozessor-Power
- NEU: 50.000 MB Webspace (SCSI)
- NEU: 3.072 MB RAM / 6.144 MB FlexRAM*
- NEU: 6.000 GB Datentransfer/Monat
MFG
@rin
Kommt auf die Version an. Ab 3.0.3 würde ich die Finger von Privat-Servern lassen.
Ab dort hat Blizzard in den Nutzungsbedingungen von WoW Festgelegt das dass betreiben eines Privaten World of Warcraft Servers illegal ist.
Solltest du einen Itemshop betreiben wollen oder spenden annehmen: LASS ES!
Letztens wurde einer auf 88 Mio. Dollar verklagt.
B2T:
Sollte eigentlich reichen
Du musst in deiner Enum pRank in Rank ändern
Einfach nur das p weg
Schwachsinn.
Gibt ne einfachere Möglichkeit.
Siehe oben!
Wieso das "p" wegnehmen, wenn er dann if(pInfo[playerid][pRank] < 4)
umschreiben müsste?
MfG Firer
Öhm... Jay, woher kenn ich dich??^^
Meine GTA:WC?
Naja, BackToTopic:
In deinem Enum steht "pRank", und du willst "rank" setzen.
Solange due "rank" nicht in einer Variable Definiert hast, kann das garnicht klappen.
MfG Firer
//EDIT:
Ausserdem arbeitest du oben mit einer "pInfo", also setzt du auch "pInfo".
Sprich: "pInfo[playerid][enumvarablenname]=Wert"
So ein Tutorial gibts schon siehe hier.
Habe ich sowasvon überhaupt nicht gesehen.
Naja, es ist nicht kopiert oder so und evtl. doch etwas einsteigerfreundlicher
dini_Create fragt schon ab ob die Datei existiert, von daher kannst du das oben etwas verkürzen!
Stimmt, ganz vergessen...
Ich Editiere es Sofort mal
Danke.
woho, wieso alles umschreiben? Einfach die Parameter beim stock/public ändern...
Ich merke gerade ich sollte nicht mehr Scripten wenn ich 8 Stunden Unterricht und Sport hatte...
Bin zu K.O.^^
Ist mir auch aufgefallen nachdem ich fertig war...
MfG Firer
Es kann auch sein, dass die Parameter minX, minY, maxX und maxY bei PlayerInZone anders sind, als beim GangZoneCreate Schonmal daran gedacht? Ansonsten poste uns die Funktion PlayerInZone
Genau dieser Fall trifft zu, wie ich gerade merken musste ;/
Na großartig, meine ganzen Publics nochmal umschreiben^^
Hoffentlich funktioniert es dann endlich.
MfG Firer
Hallo liebe Leser,
In diesem Tutorial möchte ich euch kurz und übersichtlich die funktionen von DINI erklären will.
Vorwort
Was ist DINI eigentlich?
DINI ist ein Include-System, das es ermöglicht Daten in Dateien zu speichern.
Das kann zum Beispiel für ein Login & Register System, oder eine Fraktionskasse genutzt werden.
Entwickelt wurde es von DracoBlue (http://www.dracoblue.net )
Hinweis: Solltet ihr keine Ahnung von PAWN haben lasst besser erstmal die Finger von diesem Tutorial!
Installation
Die Installation folgt ganz einfach via Include.
Sprich: Ihr benötigt die Include und verknüpft diese dann mit eurem GameMode.
Dafür muss die Include in eurem PAWNO unterordner "Includes" liegen.
Anschließend müsst ihr in den Head-Berreich eures Scriptes bzw. irgendwo ausserhalb eines Callbacks oder eines Publics bzw. stocks die Include via #include verknüpfen.
Downloaden könnt ihr die Include Hier
Anwendung
Nach dem installieren haben wir nun erstmal einige funktionen zur Verfügung, die wir nutzen können um Inhalt zu Updaten, Dateien zu erstellen oder sonstiges. Folgende Funktionen stehen zur Verfügung:
dini_Exists(filename[])
dini_Remove(filename[])
dini_Create(filename[])
dini_Set(filename[],key[],value[])
dini_IntSet(filename[],key[],value)
dini_Int(filename[],key[])
dini_FloatSet(filename[],key[],Float:value)
dini_Float(filename[],key[])
dini_Bool(filename[],key[])
dini_BoolSet(filename[],key[],value)
dini_Unset(filename[],key[])
dini_Get(filename[],key[])
dini_Isset(filename[],key[])
Davon werden allerdings nur wenige verwendet.
Auch wenn man sich davon nun erstmal erschlagen fühlt, mit der Zeit gewinnt man an übersicht.
So, nun können wir eigentlich schon loslegen.
Fangen wir ambesten einfach mal mit einem Script an, das beim Disconnect den Standort des Spielers speichert.
new name[MAX_PLAYER_NAME],Float:pos_x,Float:pos_y,Float:pos_z,string[25];
GetPlayerName(playerid,name,sizeof(name));//---------[Wir finden den Namen des Spielers herraus]
GetPlayerPos(playerid,pos_x,pos_y,pos_z);//---------[Wir finden die Position des Spielers herraus]
format(string,sizeof(string),"%s.ini",name);//---------[Wir erstellen einen String mit dem Namen des Spielers]
dini_Create(string);//---------[Wir erstellen die Datei, falls diese nicht existiert]
dini_FloatSet(string,"Alt-X",pos_x);//---------[Wir speichern die X-Koordinate]
dini_FloatSet(string,"Alt-Y",pos_y);//---------[Wir speichern die Y-Koordinate]
dini_FloatSet(string,"Alt-Z",pos_z);//---------[Wir speichern die Z-Koordinate]
Natürlich müssen diese Daten nun auch noch bei "OnPlayerConnect" geladen werden.
Dazu hier ein kleines Beispielscript:
new name[MAX_PLAYER_NAME],Float:pos_x,Float:pos_y,Float:pos_z,string[25];
GetPlayerName(playerid,name,sizeof(name));//---------[Wir finden den Namen des Spielers herraus]
GetPlayerPos(playerid,pos_x,pos_y,pos_z);//---------[Wir finden die Position des Spielers herraus]
format(string,sizeof(string),"%s.ini",name);//---------[Wir erstellen einen String mit dem Namen des Spielers]
if(dini_Exists(string))
{
pos_x = dini_Float(string,"Alt-X");//---------[Wir übertragen die gespeicherte Koordinate in eine Variable]
pos_y = dini_Float(string,"Alt-Y");//---------[Wir übertragen die gespeicherte Koordinate in eine Variable]
pos_z = dini_Float(string,"Alt-Z");//---------[Wir übertragen die gespeicherte Koordinate in eine Variable]
SetPlayerPos(playerid,pos_x,pos_y,pos_z);//---------[Wir setzen die Position des Spielers]
}
Und Fertig. Schon haben wir ein Script, welches es uns ermöglicht die letzte Position des Spielers zu speichern und anschließend wieder zu laden.
Ich werde das Tutorial bei Nachfrage ggf. erweitern und noch einige Funktionen mehr erklären.
MfG Firer
//EDIT: Rechtschreibfehler verbessert
//EDIT: Linkfehler bei DracoBlue behoben
Hmm... auf der Karte werden die gangzones allerdings alle richtig angezeigt^^
Und wenn ich alle "else if" abfragen mit "if" abfrage wird halt die entsprechende Zone NUR angegriffen.
MfG Firer
ja das wäre alles wo abgefragt wird ob man nen auto hat oder nicth
Leider ist meine Kristallkugel wieder mal im Eimer.
Ohne Code können wir dir also nicht helfen.
MfG Firer
Moinsen, ich hab folgendes Problem:
Bei mir kommt immer die Meldung "Du bist in keiner Gangzone".
Code:
public AtackZone(playerid)
{
new atackzone;
if(PlayerInZone(playerid, -2521.439208, 707.875305, -2393.439208, 803.875305)){atackzone = 1; SendClientMessageToAll(COLOR_ORANGE,"[NEWS]: Es findet ein GangFight statt!");}
else if(PlayerInZone(playerid, -2801.144042, -70.835403, -2705.144042, 33.164600)){atackzone = 2; SendClientMessageToAll(COLOR_ORANGE,"[NEWS]: Es findet ein GangFight statt!");}
else if(PlayerInZone(playerid, -2410.999755, 59.794006, -2258.999755, 243.794006)){atackzone = 3; SendClientMessageToAll(COLOR_ORANGE,"[NEWS]: Es findet ein GangFight statt!");}
else if(PlayerInZone(playerid, -2595.363281, 1174.781250, -2443.363281, 1262.781250)){atackzone = 4; SendClientMessageToAll(COLOR_ORANGE,"[NEWS]: Es findet ein GangFight statt!");}
else if(PlayerInZone(playerid, -2201.540283, -295.914581, -2097.540283, -71.914581)){atackzone = 5; SendClientMessageToAll(COLOR_ORANGE,"[NEWS]: Es findet ein GangFight statt!");}
else if(PlayerInZone(playerid, -1737.269042, -49.213462, -1625.269042, 126.786537)){atackzone = 6; SendClientMessageToAll(COLOR_ORANGE,"[NEWS]: Es findet ein GangFight statt!");}
else{return SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Gang-Zone!");}
gangwar = atackzone;
kills[0]=0;
kills[1]=0;
if(SpielerInfo[playerid][team]==4){GangZoneFlashForAll(zone[atackzone],COLOR_FAMILY);}
if(SpielerInfo[playerid][team]==5){GangZoneFlashForAll(zone[atackzone],COLOR_ATZEN);}
return 1;
}
MfG Firer
Gegenleistungen?
Bei zweiterem:
Vorstellung? Warum Du?
So macht das keiner!
MfG Firer
kann uns wer weiter helfen?
Adde mich mal in Skype: firerfan96
Brauche euren Quellcode sonst kann ich nicht helfen.
MfG Firer
GivePlayerMoney(playerid,PlayerInfo[playerid][pCash] );
Schlechte variante.
Ambesten "SetPlayerMoney(PlayerInfo[playerid][pCash]);
Das ganze Scripttechnisch umzusetzen ist wirklich nicht sehr schwer.
Allerdings ist die Idee an sich ganz gut - auch das mit der Musik
Deine Includes sind bis jetzt ganz okay.
Von mir gibts 8/10
MfG Firer
Ungetestet:
new kennzeichen[MAX_VEHICLES];//-----[Ganz oben ins Script]
public OnVehicleSpawn(vehicleid)
{
new Text3D:vehicle3d[MAX_VEHICLES],string[20];
kennzeichen[vehicleid] = vehicleid*10;
format(string, sizeof(string), "SA-%s",kennzeichen[vehicleid]);
vehicle3d[vehicleid] = Create3DTextLabel(string,COLOR_RED,30.0,30.0,5.0,30.0,0);
Attach3DTextLabelToVehicle(vehicle3d[vehicleid],vehicleid, 0.0, 0.0, 0.0);
}
String und ne Random-Zahl zwischen 100 und 999
Oder die VehicleID mal 10
Könnte dann so aussehen:
new kennzeichen[MAX_VEHICLES];
kennzeichen[vehicleid] = vehicleid*10;
Dann halt nen String und den 3D Text Attachen.
wichtig: Musst irgendwie die Vehicle-ID rausfinden.
Ambesten nit ner for-schleife bei OnGameModeInit
Fertig.
Platz 2 - Den ersten packen wir auch noch.
Mach auf Prosieben mal ein bissl Werbung für BreadFish und SA-MP
Wie währe es wenn du einfach nen stock nimmst und den mit "GivePlayerMoney" ersetzt.
Dann dabei einfach ne Variable Updaten/Erweitern und Abfragen, ob die Variable NICHT mit "GetPlayerMoney" übereinstimmt.
Würde dein System schon mal Resourcenschonender machen.
Was das andere angeht:
public OnVehicleRespray(playerid,vehicleid)
Sollte funktionieren, bin mir aber nicht sicher.
MfG Firer