GTA-Center.com » Forum
http://www.gta-center.com/forums/

[RISOLTO][REQ]V, nome, costo.
http://www.gta-center.com/forums/viewtopic.php?f=41&t=1193
Pagina 1 di 1

Autore:  ~Bluec0de [ 02/06/2011, 19:19 ]
Oggetto del messaggio:  [RISOLTO][REQ]V, nome, costo.

mi sevirebbe un carspawner con comando /v nomeauto,
con le seguenti funzioni quando viene spawnato un veicolo ne richiede il nome, costo (es: 300$). quindi se viene spawnato che compaia un: hai spawnato il veicolo... costo: 300$.
e che ad ogni veicolo che si spawna venga tolto quel altro, e che bisogna aspettare 3 min prima di spawnarne un altro. infine se il giocatore e dentro al veicolo non glielo fa spawnare facendo comparire il messaggio che ha gia un veicolo. spero di essermi spiegato bene :ghfuma:

ps: avevo provato con uno simile, ma non aveva la funzione di togliere il veicolo quando ne spawni un altro.

Autore:  Angelo [ 02/06/2011, 20:40 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

In Cima: http://pastebin.com/8tcYcxuZ

In OnPlayerCommandText: http://pastebin.com/ecUQPLNd

In OnPlayerEnterVehicle:
Codice:
if(inauto[playerid]  && automobile[playerid] != vehicleid) inauto[playerid] = false;


In OnVehicleDeath:
Codice:
public OnVehicleDeath(vehicleid, killerid)
{
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
       if(automobile[i] == vehicleid)
       {
          DestroyVehicle(vehicleid);
       }
   }
   return 1;
}


In OnPlayerStateChange:

Codice:
if(newstate == PLAYER_STATE_ONFOOT && inauto[playerid] == true)
{
    vectimer[playerid] = SetTimerEx("Distruggi", 5000, false, "d", playerid);
}

if(newstate == PLAYER_STATE_DRIVER && GetPlayerVehicleID(playerid) == automobile[playerid])
{
    KillTimer(vectimer[playerid]);
    inauto[playerid] = true;
}


Fuori da tutto:
Codice:
GetVehicleModelFromName(vname[])
{
   for(new i = 0; i < 211; i++)
   {
      if (strfind(VehicleNames[i], vname, true) != -1 )
      return i + 400;
   }
   return -1;
}

forward Distruggi(playerid);
public Distruggi(playerid)
{
    DestroyVehicle(automobile[playerid]);
    inauto[playerid] = false;
}

forward Anticmd(playerid);
public Anticmd(playerid)
{
    Impedisci[playerid] = false;
    SendClientMessage(playerid, COLOR_RED, "Ora puoi respawnare un veicolo");
}



Prova questo, fatto al volo :\

Autore:  ~Bluec0de [ 02/06/2011, 21:36 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

scrivio /v, compare utilizzo: /v [nome o id] ed e ok, scrivo /v Taxi (Es) e mi da Server Unknown command


provo a controllare di averlo messo giusto.

Autore:  ~Bluec0de [ 05/06/2011, 12:59 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

mi da questi errori:

Codice:
C:\Users\Pavilion\Desktop\Test Server\pawno\ILV5.0.4.pwn(818) : warning 219: local variable "idx" shadows a variable at a preceding level
C:\Users\Pavilion\Desktop\Test Server\pawno\ILV5.0.4.pwn(822) : error 006: must be assigned to an array
C:\Users\Pavilion\Desktop\Test Server\pawno\ILV5.0.4.pwn(823) : error 006: must be assigned to an array
C:\Users\Pavilion\Desktop\Test Server\pawno\ILV5.0.4.pwn(824) : error 006: must be assigned to an array
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


3 Errors.


righe

Codice:
822. tmp[0] = strtok(cmdtext,idx);
823. tmp[1] = strtok(cmdtext,idx);
824. tmp[2] = strtok(cmdtext,idx);


"idx" e gia definito.

Autore:  Angelo [ 06/06/2011, 14:19 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

EDIT:

Cambia tutti il comando /v con questo:

http://pastebin.com/RKrXLzCJ

La sintassi del comando è:

/v [Nome Veicolo o ID Veicolo] [Colore1] [Colore2]

Se ometti il colore verrà impostato -1 -1

se ti manca il strrest eccolo qua:

Codice:
stock strrest(const string[], &index)
{
   new length = strlen(string);
   while ((index < length) && (string[index] <= ' '))
   {
      index++;
   }
   new offset = index;
   new result[128];
   while ((index < length) && ((index - offset) < (sizeof(result) - 1)))
   {
      result[index - offset] = string[index];
      index++;
   }
   result[index - offset] = EOS;
   return result;
}


L'ho appena testato quindi dovrebbe funzionare anche a te, prova ;)

Autore:  ~Bluec0de [ 10/06/2011, 11:42 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

Codice:
C:\Users\Pavilion\Desktop\SERVER ILV 5.0.7\pawno\ILVGM.pwn(247) : error 017: undefined symbol "cmd"
C:\Users\Pavilion\Desktop\SERVER ILV 5.0.7\pawno\ILVGM.pwn(256) : error 017: undefined symbol "strtok"
C:\Users\Pavilion\Desktop\SERVER ILV 5.0.7\pawno\ILVGM.pwn(256) : error 033: array must be indexed (variable "tmp")
C:\Users\Pavilion\Desktop\SERVER ILV 5.0.7\pawno\ILVGM.pwn(257) : error 017: undefined symbol "strtok"
C:\Users\Pavilion\Desktop\SERVER ILV 5.0.7\pawno\ILVGM.pwn(257) : error 033: array must be indexed (variable "tmp")
C:\Users\Pavilion\Desktop\SERVER ILV 5.0.7\pawno\ILVGM.pwn(258) : error 017: undefined symbol "strtok"
C:\Users\Pavilion\Desktop\SERVER ILV 5.0.7\pawno\ILVGM.pwn(258) : error 033: array must be indexed (variable "tmp")
C:\Users\Pavilion\Desktop\SERVER ILV 5.0.7\pawno\ILVGM.pwn(306) : error 010: invalid function or declaration
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


8 Errors.



RIGA 247. if(strcmp(cmd, "/v", true)==0)
RIGA 256. tmp[0] = strtok(cmdtext,idx);
RIGA 257. tmp[1] = strtok(cmdtext,idx);
RIGA 258. tmp[2] = strtok(cmdtext,idx);
RIGA 306. if(newstate == PLAYER_STATE_DRIVER && GetPlayerVehicleID(playerid) == automobile[playerid])

Autore:  mitosking [ 10/06/2011, 12:53 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

Ma lo hai strtok definito?

Autore:  ~Bluec0de [ 10/06/2011, 12:54 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

si..

Autore:  Angelo [ 10/06/2011, 12:57 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

Metti sopra alla riga del comando:

new cmd[256];
cmd = strtok(cmdtext, idx);

e Sotto a tutto:
Codice:

stock strtok(const string[], &index)
{
   new length = strlen(string);
   while ((index < length) && (string[index] <= ' '))
   {
      index++;
   }

   new offset = index;
   new result[128];
   while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
   {
      result[index - offset] = string[index];
      index++;
   }
   result[index - offset] = EOS;
   return result;
}

Autore:  ~Bluec0de [ 10/06/2011, 13:21 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

C:\Users\Pavilion\Desktop\SERVER ILV 5.0.7\pawno\ILVGM.pwn(278) : error 017: undefined symbol "idx"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.


- lo definito ma mi da questo errore

Autore:  Angelo [ 10/06/2011, 13:51 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

metti new idx; sopra new cmd[256];

Autore:  ~Bluec0de [ 10/06/2011, 14:58 ]
Oggetto del messaggio:  Re: [REQ]V, nome, costo.

Risolto, :lock:

Pagina 1 di 1 Tutti gli orari sono UTC + 1 ora [ ora legale ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/