Creer un paneau de vente de sons ?

Répondre
Partager Rechercher
Bonjour tout le monde.
Je suis a SL depuis peu et je cherche a ouvrir une boutique pour vendre des fichiers sonores.
J'ai vu plusieurs boutique ou figurent des panneaux ou l'on peut faire défilés les differents fichiers afin de pouvoir les ecouter puis bien sur les acheter.
Y a t'il un endroit ou l'on peut trouver ce genre de panneaux ou bien devrais je les creer par moi meme. (vu ma connaissance des scripts je me sens mal).
D'avance merci !
Bonjour,

J'ai trouvé le script ci-dessous, qui correspond à ce que tu recherches, sur le Forum SL :

Code:
integer price;
string wrong = "Sorry, that is not the correct price";
string over = "You have overpaid, here is your change";
string thank = "Thank you for your purchase";
integer finished = FALSE;
integer n = 0;
integer i;
list sounds;
integer CHANNEL = 123456;
string soundName;
string GNAME;
string Vname;

default
{
    state_entry()
    {
      while(!finished)
        {
            soundName = llGetInventoryName(INVENTORY_SOUND, n);
            if(soundName == "")
            {
                finished = TRUE;
                Vname = llGetObjectName();
                price = (integer)llGetObjectDesc();
                
                state debtperm;
            } 
            else 
            {
               sounds = sounds + soundName;
                n++;  
            }
          }
        }
}
state debtperm
{
 state_entry()
    {
        //Do some initialization here
        llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);
    }
    run_time_permissions(integer permissions)
    {
        //Only wait for payment if the owner agreed to pay out money
        if (permissions)
        {
            llSetText("Initailized Successfully...", <0,1,0>,1);
            state next;
        }
    }
}
state ready
{
    on_rez(integer start_param)
    {
        llResetScript();
    }
    
    state_entry()
    {
     GNAME = llList2String(sounds, i);
      
     llListen(CHANNEL, "",  "", "");
    }
    
    listen(integer channel, string name, key id, string message)
    {
        if(channel == CHANNEL && message == "Reset")
        {
            llSetText("Resetting...", <1,0,0>, 1);
            llResetScript();
            
        }
        
        if(channel == CHANNEL && message == "Next")
        {
          i++;
          
          if(i >= n)
          {
          i = 0;
          state next;
          
          }
          else
          {
          state next;
          }
                
        }
        if(channel == CHANNEL && message == "Back")
        {
          i--;
          
          if(i < 0)
          {
          i = n - 1;
          state next;
          
          }
          else
          {
          state next;
          }  
        }
        if(channel == CHANNEL && message == "Play")
        {
         llPlaySound(GNAME, 1);
         state next;   
        }
            
    }
    touch_start(integer total_number)
    {
        if(llDetectedKey(0) == llGetOwner())
        {
        llDialog(llDetectedKey(0),"1.) Choose Next/Back to scroll through sounds.\n2.) Press Play to hear a sound.\n3.) Right Click and Pay to buy!", ["Back", "Next", "Play", "Reset"], CHANNEL);
         }
         else
         {
        llDialog(llDetectedKey(0),"1.) Choose Next/Back to scroll through sounds.\n2.) Press Play to hear a sound.\n3.) Right Click and Pay to buy!", ["Back", "Next", "Play"], CHANNEL);
         }
    }
    
    money(key id, integer amount)
    {
        if(amount < price)
        {
            llSay(0, wrong);
            llGiveMoney(id, amount);
        }
        if(amount > price)
        {
            llSay(0, over);
            llGiveMoney(id, amount - price);
            llGiveInventory(id, GNAME);
        }
        if(amount == price)
        {
            llSay(0, thank);
            llGiveInventory(id, GNAME);
        }
    }
} 
state next
{
    state_entry()
    {
        GNAME = llList2String(sounds, i);
        llSetText(".:" + Vname + ":.\nClick for a dialog!\nSound Name: " + GNAME + "\nPrice: L$" + (string)price, <1,1,1>, 1);
        state ready;
    }
}
Et les explications d'utilisation que j'ai traduit :
Citation :
NOTES:
1.) Tous les sons du vendor auront le même prix (cela peu poser problème).

2.) Change le prix dans le champ description du vendor.
(Exemple : Si tu veux que tous les sons soient à L$50, met dans la description du vendor "50".)
http://www.monsterup.com/upload/1237465933.png

3.) Après avoir ajouté de nouveaux sons au vendor ou après avoir changé le prix, appuies sur le bouton Reset dans le menu.
http://www.monsterup.com/upload/1237466399.png
Seul l'owner peut voir ce bouton.

4.) Met juste le script et les sons que tu veux vendre dans 1 prim.

5.) Clique sur la prim pour avoir un menu (dialog).

6.) Si tu veux avoir plus d'un vendor sur le même terrain, assures toi d'avoir différents numéros de chan (integer CHANNEL = 123456) sur chacun d'eux pour éviter les conflits entre les vendors.
Voilà.
Citation :
Publié par eldodo Fierrens
Bonjour,

