Moin ich suche ein Tutorial das mir erklärt wie ich mit einem befehlt, wie /dm in eine andere virtuelle welt komme. z.b die normale welt ist ja 1, und wen man /dm macht kommt mal in welt 2. Man soll bestimmte waffen bekommen, und an einer bestimten stelle gespawnt werden.
Danke
Virtuele Welt ändern auf befehl
- Patrickk.
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
wie?
ist doch einfach
einen teleport irgendwo anders hin
oder was meinst du? -
man soll auch in einer anderen Virtuelen Welt sein
-
SetPlayerVirtualWorld...
-
und wie mache ich das er auch waffen bekommt und an einer bestimmten stelle gespawnt wird?
-
GivePlayerWeapon, SetPlayerPos...
-
ok ich versuch mal
edit:
soll ich das so schreiben?
SetPlayerVirtualWorld(playerid,2)2 für die virtuele welt
-
jo warum eig.2 ?
und das semikolon nicht vergessen -
die 2 um in die 2. virtuele welt zu kommen.
-
1. die normale virtuelle welt id ist 0!
2. versuchs mit dcmd!hier wäre der code wenn du alle definitionen hast:
public OnPlayerCommand...
{
dcmd(SetVW, 5, cmdtext);
}dcmd_SetVW(playerid, params[])
{
new virtualid;
if (sscanf(params, "d", virtualid))
{
return sendclientmessage(playerid,farbe,"virutalid");
}
setplayervirtualworld(playerid,virtualid);
return 1;
}MfG
Blank -
-
ja aber ich will es so machen
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/DM", cmdtext, true, 10) == 0)
{
SetPlayerVirtualWorld(playerid,2);
GivePlayerWeapon(playerid,waffenid,munition)
SetPlayerPos(playerid,x,y,z)
return 1;ist das so richtig. ???
Auser das ich X Y Z einfügen muss und so. -
ja, sollte ansonsten stimmen.
-
nicht ganz:
if (strcmp(cmdtext, "/DM", true, 10) == 0) // Die 10 ist falsch. Würde nichts passieren. Einfach rauslöschen
-
Also ich krige 5 warnings.
C:\Users\Patrick\Desktop\Stunt\Stunt2.pwn(75) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\Stunt\Stunt2.pwn(75) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\Stunt\Stunt2.pwn(75) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\Stunt\Stunt2.pwn(75) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\Stunt\Stunt2.pwn(76) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase5 Warnings.
zeile 75:
GivePlayerWeapon(playerid,24,300,16,50,29,2500); -
if(!strcmp("/DM", cmdtext))
{
SetPlayerVirtualWorld(playerid,2);
GivePlayerWeapon(playerid,waffenid,munition);//Vergiss das ; nicht!
SetPlayerPos(playerid,x,y,z);//Vergiss das ; nicht!
return 1;
}
//Edit geb die waffen nacheinander du kannst nicht einfahc per komma die waffen ändern
GivePlayerWeapon(playerid,waffe1,ammo1);
GivePlayerWeapon(playerid,waffe2,ammo2);
GivePlayerWeapon(playerid,waffe3,ammo3);
GivePlayerWeapon(playerid,waffe4,ammo4);
GivePlayerWeapon(playerid,waffe5,ammo5); -
du kannst nicht einfach in einmal GivePlayerWeapon soviele waffen und muni einfügen wie du willst! für jede waffe 1x GivePlayerWeapon
-
Danke jetst klapts. Habs auch schon ausprobirt danke^^
edit: weiß jemand wie ich mache das ein befehl nur in einer bestimmter Virtuelen Welt genutzt werden kann????
1. Befehl:
if(!strcmp("/dm", cmdtext))
{
SetPlayerVirtualWorld(playerid,0);
GivePlayerWeapon(playerid,24,300);
GivePlayerWeapon(playerid,16,50);
GivePlayerWeapon(playerid,29,2500);
SetPlayerPos(playerid,2028.8776,1343.4323,10.8203);
SendClientMessage(playerid,0x999999FF,"Wilkommen in der DM Zone");Man soll den befehl nur in der 0. Virtuellen Welt benutzen können
if(!strcmp("/stunt", cmdtext))
{
SetPlayerVirtualWorld(playerid,1);
SetPlayerPos(playerid,2028.8776,1343.4323,10.8203);
SendClientMessage(playerid,0x999999FF,"Wilkommen in der Stunt Zone");
Dieser befehl soll nur in der 1. Virtuelen Welt benutzt werden können. -
einfach mit
GetPlayerVirtualWorld(playerid)also
if(GetPlayerVirtualWorld(playerid) == 0) {
//dann SetPlayerPos etc^^
}
bzw.
if(GetPlayerVirtualWorld(playerid) == 1) {
// ....
} -
Danke klappt^^
Aber jetst habe ich versucht zu machen das wen man in Virtuele welt 0 Stirbt an einer bestimmten stelle hinkommt, und wen man in Virtuelle welt 1 Stirbt an einer anderen virtuellen stelle hinkommt.
Aber es klappt bei mir. Ich habe es so:public OnPlayerDeath(playerid, killerid, reason)
{
if(GetPlayerVirtualWorld(playerid) == 1) {
}
SetPlayerPos(playerid,652.6160,-2110.2222,5.7314);
if(GetPlayerVirtualWorld(playerid) == 0) {
}
SetPlayerPos(playerid,2028.8776,1343.4323,10.8203);
return 1;
}Also errors gibts keiner, aber wen ich es teste klappt es nicht so wie ich es will. Wen man in Wirtuellen Welt 1 stirbt stirbt man kommt aber zur stelle von 0 und dan stirbt man noch mal und kommt dan allerdings zum Spawnpunkt. Aber wen man in 0 stirbt kommt man zur richtigen stelle, aber man stirbt auch wieder und man kommt zum spawn punkt.
weiß einer wie ich es machen muss damit es richtig ist?? -
public OnPlayerDeath(playerid, killerid, reason)
{
if(GetPlayerVirtualWorld(playerid) == 1)return SetPlayerPos(playerid,652.6160,-2110.2222,5.7314);
if(GetPlayerVirtualWorld(playerid) == 0)return SetPlayerPos(playerid,2028.8776,1343.4323,10.8203);
return 1;
}