J'ai trouvé le script ci-dessous, qui correspond à ce que tu recherches, sur le Forum SL :

Code:
integer price;
string wrong = "Sorry, that is not the correct price";
string over = "You have overpaid, here is your change";
string thank = "Thank you for your purchase";
integer finished = FALSE;
integer n = 0;
integer i;
list sounds;
integer CHANNEL = 123456;
string soundName;
string GNAME;
string Vname;

default
{
    state_entry()
    {
      while(!finished)
        {
            soundName = llGetInventoryName(INVENTORY_SOUND, n);
            if(soundName == "")
            {
                finished = TRUE;
                Vname = llGetObjectName();
                price = (integer)llGetObjectDesc();
                
                state debtperm;
            } 
            else 
            {
               sounds = sounds + soundName;
                n++;  
            }
          }
        }
}
state debtperm
{
 state_entry()
    {
        //Do some initialization here
        llRequestPermissions(llGetOwner(), PERMISSION_DEBIT);
    }
    run_time_permissions(integer permissions)
    {
        //Only wait for payment if the owner agreed to pay out money
        if (permissions)
        {
            llSetText("Initailized Successfully...", <0,1,0>,1);
            state next;
        }
    }
}
state ready
{
    on_rez(integer start_param)
    {
        llResetScript();
    }
    
    state_entry()
    {
     GNAME = llList2String(sounds, i);
      
     llListen(CHANNEL, "",  "", "");
    }
    
    listen(integer channel, string name, key id, string message)
    {
        if(channel == CHANNEL && message == "Reset")
        {
            llSetText("Resetting...", <1,0,0>, 1);
            llResetScript();
            
        }
        
        if(channel == CHANNEL && message == "Next")
        {
          i++;
          
          if(i >= n)
          {
          i = 0;
          state next;
          
          }
          else
          {
          state next;
          }
                
        }
        if(channel == CHANNEL && message == "Back")
        {
          i--;
          
          if(i < 0)
          {
          i = n - 1;
          state next;
          
          }
          else
          {
          state next;
          }  
        }
        if(channel == CHANNEL && message == "Play")
        {
         llPlaySound(GNAME, 1);
         state next;   
        }
            
    }
    touch_start(integer total_number)
    {
        if(llDetectedKey(0) == llGetOwner())
        {
        llDialog(llDetectedKey(0),"1.) Choose Next/Back to scroll through sounds.\n2.) Press Play to hear a sound.\n3.) Right Click and Pay to buy!", ["Back", "Next", "Play", "Reset"], CHANNEL);
         }
         else
         {
        llDialog(llDetectedKey(0),"1.) Choose Next/Back to scroll through sounds.\n2.) Press Play to hear a sound.\n3.) Right Click and Pay to buy!", ["Back", "Next", "Play"], CHANNEL);
         }
    }
    
    money(key id, integer amount)
    {
        if(amount < price)
        {
            llSay(0, wrong);
            llGiveMoney(id, amount);
        }
        if(amount > price)
        {
            llSay(0, over);
            llGiveMoney(id, amount - price);
            llGiveInventory(id, GNAME);
        }
        if(amount == price)
        {
            llSay(0, thank);
            llGiveInventory(id, GNAME);
        }
    }
} 
state next
{
    state_entry()
    {
        GNAME = llList2String(sounds, i);
        llSetText(".:" + Vname + ":.\nClick for a dialog!\nSound Name: " + GNAME + "\nPrice: L$" + (string)price, <1,1,1>, 1);
        state ready;
    }
}
Et les explications d'utilisation que j'ai traduit :


Voilà.
Bonjour, désolée de déterrer ce post mais je fais actuellement un vendor de gestures pour une amie, j'ai voulu utiliser ce script mais il délivre le son au lieu de la gesture, j'ai eu beau faire plusieurs essais je ne trouve pas le souci, quelqu'un pourrait m'aider svp ?
Premier soucis

soundName = llGetInventoryName(INVENTORY_SOUND, n);
Forcément il cherche à donner les sons

essayes ca

soundName = llGetInventoryName(INVENTORY_GESTURE, n);


je te conseil aussi de remplacer

llPlaySound(GNAME, 1);

par

//llPlaySound(GNAME, 1);

Franchement tu as fait des essais ?
Citation :
Publié par Magic Cat
Premier soucis

soundName = llGetInventoryName(INVENTORY_SOUND, n);
Forcément il cherche à donner les sons

essayes ca

soundName = llGetInventoryName(INVENTORY_GESTURE, n);


je te conseil aussi de remplacer

llPlaySound(GNAME, 1);

par

//llPlaySound(GNAME, 1);

Franchement tu as fait des essais ?

beh oui j'ai bien vu le problème sur le llGiveInventory(id, GNAME); qui correspond au son et non pas la gesture, ce qui parait logique puisqu'il s'agit a la base d'un script de sound vendor mais il me manquait la variable pour associer le nom de la gesture correspondante au son joué en préview pour qu'il puisse la distribuer

merci pour ton aide

edit = j'aurai du expliquer plus clairement ce que j'avais constaté et ce que je recherchais
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés